@ui5/webcomponents-base 0.0.0-389bdbabc → 0.0.0-3e3654870

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 (759) hide show
  1. package/.eslintignore +9 -3
  2. package/.npsrc.json +3 -0
  3. package/CHANGELOG.md +1055 -0
  4. package/README.md +58 -7
  5. package/bundle.esm.js +37 -22
  6. package/config/wdio.conf.cjs +400 -0
  7. package/dist/AssetRegistry.d.ts +5 -0
  8. package/dist/AssetRegistry.js +6 -9
  9. package/dist/AssetRegistry.js.map +1 -0
  10. package/dist/Boot.d.ts +9 -0
  11. package/dist/Boot.js +71 -0
  12. package/dist/Boot.js.map +1 -0
  13. package/dist/CSP.d.ts +30 -0
  14. package/dist/CSP.js +51 -0
  15. package/dist/CSP.js.map +1 -0
  16. package/dist/CustomElementsRegistry.d.ts +5 -0
  17. package/dist/CustomElementsRegistry.js +78 -0
  18. package/dist/CustomElementsRegistry.js.map +1 -0
  19. package/dist/CustomElementsScope.d.ts +7 -0
  20. package/dist/CustomElementsScope.js +11 -0
  21. package/dist/CustomElementsScope.js.map +1 -0
  22. package/dist/CustomElementsScopeUtils.d.ts +62 -0
  23. package/dist/CustomElementsScopeUtils.js +102 -0
  24. package/dist/CustomElementsScopeUtils.js.map +1 -0
  25. package/dist/DOMObserver.d.ts +11 -0
  26. package/dist/DOMObserver.js +23 -0
  27. package/dist/DOMObserver.js.map +1 -0
  28. package/dist/Device.d.ts +13 -0
  29. package/dist/Device.js +167 -815
  30. package/dist/Device.js.map +1 -0
  31. package/dist/EventProvider.d.ts +25 -0
  32. package/dist/EventProvider.js +67 -70
  33. package/dist/EventProvider.js.map +1 -0
  34. package/dist/FeaturesRegistry.d.ts +3 -0
  35. package/dist/FeaturesRegistry.js +5 -7
  36. package/dist/FeaturesRegistry.js.map +1 -0
  37. package/dist/FontFace.d.ts +2 -0
  38. package/dist/FontFace.js +22 -63
  39. package/dist/FontFace.js.map +1 -0
  40. package/dist/IgnoreCustomElements.d.ts +27 -0
  41. package/dist/IgnoreCustomElements.js +39 -0
  42. package/dist/IgnoreCustomElements.js.map +1 -0
  43. package/dist/InitialConfiguration.d.ts +28 -0
  44. package/dist/InitialConfiguration.js +138 -96
  45. package/dist/InitialConfiguration.js.map +1 -0
  46. package/dist/Keys.d.ts +61 -0
  47. package/dist/Keys.js +182 -0
  48. package/dist/Keys.js.map +1 -0
  49. package/dist/ManagedStyles.d.ts +8 -0
  50. package/dist/ManagedStyles.js +135 -0
  51. package/dist/ManagedStyles.js.map +1 -0
  52. package/dist/MarkedEvents.d.ts +9 -0
  53. package/dist/MarkedEvents.js +15 -0
  54. package/dist/MarkedEvents.js.map +1 -0
  55. package/dist/MediaRange.d.ts +37 -0
  56. package/dist/MediaRange.js +98 -0
  57. package/dist/MediaRange.js.map +1 -0
  58. package/dist/PropertiesFileFormat.d.ts +8 -0
  59. package/dist/PropertiesFileFormat.js +85 -0
  60. package/dist/PropertiesFileFormat.js.map +1 -0
  61. package/dist/Render.d.ts +47 -0
  62. package/dist/Render.js +143 -0
  63. package/dist/Render.js.map +1 -0
  64. package/dist/RenderQueue.d.ts +19 -0
  65. package/dist/RenderQueue.js +53 -39
  66. package/dist/RenderQueue.js.map +1 -0
  67. package/dist/Runtimes.d.ts +27 -0
  68. package/dist/Runtimes.js +86 -0
  69. package/dist/Runtimes.js.map +1 -0
  70. package/dist/StaticArea.d.ts +3 -0
  71. package/dist/StaticArea.js +6 -34
  72. package/dist/StaticArea.js.map +1 -0
  73. package/dist/StaticAreaItem.d.ts +37 -0
  74. package/dist/StaticAreaItem.js +95 -60
  75. package/dist/StaticAreaItem.js.map +1 -0
  76. package/dist/SystemCSSVars.d.ts +2 -0
  77. package/dist/SystemCSSVars.js +9 -0
  78. package/dist/SystemCSSVars.js.map +1 -0
  79. package/dist/Theming.d.ts +3 -0
  80. package/dist/Theming.js +4 -45
  81. package/dist/Theming.js.map +1 -0
  82. package/dist/UI5Element.d.ts +380 -0
  83. package/dist/UI5Element.js +948 -825
  84. package/dist/UI5Element.js.map +1 -0
  85. package/dist/UI5ElementMetadata.d.ts +150 -0
  86. package/dist/UI5ElementMetadata.js +278 -135
  87. package/dist/UI5ElementMetadata.js.map +1 -0
  88. package/dist/animations/AnimationQueue.d.ts +8 -0
  89. package/dist/animations/AnimationQueue.js +31 -38
  90. package/dist/animations/AnimationQueue.js.map +1 -0
  91. package/dist/animations/animate.d.ts +14 -0
  92. package/dist/animations/animate.js +46 -51
  93. package/dist/animations/animate.js.map +1 -0
  94. package/dist/animations/scroll.d.ts +5 -0
  95. package/dist/animations/scroll.js +18 -27
  96. package/dist/animations/scroll.js.map +1 -0
  97. package/dist/animations/slideDown.d.ts +5 -0
  98. package/dist/animations/slideDown.js +53 -78
  99. package/dist/animations/slideDown.js.map +1 -0
  100. package/dist/animations/slideUp.d.ts +5 -0
  101. package/dist/animations/slideUp.js +49 -70
  102. package/dist/animations/slideUp.js.map +1 -0
  103. package/dist/api.json +1 -0
  104. package/dist/asset-registries/Icons.d.ts +39 -0
  105. package/dist/asset-registries/Icons.js +136 -24
  106. package/dist/asset-registries/Icons.js.map +1 -0
  107. package/dist/asset-registries/Illustrations.d.ts +18 -0
  108. package/dist/asset-registries/Illustrations.js +85 -0
  109. package/dist/asset-registries/Illustrations.js.map +1 -0
  110. package/dist/asset-registries/LocaleData.d.ts +7 -0
  111. package/dist/asset-registries/LocaleData.js +127 -92
  112. package/dist/asset-registries/LocaleData.js.map +1 -0
  113. package/dist/asset-registries/Themes.d.ts +11 -0
  114. package/dist/asset-registries/Themes.js +42 -65
  115. package/dist/asset-registries/Themes.js.map +1 -0
  116. package/dist/asset-registries/i18n.d.ts +23 -0
  117. package/dist/asset-registries/i18n.js +84 -58
  118. package/dist/asset-registries/i18n.js.map +1 -0
  119. package/dist/asset-registries/util/IconCollectionsAlias.d.ts +30 -0
  120. package/dist/asset-registries/util/IconCollectionsAlias.js +37 -0
  121. package/dist/asset-registries/util/IconCollectionsAlias.js.map +1 -0
  122. package/dist/asset-registries/util/IconCollectionsByTheme.d.ts +20 -0
  123. package/dist/asset-registries/util/IconCollectionsByTheme.js +42 -0
  124. package/dist/asset-registries/util/IconCollectionsByTheme.js.map +1 -0
  125. package/dist/asset-registries/util/getIconCollectionByTheme.d.ts +13 -0
  126. package/dist/asset-registries/util/getIconCollectionByTheme.js +29 -0
  127. package/dist/asset-registries/util/getIconCollectionByTheme.js.map +1 -0
  128. package/dist/assets/Boot-34b7cea0.css +1 -0
  129. package/dist/assets/Boot-a0f24ec1.js +9 -0
  130. package/dist/assets/bundle.esm-e25f4681.js +50 -0
  131. package/dist/config/AnimationMode.d.ts +14 -0
  132. package/dist/config/AnimationMode.js +23 -6
  133. package/dist/config/AnimationMode.js.map +1 -0
  134. package/dist/config/CalendarType.d.ts +15 -0
  135. package/dist/config/CalendarType.js +33 -16
  136. package/dist/config/CalendarType.js.map +1 -0
  137. package/dist/config/FormatSettings.d.ts +15 -0
  138. package/dist/config/FormatSettings.js +16 -6
  139. package/dist/config/FormatSettings.js.map +1 -0
  140. package/dist/config/Icons.d.ts +40 -0
  141. package/dist/config/Icons.js +44 -0
  142. package/dist/config/Icons.js.map +1 -0
  143. package/dist/config/Language.d.ts +40 -0
  144. package/dist/config/Language.js +66 -7
  145. package/dist/config/Language.js.map +1 -0
  146. package/dist/config/NoConflict.d.ts +20 -0
  147. package/dist/config/NoConflict.js +41 -34
  148. package/dist/config/NoConflict.js.map +1 -0
  149. package/dist/config/RTL.d.ts +7 -0
  150. package/dist/config/RTL.js +26 -20
  151. package/dist/config/RTL.js.map +1 -0
  152. package/dist/config/Theme.d.ts +38 -0
  153. package/dist/config/Theme.js +65 -19
  154. package/dist/config/Theme.js.map +1 -0
  155. package/dist/config/ThemeRoot.d.ts +29 -0
  156. package/dist/config/ThemeRoot.js +59 -0
  157. package/dist/config/ThemeRoot.js.map +1 -0
  158. package/dist/config/Timezone.d.ts +17 -0
  159. package/dist/config/Timezone.js +30 -0
  160. package/dist/config/Timezone.js.map +1 -0
  161. package/dist/connectToComponent.d.ts +9 -0
  162. package/dist/connectToComponent.js +59 -0
  163. package/dist/connectToComponent.js.map +1 -0
  164. package/dist/css/BusyIndicator.css +80 -0
  165. package/dist/css/FontFace.css +84 -0
  166. package/dist/css/OverrideFontFace.css +32 -0
  167. package/dist/css/SystemCSSVars.css +17 -0
  168. package/dist/decorators/customElement.d.ts +23 -0
  169. package/dist/decorators/customElement.js +37 -0
  170. package/dist/decorators/customElement.js.map +1 -0
  171. package/dist/decorators/event.d.ts +10 -0
  172. package/dist/decorators/event.js +24 -0
  173. package/dist/decorators/event.js.map +1 -0
  174. package/dist/decorators/property.d.ts +9 -0
  175. package/dist/decorators/property.js +24 -0
  176. package/dist/decorators/property.js.map +1 -0
  177. package/dist/decorators/slot.d.ts +9 -0
  178. package/dist/decorators/slot.js +37 -0
  179. package/dist/decorators/slot.js.map +1 -0
  180. package/dist/delegate/ItemNavigation.d.ts +113 -0
  181. package/dist/delegate/ItemNavigation.js +312 -270
  182. package/dist/delegate/ItemNavigation.js.map +1 -0
  183. package/dist/delegate/ResizeHandler.d.ts +25 -0
  184. package/dist/delegate/ResizeHandler.js +84 -63
  185. package/dist/delegate/ResizeHandler.js.map +1 -0
  186. package/dist/delegate/ScrollEnablement.d.ts +49 -0
  187. package/dist/delegate/ScrollEnablement.js +159 -74
  188. package/dist/delegate/ScrollEnablement.js.map +1 -0
  189. package/dist/features/F6Navigation.d.ts +19 -0
  190. package/dist/features/F6Navigation.js +151 -0
  191. package/dist/features/F6Navigation.js.map +1 -0
  192. package/dist/features/LegacyDateFormats.d.ts +18 -0
  193. package/dist/features/LegacyDateFormats.js +20 -0
  194. package/dist/features/LegacyDateFormats.js.map +1 -0
  195. package/dist/features/OpenUI5Element.d.ts +9 -0
  196. package/dist/features/OpenUI5Element.js +5 -0
  197. package/dist/features/OpenUI5Element.js.map +1 -0
  198. package/dist/features/OpenUI5Enablement.d.ts +11 -0
  199. package/dist/features/OpenUI5Enablement.js +96 -0
  200. package/dist/features/OpenUI5Enablement.js.map +1 -0
  201. package/dist/features/OpenUI5Support.d.ts +36 -0
  202. package/dist/features/OpenUI5Support.js +154 -0
  203. package/dist/features/OpenUI5Support.js.map +1 -0
  204. package/dist/generated/AssetParameters.js +15 -0
  205. package/dist/generated/VersionInfo.js +10 -0
  206. package/dist/generated/css/BusyIndicator.css.d.ts +3 -0
  207. package/dist/generated/css/BusyIndicator.css.js +7 -0
  208. package/dist/generated/css/BusyIndicator.css.js.map +1 -0
  209. package/dist/generated/css/FontFace.css.d.ts +3 -0
  210. package/dist/generated/css/FontFace.css.js +7 -0
  211. package/dist/generated/css/FontFace.css.js.map +1 -0
  212. package/dist/generated/css/OverrideFontFace.css.d.ts +3 -0
  213. package/dist/generated/css/OverrideFontFace.css.js +7 -0
  214. package/dist/generated/css/OverrideFontFace.css.js.map +1 -0
  215. package/dist/generated/css/SystemCSSVars.css.d.ts +3 -0
  216. package/dist/generated/css/SystemCSSVars.css.js +7 -0
  217. package/dist/generated/css/SystemCSSVars.css.js.map +1 -0
  218. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.d.ts +4 -0
  219. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +9 -0
  220. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js.map +1 -0
  221. package/dist/getSharedResource.d.ts +11 -0
  222. package/dist/getSharedResource.js +40 -0
  223. package/dist/getSharedResource.js.map +1 -0
  224. package/dist/global.d.ts +40 -0
  225. package/dist/i18nBundle.d.ts +43 -0
  226. package/dist/i18nBundle.js +74 -30
  227. package/dist/i18nBundle.js.map +1 -0
  228. package/dist/locale/Locale.d.ts +22 -0
  229. package/dist/locale/Locale.js +79 -0
  230. package/dist/locale/Locale.js.map +1 -0
  231. package/dist/locale/RTLAwareRegistry.d.ts +4 -0
  232. package/dist/locale/RTLAwareRegistry.js +9 -0
  233. package/dist/locale/RTLAwareRegistry.js.map +1 -0
  234. package/dist/locale/applyDirection.d.ts +10 -0
  235. package/dist/locale/applyDirection.js +17 -0
  236. package/dist/locale/applyDirection.js.map +1 -0
  237. package/dist/locale/directionChange.d.ts +15 -0
  238. package/dist/locale/directionChange.js +24 -0
  239. package/dist/locale/directionChange.js.map +1 -0
  240. package/dist/locale/getEffectiveDir.d.ts +2 -0
  241. package/dist/locale/getEffectiveDir.js +24 -0
  242. package/dist/locale/getEffectiveDir.js.map +1 -0
  243. package/dist/locale/getLocale.d.ts +7 -0
  244. package/dist/locale/getLocale.js +38 -0
  245. package/dist/locale/getLocale.js.map +1 -0
  246. package/dist/locale/languageChange.d.ts +5 -0
  247. package/dist/locale/languageChange.js +14 -0
  248. package/dist/locale/languageChange.js.map +1 -0
  249. package/dist/locale/nextFallbackLocale.d.ts +8 -0
  250. package/dist/locale/nextFallbackLocale.js +24 -0
  251. package/dist/locale/nextFallbackLocale.js.map +1 -0
  252. package/dist/locale/normalizeLocale.d.ts +7 -0
  253. package/dist/locale/normalizeLocale.js +47 -0
  254. package/dist/locale/normalizeLocale.js.map +1 -0
  255. package/dist/renderer/LitRenderer.d.ts +14 -0
  256. package/dist/renderer/LitRenderer.js +38 -12
  257. package/dist/renderer/LitRenderer.js.map +1 -0
  258. package/dist/renderer/directives/style-map.js +72 -0
  259. package/dist/renderer/executeTemplate.d.ts +13 -0
  260. package/dist/renderer/executeTemplate.js +30 -0
  261. package/dist/renderer/executeTemplate.js.map +1 -0
  262. package/dist/sap/base/Log.js +240 -0
  263. package/dist/sap/base/assert.js +7 -0
  264. package/dist/sap/base/security/URLListValidator.js +159 -0
  265. package/dist/sap/base/security/encodeCSS.js +14 -0
  266. package/dist/sap/base/security/encodeXML.js +23 -0
  267. package/dist/sap/base/security/sanitizeHTML.js +16 -0
  268. package/dist/sap/base/strings/toHex.js +8 -0
  269. package/dist/sap/base/util/now.js +7 -0
  270. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +3600 -0
  271. package/dist/theming/CustomStyle.d.ts +6 -0
  272. package/dist/theming/CustomStyle.js +46 -17
  273. package/dist/theming/CustomStyle.js.map +1 -0
  274. package/dist/theming/ThemeLoaded.d.ts +5 -0
  275. package/dist/theming/ThemeLoaded.js +14 -0
  276. package/dist/theming/ThemeLoaded.js.map +1 -0
  277. package/dist/theming/ThemeRegistered.d.ts +4 -0
  278. package/dist/theming/ThemeRegistered.js +11 -0
  279. package/dist/theming/ThemeRegistered.js.map +1 -0
  280. package/dist/theming/applyTheme.d.ts +2 -0
  281. package/dist/theming/applyTheme.js +76 -0
  282. package/dist/theming/applyTheme.js.map +1 -0
  283. package/dist/theming/getConstructableStyle.d.ts +9 -0
  284. package/dist/theming/getConstructableStyle.js +25 -0
  285. package/dist/theming/getConstructableStyle.js.map +1 -0
  286. package/dist/theming/getEffectiveLinksHrefs.d.ts +3 -0
  287. package/dist/theming/getEffectiveLinksHrefs.js +17 -0
  288. package/dist/theming/getEffectiveLinksHrefs.js.map +1 -0
  289. package/dist/theming/getEffectiveStyle.d.ts +3 -0
  290. package/dist/theming/getEffectiveStyle.js +32 -0
  291. package/dist/theming/getEffectiveStyle.js.map +1 -0
  292. package/dist/theming/getStylesString.d.ts +3 -0
  293. package/dist/theming/getStylesString.js +11 -0
  294. package/dist/theming/getStylesString.js.map +1 -0
  295. package/dist/theming/getThemeDesignerTheme.d.ts +7 -0
  296. package/dist/theming/getThemeDesignerTheme.js +80 -0
  297. package/dist/theming/getThemeDesignerTheme.js.map +1 -0
  298. package/dist/theming/preloadLinks.d.ts +3 -0
  299. package/dist/theming/preloadLinks.js +19 -0
  300. package/dist/theming/preloadLinks.js.map +1 -0
  301. package/dist/thirdparty/_merge.d.ts +2 -0
  302. package/dist/thirdparty/_merge.js +35 -0
  303. package/dist/thirdparty/_merge.js.map +1 -0
  304. package/dist/thirdparty/isPlainObject.d.ts +2 -0
  305. package/dist/thirdparty/isPlainObject.js +19 -0
  306. package/dist/thirdparty/isPlainObject.js.map +1 -0
  307. package/dist/thirdparty/merge.d.ts +2 -0
  308. package/dist/thirdparty/merge.js +6 -0
  309. package/dist/thirdparty/merge.js.map +1 -0
  310. package/dist/types/AnimationMode.d.ts +32 -0
  311. package/dist/types/AnimationMode.js +33 -6
  312. package/dist/types/AnimationMode.js.map +1 -0
  313. package/dist/types/CSSColor.d.ts +15 -0
  314. package/dist/types/CSSColor.js +18 -0
  315. package/dist/types/CSSColor.js.map +1 -0
  316. package/dist/types/CSSSize.d.ts +15 -0
  317. package/dist/types/CSSSize.js +14 -5
  318. package/dist/types/CSSSize.js.map +1 -0
  319. package/dist/types/CalendarType.d.ts +37 -0
  320. package/dist/types/CalendarType.js +39 -0
  321. package/dist/types/CalendarType.js.map +1 -0
  322. package/dist/types/DOMReference.d.ts +17 -0
  323. package/dist/types/DOMReference.js +25 -0
  324. package/dist/types/DOMReference.js.map +1 -0
  325. package/dist/types/DataType.d.ts +25 -0
  326. package/dist/types/DataType.js +33 -14
  327. package/dist/types/DataType.js.map +1 -0
  328. package/dist/types/Float.d.ts +17 -0
  329. package/dist/types/Float.js +21 -0
  330. package/dist/types/Float.js.map +1 -0
  331. package/dist/types/Integer.d.ts +17 -0
  332. package/dist/types/Integer.js +17 -5
  333. package/dist/types/Integer.js.map +1 -0
  334. package/dist/types/InvisibleMessageMode.d.ts +25 -0
  335. package/dist/types/InvisibleMessageMode.js +27 -0
  336. package/dist/types/InvisibleMessageMode.js.map +1 -0
  337. package/dist/types/ItemNavigationBehavior.d.ts +24 -0
  338. package/dist/types/ItemNavigationBehavior.js +22 -17
  339. package/dist/types/ItemNavigationBehavior.js.map +1 -0
  340. package/dist/types/NavigationMode.d.ts +32 -0
  341. package/dist/types/NavigationMode.js +33 -5
  342. package/dist/types/NavigationMode.js.map +1 -0
  343. package/dist/types/ValueState.d.ts +42 -0
  344. package/dist/types/ValueState.js +41 -18
  345. package/dist/types/ValueState.js.map +1 -0
  346. package/dist/types.d.ts +18 -0
  347. package/dist/types.js +2 -0
  348. package/dist/types.js.map +1 -0
  349. package/dist/updateShadowRoot.d.ts +8 -0
  350. package/dist/updateShadowRoot.js +42 -0
  351. package/dist/updateShadowRoot.js.map +1 -0
  352. package/dist/util/AriaLabelHelper.d.ts +15 -0
  353. package/dist/util/AriaLabelHelper.js +171 -0
  354. package/dist/util/AriaLabelHelper.js.map +1 -0
  355. package/dist/util/Caret.d.ts +7 -0
  356. package/dist/util/Caret.js +23 -0
  357. package/dist/util/Caret.js.map +1 -0
  358. package/dist/util/ColorConversion.d.ts +30 -0
  359. package/dist/util/ColorConversion.js +343 -0
  360. package/dist/util/ColorConversion.js.map +1 -0
  361. package/dist/util/FetchHelper.d.ts +3 -0
  362. package/dist/util/FetchHelper.js +19 -25
  363. package/dist/util/FetchHelper.js.map +1 -0
  364. package/dist/util/FocusableElements.d.ts +4 -0
  365. package/dist/util/FocusableElements.js +68 -56
  366. package/dist/util/FocusableElements.js.map +1 -0
  367. package/dist/util/HTMLSanitizer.d.ts +3 -0
  368. package/dist/util/HTMLSanitizer.js +6 -0
  369. package/dist/util/HTMLSanitizer.js.map +1 -0
  370. package/dist/util/InvisibleMessage.d.ts +10 -0
  371. package/dist/util/InvisibleMessage.js +56 -0
  372. package/dist/util/InvisibleMessage.js.map +1 -0
  373. package/dist/util/PopupUtils.d.ts +7 -0
  374. package/dist/util/PopupUtils.js +74 -0
  375. package/dist/util/PopupUtils.js.map +1 -0
  376. package/dist/util/SlotsHelper.d.ts +9 -0
  377. package/dist/util/SlotsHelper.js +30 -0
  378. package/dist/util/SlotsHelper.js.map +1 -0
  379. package/dist/util/StringHelper.d.ts +3 -0
  380. package/dist/util/StringHelper.js +21 -9
  381. package/dist/util/StringHelper.js.map +1 -0
  382. package/dist/util/TabbableElements.d.ts +17 -0
  383. package/dist/util/TabbableElements.js +53 -40
  384. package/dist/util/TabbableElements.js.map +1 -0
  385. package/dist/util/arraysAreEqual.d.ts +2 -0
  386. package/dist/util/arraysAreEqual.js +13 -0
  387. package/dist/util/arraysAreEqual.js.map +1 -0
  388. package/dist/util/clamp.d.ts +9 -0
  389. package/dist/util/clamp.js +12 -0
  390. package/dist/util/clamp.js.map +1 -0
  391. package/dist/util/createLinkInHead.d.ts +7 -0
  392. package/dist/util/createLinkInHead.js +21 -0
  393. package/dist/util/createLinkInHead.js.map +1 -0
  394. package/dist/util/createStyleInHead.d.ts +8 -0
  395. package/dist/util/createStyleInHead.js +10 -10
  396. package/dist/util/createStyleInHead.js.map +1 -0
  397. package/dist/util/debounce.d.ts +2 -0
  398. package/dist/util/debounce.js +15 -0
  399. package/dist/util/debounce.js.map +1 -0
  400. package/dist/util/detectNavigatorLanguage.d.ts +2 -0
  401. package/dist/util/detectNavigatorLanguage.js +8 -9
  402. package/dist/util/detectNavigatorLanguage.js.map +1 -0
  403. package/dist/util/escapeRegex.d.ts +8 -0
  404. package/dist/util/escapeRegex.js +11 -0
  405. package/dist/util/escapeRegex.js.map +1 -0
  406. package/dist/util/formatMessage.d.ts +2 -0
  407. package/dist/util/formatMessage.js +15 -19
  408. package/dist/util/formatMessage.js.map +1 -0
  409. package/dist/util/generateHighlightedMarkup.d.ts +9 -0
  410. package/dist/util/generateHighlightedMarkup.js +41 -0
  411. package/dist/util/generateHighlightedMarkup.js.map +1 -0
  412. package/dist/util/getActiveElement.d.ts +2 -0
  413. package/dist/util/getActiveElement.js +9 -0
  414. package/dist/util/getActiveElement.js.map +1 -0
  415. package/dist/util/getClassCopy.d.ts +400 -0
  416. package/dist/util/getClassCopy.js +10 -0
  417. package/dist/util/getClassCopy.js.map +1 -0
  418. package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -0
  419. package/dist/util/getDesigntimePropertyAsArray.js +4 -3
  420. package/dist/util/getDesigntimePropertyAsArray.js.map +1 -0
  421. package/dist/util/getEffectiveContentDensity.d.ts +2 -0
  422. package/dist/util/getEffectiveContentDensity.js +4 -0
  423. package/dist/util/getEffectiveContentDensity.js.map +1 -0
  424. package/dist/util/getEffectiveScrollbarStyle.d.ts +2 -0
  425. package/dist/util/getEffectiveScrollbarStyle.js +4 -0
  426. package/dist/util/getEffectiveScrollbarStyle.js.map +1 -0
  427. package/dist/util/getFastNavigationGroups.d.ts +2 -0
  428. package/dist/util/getFastNavigationGroups.js +51 -0
  429. package/dist/util/getFastNavigationGroups.js.map +1 -0
  430. package/dist/util/getFileExtension.d.ts +12 -0
  431. package/dist/util/getFileExtension.js +19 -0
  432. package/dist/util/getFileExtension.js.map +1 -0
  433. package/dist/util/getNormalizedTarget.d.ts +7 -0
  434. package/dist/util/getNormalizedTarget.js +14 -0
  435. package/dist/util/getNormalizedTarget.js.map +1 -0
  436. package/dist/util/getSingletonElementInstance.d.ts +11 -0
  437. package/dist/util/getSingletonElementInstance.js +19 -0
  438. package/dist/util/getSingletonElementInstance.js.map +1 -0
  439. package/dist/util/isElementClickable.d.ts +2 -0
  440. package/dist/util/isElementClickable.js +16 -0
  441. package/dist/util/isElementClickable.js.map +1 -0
  442. package/dist/util/isElementHidden.d.ts +2 -0
  443. package/dist/util/isElementHidden.js +8 -0
  444. package/dist/util/isElementHidden.js.map +1 -0
  445. package/dist/util/isElementInView.d.ts +6 -0
  446. package/dist/util/isElementInView.js +12 -0
  447. package/dist/util/isElementInView.js.map +1 -0
  448. package/dist/util/isElementTabbable.d.ts +9 -0
  449. package/dist/util/isElementTabbable.js +30 -0
  450. package/dist/util/isElementTabbable.js.map +1 -0
  451. package/dist/util/isValidPropertyName.d.ts +8 -0
  452. package/dist/util/isValidPropertyName.js +20 -12
  453. package/dist/util/isValidPropertyName.js.map +1 -0
  454. package/dist/util/whenDOMReady.d.ts +2 -0
  455. package/dist/util/whenDOMReady.js +11 -10
  456. package/dist/util/whenDOMReady.js.map +1 -0
  457. package/dist/util/willShowContent.d.ts +2 -0
  458. package/dist/util/willShowContent.js +7 -0
  459. package/dist/util/willShowContent.js.map +1 -0
  460. package/dist/validateThemeRoot.d.ts +2 -0
  461. package/dist/validateThemeRoot.js +48 -0
  462. package/dist/validateThemeRoot.js.map +1 -0
  463. package/index.js +228 -2
  464. package/lib/generate-asset-parameters/index.js +27 -0
  465. package/lib/generate-styles/index.js +31 -0
  466. package/lib/generate-version-info/index.js +32 -0
  467. package/package-scripts.cjs +71 -0
  468. package/package.json +23 -14
  469. package/src/css/BusyIndicator.css +80 -0
  470. package/src/css/FontFace.css +84 -0
  471. package/src/css/OverrideFontFace.css +32 -0
  472. package/src/css/SystemCSSVars.css +17 -0
  473. package/src/renderer/directives/style-map.js +72 -0
  474. package/tsconfig.json +14 -0
  475. package/used-modules.txt +10 -0
  476. package/bundle.es5.js +0 -28
  477. package/config/rollup.config.js +0 -1
  478. package/config/wdio.conf.js +0 -1
  479. package/dist/Assets.js +0 -2
  480. package/dist/CSS.js +0 -48
  481. package/dist/FormatSettings.js +0 -31
  482. package/dist/Locale.js +0 -101
  483. package/dist/LocaleProvider.js +0 -34
  484. package/dist/RenderScheduler.js +0 -165
  485. package/dist/ResourceLoaderOverrides.js +0 -38
  486. package/dist/SVGIconRegistry.js +0 -54
  487. package/dist/animations/config.js +0 -5
  488. package/dist/boot.js +0 -25
  489. package/dist/compatibility/DOMObserver.js +0 -62
  490. package/dist/compatibility/patchNodeValue.js +0 -24
  491. package/dist/compatibility/whenPolyfillLoaded.js +0 -26
  492. package/dist/dates/CalendarDate.js +0 -203
  493. package/dist/dates/CalendarType.js +0 -22
  494. package/dist/dates/CalendarUtils.js +0 -99
  495. package/dist/delegate/CustomResize.js +0 -78
  496. package/dist/delegate/NativeResize.js +0 -44
  497. package/dist/events/PseudoEvents.js +0 -58
  498. package/dist/features/browsersupport/Edge.js +0 -6
  499. package/dist/features/browsersupport/IE11.js +0 -41
  500. package/dist/features/calendar/Buddhist.js +0 -1
  501. package/dist/features/calendar/Islamic.js +0 -1
  502. package/dist/features/calendar/Japanese.js +0 -1
  503. package/dist/features/calendar/Persian.js +0 -1
  504. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar.json +0 -5598
  505. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar_EG.json +0 -5598
  506. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar_SA.json +0 -5598
  507. package/dist/generated/assets/cldr/sap/ui/core/cldr/bg.json +0 -4789
  508. package/dist/generated/assets/cldr/sap/ui/core/cldr/ca.json +0 -4801
  509. package/dist/generated/assets/cldr/sap/ui/core/cldr/cs.json +0 -5245
  510. package/dist/generated/assets/cldr/sap/ui/core/cldr/da.json +0 -4696
  511. package/dist/generated/assets/cldr/sap/ui/core/cldr/de.json +0 -4797
  512. package/dist/generated/assets/cldr/sap/ui/core/cldr/de_AT.json +0 -4798
  513. package/dist/generated/assets/cldr/sap/ui/core/cldr/de_CH.json +0 -4796
  514. package/dist/generated/assets/cldr/sap/ui/core/cldr/el.json +0 -4694
  515. package/dist/generated/assets/cldr/sap/ui/core/cldr/el_CY.json +0 -4694
  516. package/dist/generated/assets/cldr/sap/ui/core/cldr/en.json +0 -4777
  517. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_AU.json +0 -4769
  518. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_GB.json +0 -4778
  519. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_HK.json +0 -4784
  520. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_IE.json +0 -4778
  521. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_IN.json +0 -4779
  522. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_NZ.json +0 -4778
  523. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_PG.json +0 -4779
  524. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_SG.json +0 -4780
  525. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_ZA.json +0 -4779
  526. package/dist/generated/assets/cldr/sap/ui/core/cldr/es.json +0 -4719
  527. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_AR.json +0 -4721
  528. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_BO.json +0 -4720
  529. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_CL.json +0 -4721
  530. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_CO.json +0 -4721
  531. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_MX.json +0 -4722
  532. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_PE.json +0 -4720
  533. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_UY.json +0 -4722
  534. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_VE.json +0 -4721
  535. package/dist/generated/assets/cldr/sap/ui/core/cldr/et.json +0 -4776
  536. package/dist/generated/assets/cldr/sap/ui/core/cldr/fa.json +0 -4704
  537. package/dist/generated/assets/cldr/sap/ui/core/cldr/fi.json +0 -4816
  538. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr.json +0 -4788
  539. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_BE.json +0 -4788
  540. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_CA.json +0 -4782
  541. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_CH.json +0 -4806
  542. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_LU.json +0 -4788
  543. package/dist/generated/assets/cldr/sap/ui/core/cldr/he.json +0 -5133
  544. package/dist/generated/assets/cldr/sap/ui/core/cldr/hi.json +0 -4680
  545. package/dist/generated/assets/cldr/sap/ui/core/cldr/hr.json +0 -4910
  546. package/dist/generated/assets/cldr/sap/ui/core/cldr/hu.json +0 -4664
  547. package/dist/generated/assets/cldr/sap/ui/core/cldr/id.json +0 -4500
  548. package/dist/generated/assets/cldr/sap/ui/core/cldr/it.json +0 -4757
  549. package/dist/generated/assets/cldr/sap/ui/core/cldr/it_CH.json +0 -4757
  550. package/dist/generated/assets/cldr/sap/ui/core/cldr/ja.json +0 -4599
  551. package/dist/generated/assets/cldr/sap/ui/core/cldr/kk.json +0 -4537
  552. package/dist/generated/assets/cldr/sap/ui/core/cldr/ko.json +0 -4574
  553. package/dist/generated/assets/cldr/sap/ui/core/cldr/lt.json +0 -5234
  554. package/dist/generated/assets/cldr/sap/ui/core/cldr/lv.json +0 -4902
  555. package/dist/generated/assets/cldr/sap/ui/core/cldr/ms.json +0 -4352
  556. package/dist/generated/assets/cldr/sap/ui/core/cldr/nb.json +0 -4784
  557. package/dist/generated/assets/cldr/sap/ui/core/cldr/nl.json +0 -4790
  558. package/dist/generated/assets/cldr/sap/ui/core/cldr/nl_BE.json +0 -4790
  559. package/dist/generated/assets/cldr/sap/ui/core/cldr/pl.json +0 -5223
  560. package/dist/generated/assets/cldr/sap/ui/core/cldr/pt.json +0 -4703
  561. package/dist/generated/assets/cldr/sap/ui/core/cldr/pt_PT.json +0 -4753
  562. package/dist/generated/assets/cldr/sap/ui/core/cldr/ro.json +0 -4881
  563. package/dist/generated/assets/cldr/sap/ui/core/cldr/ru.json +0 -5157
  564. package/dist/generated/assets/cldr/sap/ui/core/cldr/ru_UA.json +0 -5157
  565. package/dist/generated/assets/cldr/sap/ui/core/cldr/sk.json +0 -5125
  566. package/dist/generated/assets/cldr/sap/ui/core/cldr/sl.json +0 -5105
  567. package/dist/generated/assets/cldr/sap/ui/core/cldr/sr.json +0 -4908
  568. package/dist/generated/assets/cldr/sap/ui/core/cldr/sv.json +0 -4818
  569. package/dist/generated/assets/cldr/sap/ui/core/cldr/th.json +0 -4633
  570. package/dist/generated/assets/cldr/sap/ui/core/cldr/tr.json +0 -4791
  571. package/dist/generated/assets/cldr/sap/ui/core/cldr/uk.json +0 -5126
  572. package/dist/generated/assets/cldr/sap/ui/core/cldr/vi.json +0 -4510
  573. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_CN.json +0 -4469
  574. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_HK.json +0 -4479
  575. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_SG.json +0 -4479
  576. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_TW.json +0 -4565
  577. package/dist/json-imports/LocaleData.js +0 -171
  578. package/dist/renderer/ifDefined.js +0 -21
  579. package/dist/resources/bundle.es5.js +0 -12643
  580. package/dist/resources/bundle.es5.js.map +0 -1
  581. package/dist/resources/bundle.esm.js +0 -7450
  582. package/dist/resources/bundle.esm.js.map +0 -1
  583. package/dist/shims/Core-shim.js +0 -52
  584. package/dist/shims/jquery-shim.js +0 -89
  585. package/dist/test-resources/assets/Themes.js +0 -11
  586. package/dist/test-resources/elements/Child.js +0 -35
  587. package/dist/test-resources/elements/Generic.js +0 -83
  588. package/dist/test-resources/elements/GenericExt.js +0 -26
  589. package/dist/test-resources/elements/NoShadowDOM.js +0 -13
  590. package/dist/test-resources/elements/Parent.js +0 -36
  591. package/dist/test-resources/pages/AllTestElements.html +0 -42
  592. package/dist/test-resources/pages/Configuration.html +0 -20
  593. package/dist/test-resources/pages/ConfigurationScript.html +0 -36
  594. package/dist/test-resources/specs/ConfigurationChange.spec.js +0 -25
  595. package/dist/test-resources/specs/ConfigurationScript.spec.js +0 -61
  596. package/dist/test-resources/specs/ConfigurationURL.spec.js +0 -45
  597. package/dist/test-resources/specs/CustomTheme.spec.js +0 -25
  598. package/dist/test-resources/specs/Theming.spec.js +0 -31
  599. package/dist/test-resources/specs/UI5ElementInvalidation.js +0 -258
  600. package/dist/test-resources/specs/UI5ElementLifecycle.js +0 -93
  601. package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +0 -101
  602. package/dist/test-resources/specs/UI5ElementMetadataExt.js +0 -40
  603. package/dist/test-resources/specs/UI5ElementPropertyValidation.js +0 -12
  604. package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +0 -65
  605. package/dist/test-resources/specs/UI5ElementShadowDOM.js +0 -22
  606. package/dist/test-resources/specs/UI5ElementSlots.js +0 -34
  607. package/dist/theming/StyleInjection.js +0 -67
  608. package/dist/thirdparty/Array.from.js +0 -16
  609. package/dist/thirdparty/Array.prototype.fill.js +0 -44
  610. package/dist/thirdparty/Array.prototype.find.js +0 -46
  611. package/dist/thirdparty/Array.prototype.includes.js +0 -51
  612. package/dist/thirdparty/Element.prototype.closest.js +0 -11
  613. package/dist/thirdparty/Element.prototype.matches.js +0 -6
  614. package/dist/thirdparty/Map.prototype.keys.js +0 -9
  615. package/dist/thirdparty/Number.isInteger.js +0 -5
  616. package/dist/thirdparty/Number.isNaN.js +0 -1
  617. package/dist/thirdparty/Number.parseInt.js +0 -1
  618. package/dist/thirdparty/Object.assign.js +0 -31
  619. package/dist/thirdparty/Object.entries.js +0 -11
  620. package/dist/thirdparty/Symbol.js +0 -2
  621. package/dist/thirdparty/WeakSet.js +0 -27
  622. package/dist/thirdparty/events-polyfills.js +0 -89
  623. package/dist/thirdparty/fetch.js +0 -1
  624. package/dist/thirdparty/template.js +0 -600
  625. package/dist/types/PopupState.js +0 -37
  626. package/dist/util/CSSTransformUtils.js +0 -90
  627. package/dist/util/isDescendantOf.js +0 -15
  628. package/dist/util/isNodeClickable.js +0 -19
  629. package/dist/util/isNodeHidden.js +0 -13
  630. package/dist/util/isNodeTabbable.js +0 -28
  631. package/dist/util/normalizeLocale.js +0 -77
  632. package/dist/webcomponentsjs/LICENSE.md +0 -19
  633. package/dist/webcomponentsjs/README.md +0 -229
  634. package/dist/webcomponentsjs/bundles/webcomponents-ce.js +0 -63
  635. package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
  636. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -297
  637. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
  638. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -208
  639. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
  640. package/dist/webcomponentsjs/bundles/webcomponents-sd.js +0 -166
  641. package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
  642. package/dist/webcomponentsjs/custom-elements-es5-adapter.js +0 -15
  643. package/dist/webcomponentsjs/package.json +0 -46
  644. package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
  645. package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
  646. package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
  647. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
  648. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
  649. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
  650. package/dist/webcomponentsjs/webcomponents-bundle.js +0 -298
  651. package/dist/webcomponentsjs/webcomponents-bundle.js.map +0 -1
  652. package/dist/webcomponentsjs/webcomponents-loader.js +0 -185
  653. package/package-scripts.js +0 -42
  654. package/src/AssetRegistry.js +0 -9
  655. package/src/Assets.js +0 -2
  656. package/src/CSS.js +0 -48
  657. package/src/Device.js +0 -823
  658. package/src/EventProvider.js +0 -73
  659. package/src/FeaturesRegistry.js +0 -11
  660. package/src/FontFace.js +0 -66
  661. package/src/FormatSettings.js +0 -31
  662. package/src/InitialConfiguration.js +0 -119
  663. package/src/Locale.js +0 -101
  664. package/src/LocaleProvider.js +0 -34
  665. package/src/RenderQueue.js +0 -42
  666. package/src/RenderScheduler.js +0 -165
  667. package/src/ResourceLoaderOverrides.js +0 -38
  668. package/src/SVGIconRegistry.js +0 -54
  669. package/src/StaticArea.js +0 -41
  670. package/src/StaticAreaItem.js +0 -73
  671. package/src/Theming.js +0 -45
  672. package/src/UI5Element.js +0 -842
  673. package/src/UI5ElementMetadata.js +0 -148
  674. package/src/animations/AnimationQueue.js +0 -42
  675. package/src/animations/animate.js +0 -53
  676. package/src/animations/config.js +0 -5
  677. package/src/animations/scroll.js +0 -28
  678. package/src/animations/slideDown.js +0 -79
  679. package/src/animations/slideUp.js +0 -71
  680. package/src/asset-registries/Icons.js +0 -24
  681. package/src/asset-registries/LocaleData.js +0 -101
  682. package/src/asset-registries/Themes.js +0 -75
  683. package/src/asset-registries/i18n.js +0 -75
  684. package/src/boot.js +0 -25
  685. package/src/compatibility/DOMObserver.js +0 -62
  686. package/src/compatibility/patchNodeValue.js +0 -24
  687. package/src/compatibility/whenPolyfillLoaded.js +0 -26
  688. package/src/config/AnimationMode.js +0 -9
  689. package/src/config/CalendarType.js +0 -18
  690. package/src/config/FormatSettings.js +0 -9
  691. package/src/config/Language.js +0 -9
  692. package/src/config/NoConflict.js +0 -44
  693. package/src/config/RTL.js +0 -31
  694. package/src/config/Theme.js +0 -24
  695. package/src/dates/CalendarDate.js +0 -203
  696. package/src/dates/CalendarType.js +0 -22
  697. package/src/dates/CalendarUtils.js +0 -99
  698. package/src/delegate/CustomResize.js +0 -78
  699. package/src/delegate/ItemNavigation.js +0 -274
  700. package/src/delegate/NativeResize.js +0 -44
  701. package/src/delegate/ResizeHandler.js +0 -66
  702. package/src/delegate/ScrollEnablement.js +0 -80
  703. package/src/events/PseudoEvents.js +0 -58
  704. package/src/features/browsersupport/Edge.js +0 -6
  705. package/src/features/browsersupport/IE11.js +0 -41
  706. package/src/features/calendar/Buddhist.js +0 -1
  707. package/src/features/calendar/Islamic.js +0 -1
  708. package/src/features/calendar/Japanese.js +0 -1
  709. package/src/features/calendar/Persian.js +0 -1
  710. package/src/i18nBundle.js +0 -35
  711. package/src/json-imports/LocaleData.js +0 -171
  712. package/src/renderer/LitRenderer.js +0 -15
  713. package/src/renderer/ifDefined.js +0 -21
  714. package/src/shims/Core-shim.js +0 -52
  715. package/src/shims/jquery-shim.js +0 -89
  716. package/src/theming/CustomStyle.js +0 -19
  717. package/src/theming/StyleInjection.js +0 -67
  718. package/src/thirdparty/Array.from.js +0 -16
  719. package/src/thirdparty/Array.prototype.fill.js +0 -44
  720. package/src/thirdparty/Array.prototype.find.js +0 -46
  721. package/src/thirdparty/Array.prototype.includes.js +0 -51
  722. package/src/thirdparty/Element.prototype.closest.js +0 -11
  723. package/src/thirdparty/Element.prototype.matches.js +0 -6
  724. package/src/thirdparty/Map.prototype.keys.js +0 -9
  725. package/src/thirdparty/Number.isInteger.js +0 -5
  726. package/src/thirdparty/Number.isNaN.js +0 -1
  727. package/src/thirdparty/Number.parseInt.js +0 -1
  728. package/src/thirdparty/Object.assign.js +0 -31
  729. package/src/thirdparty/Object.entries.js +0 -11
  730. package/src/thirdparty/Symbol.js +0 -2
  731. package/src/thirdparty/WeakSet.js +0 -27
  732. package/src/thirdparty/events-polyfills.js +0 -89
  733. package/src/thirdparty/fetch.js +0 -1
  734. package/src/thirdparty/template.js +0 -600
  735. package/src/types/AnimationMode.js +0 -7
  736. package/src/types/CSSSize.js +0 -9
  737. package/src/types/DataType.js +0 -25
  738. package/src/types/Integer.js +0 -9
  739. package/src/types/ItemNavigationBehavior.js +0 -21
  740. package/src/types/NavigationMode.js +0 -6
  741. package/src/types/PopupState.js +0 -37
  742. package/src/types/ValueState.js +0 -21
  743. package/src/util/CSSTransformUtils.js +0 -90
  744. package/src/util/FetchHelper.js +0 -31
  745. package/src/util/FocusableElements.js +0 -60
  746. package/src/util/StringHelper.js +0 -11
  747. package/src/util/TabbableElements.js +0 -44
  748. package/src/util/createStyleInHead.js +0 -18
  749. package/src/util/detectNavigatorLanguage.js +0 -11
  750. package/src/util/formatMessage.js +0 -23
  751. package/src/util/getDesigntimePropertyAsArray.js +0 -4
  752. package/src/util/isDescendantOf.js +0 -15
  753. package/src/util/isNodeClickable.js +0 -19
  754. package/src/util/isNodeHidden.js +0 -13
  755. package/src/util/isNodeTabbable.js +0 -28
  756. package/src/util/isValidPropertyName.js +0 -20
  757. package/src/util/normalizeLocale.js +0 -77
  758. package/src/util/whenDOMReady.js +0 -13
  759. /package/{config/.eslintrc.js → .eslintrc.cjs} +0 -0
package/src/UI5Element.js DELETED
@@ -1,842 +0,0 @@
1
- import merge from "@ui5/webcomponents-utils/dist/sap/base/util/merge.js";
2
- import boot from "./boot.js";
3
- import { skipOriginalEvent } from "./config/NoConflict.js";
4
- import DOMObserver from "./compatibility/DOMObserver.js";
5
- import UI5ElementMetadata from "./UI5ElementMetadata.js";
6
- import StaticAreaItem from "./StaticAreaItem.js";
7
- import Integer from "./types/Integer.js";
8
- import RenderScheduler from "./RenderScheduler.js";
9
- import { getConstructableStyle, createHeadStyle } from "./CSS.js";
10
- import { getEffectiveStyle } from "./Theming.js";
11
- import { kebabToCamelCase, camelToKebabCase } from "./util/StringHelper.js";
12
- import isValidPropertyName from "./util/isValidPropertyName.js";
13
-
14
- const metadata = {
15
- events: {
16
- _propertyChange: {},
17
- },
18
- };
19
-
20
- const DefinitionsSet = new Set();
21
- const IDMap = new Map();
22
-
23
- const elementTimeouts = new Map();
24
-
25
- /**
26
- * Base class for all UI5 Web Components
27
- *
28
- * @class
29
- * @constructor
30
- * @author SAP SE
31
- * @alias sap.ui.webcomponents.base.UI5Element
32
- * @extends HTMLElement
33
- * @public
34
- */
35
- class UI5Element extends HTMLElement {
36
- constructor() {
37
- super();
38
- this._generateId();
39
- this._initializeState();
40
- this._upgradeAllProperties();
41
- this._initializeContainers();
42
-
43
- let deferredResolve;
44
- this._domRefReadyPromise = new Promise(resolve => {
45
- deferredResolve = resolve;
46
- });
47
- this._domRefReadyPromise._deferredResolve = deferredResolve;
48
-
49
- this._monitoredChildProps = new Map();
50
- }
51
-
52
- /**
53
- * @private
54
- */
55
- _generateId() {
56
- this._id = this.constructor._nextID();
57
- }
58
-
59
- /**
60
- * @private
61
- */
62
- _initializeContainers() {
63
- // Init Shadow Root
64
- if (this.constructor._needsShadowDOM()) {
65
- this.attachShadow({ mode: "open" });
66
-
67
- // IE11, Edge
68
- if (window.ShadyDOM) {
69
- createHeadStyle(this.constructor);
70
- }
71
-
72
- // Chrome
73
- if (document.adoptedStyleSheets) {
74
- const style = getConstructableStyle(this.constructor);
75
- this.shadowRoot.adoptedStyleSheets = [style];
76
- }
77
- }
78
-
79
- // Init StaticAreaItem only if needed
80
- if (this.constructor._needsStaticArea()) {
81
- this.staticAreaItem = new StaticAreaItem(this);
82
- }
83
- }
84
-
85
- /**
86
- * Do not call this method from derivatives of UI5Element, use "onEnterDOM" only
87
- * @private
88
- */
89
- async connectedCallback() {
90
- // Render the Shadow DOM
91
- if (this.constructor._needsShadowDOM()) {
92
- // always register the observer before yielding control to the main thread (await)
93
- this._startObservingDOMChildren();
94
-
95
- await this._processChildren();
96
- await RenderScheduler.renderImmediately(this);
97
- this._domRefReadyPromise._deferredResolve();
98
- if (typeof this.onEnterDOM === "function") {
99
- this.onEnterDOM();
100
- }
101
- }
102
-
103
- // Render Fragment if neccessary
104
- if (this.constructor._needsStaticArea()) {
105
- this.staticAreaItem._updateFragment(this);
106
- }
107
- }
108
-
109
- /**
110
- * Do not call this method from derivatives of UI5Element, use "onExitDOM" only
111
- * @private
112
- */
113
- disconnectedCallback() {
114
- if (this.constructor._needsShadowDOM()) {
115
- this._stopObservingDOMChildren();
116
- if (typeof this.onExitDOM === "function") {
117
- this.onExitDOM();
118
- }
119
- }
120
-
121
- if (this.constructor._needsStaticArea()) {
122
- this.staticAreaItem._removeFragmentFromStaticArea();
123
- }
124
- }
125
-
126
- /**
127
- * @private
128
- */
129
- _startObservingDOMChildren() {
130
- const shouldObserveChildren = this.constructor.getMetadata().hasSlots();
131
- if (!shouldObserveChildren) {
132
- return;
133
- }
134
- const mutationObserverOptions = {
135
- childList: true,
136
- subtree: true,
137
- characterData: true,
138
- };
139
- DOMObserver.observeDOMNode(this, this._processChildren.bind(this), mutationObserverOptions);
140
- }
141
-
142
- /**
143
- * @private
144
- */
145
- _stopObservingDOMChildren() {
146
- DOMObserver.unobserveDOMNode(this);
147
- }
148
-
149
- /**
150
- * Note: this method is also manually called by "compatibility/patchNodeValue.js"
151
- * @private
152
- */
153
- async _processChildren() {
154
- const hasSlots = this.constructor.getMetadata().hasSlots();
155
- if (hasSlots) {
156
- await this._updateSlots();
157
- }
158
- }
159
-
160
- /**
161
- * @private
162
- */
163
- async _updateSlots() {
164
- const slotsMap = this.constructor.getMetadata().getSlots();
165
- const canSlotText = slotsMap.default && slotsMap.default.type === Node;
166
- const domChildren = Array.from(canSlotText ? this.childNodes : this.children);
167
-
168
- // Init the _state object based on the supported slots
169
- for (const [slotName, slotData] of Object.entries(slotsMap)) { // eslint-disable-line
170
- this._clearSlot(slotName);
171
- }
172
-
173
- const autoIncrementMap = new Map();
174
- const slottedChildrenMap = new Map();
175
-
176
- const allChildrenUpgraded = domChildren.map(async (child, idx) => {
177
- // Determine the type of the child (mainly by the slot attribute)
178
- const slotName = this.constructor._getSlotName(child);
179
- const slotData = slotsMap[slotName];
180
-
181
- // Check if the slotName is supported
182
- if (slotData === undefined) {
183
- const validValues = Object.keys(slotsMap).join(", ");
184
- console.warn(`Unknown slotName: ${slotName}, ignoring`, child, `Valid values are: ${validValues}`); // eslint-disable-line
185
- return;
186
- }
187
-
188
- // For children that need individual slots, calculate them
189
- if (slotData.individualSlots) {
190
- const nextId = (autoIncrementMap.get(slotName) || 0) + 1;
191
- autoIncrementMap.set(slotName, nextId);
192
- child._individualSlot = `${slotName}-${nextId}`;
193
- }
194
-
195
- // Await for not-yet-defined custom elements
196
- if (child instanceof HTMLElement) {
197
- const localName = child.localName;
198
- const isCustomElement = localName.includes("-");
199
- if (isCustomElement) {
200
- const isDefined = window.customElements.get(localName);
201
- if (!isDefined) {
202
- const whenDefinedPromise = window.customElements.whenDefined(localName); // Class registered, but instances not upgraded yet
203
- let timeoutPromise = elementTimeouts.get(localName);
204
- if (!timeoutPromise) {
205
- timeoutPromise = new Promise(resolve => setTimeout(resolve, 1000));
206
- elementTimeouts.set(localName, timeoutPromise);
207
- }
208
- await Promise.race([whenDefinedPromise, timeoutPromise]);
209
- }
210
- window.customElements.upgrade(child);
211
- }
212
- }
213
-
214
- child = this.constructor.getMetadata().constructor.validateSlotValue(child, slotData);
215
-
216
- if (child.isUI5Element) {
217
- this._attachChildPropertyUpdated(child, slotData);
218
- }
219
-
220
- const propertyName = slotData.propertyName || slotName;
221
-
222
- if (slottedChildrenMap.has(propertyName)) {
223
- slottedChildrenMap.get(propertyName).push({ child, idx });
224
- } else {
225
- slottedChildrenMap.set(propertyName, [{ child, idx }]);
226
- }
227
- });
228
-
229
- await Promise.all(allChildrenUpgraded);
230
-
231
- // Distribute the child in the _state object, keeping the Light DOM order,
232
- // not the order elements are defined.
233
- slottedChildrenMap.forEach((children, slot) => {
234
- this._state[slot] = children.sort((a, b) => a.idx - b.idx).map(_ => _.child);
235
- });
236
- this._invalidate();
237
- }
238
-
239
- /**
240
- * Removes all children from the slot and detaches listeners, if any
241
- * @private
242
- */
243
- _clearSlot(slotName) {
244
- const slotData = this.constructor.getMetadata().getSlots()[slotName];
245
- const propertyName = slotData.propertyName || slotName;
246
-
247
- let children = this._state[propertyName];
248
- if (!Array.isArray(children)) {
249
- children = [children];
250
- }
251
-
252
- children.forEach(child => {
253
- if (child && child.isUI5Element) {
254
- this._detachChildPropertyUpdated(child);
255
- }
256
- });
257
-
258
- this._state[propertyName] = [];
259
- this._invalidate(propertyName, []);
260
- }
261
-
262
- /**
263
- * Do not override this method in derivatives of UI5Element
264
- * @private
265
- */
266
- attributeChangedCallback(name, oldValue, newValue) {
267
- const properties = this.constructor.getMetadata().getProperties();
268
- const realName = name.replace(/^ui5-/, "");
269
- const nameInCamelCase = kebabToCamelCase(realName);
270
- if (properties.hasOwnProperty(nameInCamelCase)) { // eslint-disable-line
271
- const propertyTypeClass = properties[nameInCamelCase].type;
272
- if (propertyTypeClass === Boolean) {
273
- newValue = newValue !== null;
274
- }
275
- if (propertyTypeClass === Integer) {
276
- newValue = parseInt(newValue);
277
- }
278
- this[nameInCamelCase] = newValue;
279
- }
280
- }
281
-
282
- /**
283
- * @private
284
- */
285
- _updateAttribute(name, newValue) {
286
- if (!this.constructor.getMetadata().hasAttribute(name)) {
287
- return;
288
- }
289
-
290
- if (typeof newValue === "object") {
291
- return;
292
- }
293
-
294
- const attrName = camelToKebabCase(name);
295
- const attrValue = this.getAttribute(attrName);
296
- if (typeof newValue === "boolean") {
297
- if (newValue === true && attrValue === null) {
298
- this.setAttribute(attrName, "");
299
- } else if (newValue === false && attrValue !== null) {
300
- this.removeAttribute(attrName);
301
- }
302
- } else if (attrValue !== newValue) {
303
- this.setAttribute(attrName, newValue);
304
- }
305
- }
306
-
307
- /**
308
- * @private
309
- */
310
- _upgradeProperty(prop) {
311
- if (this.hasOwnProperty(prop)) { // eslint-disable-line
312
- const value = this[prop];
313
- delete this[prop];
314
- this[prop] = value;
315
- }
316
- }
317
-
318
- /**
319
- * @private
320
- */
321
- _upgradeAllProperties() {
322
- const allProps = this.constructor.getMetadata().getPropertiesList();
323
- allProps.forEach(this._upgradeProperty, this);
324
- }
325
-
326
- /**
327
- * @private
328
- */
329
- _initializeState() {
330
- const defaultState = this.constructor._getDefaultState();
331
- this._state = Object.assign({}, defaultState);
332
- }
333
-
334
- /**
335
- * @private
336
- */
337
- _attachChildPropertyUpdated(child, propData) {
338
- const listenFor = propData.listenFor,
339
- childMetadata = child.constructor.getMetadata(),
340
- slotName = this.constructor._getSlotName(child), // all slotted children have the same configuration
341
- childProperties = childMetadata.getProperties();
342
-
343
- let observedProps = [],
344
- notObservedProps = [];
345
-
346
- if (!listenFor) {
347
- return;
348
- }
349
-
350
- if (Array.isArray(listenFor)) {
351
- observedProps = listenFor;
352
- } else {
353
- observedProps = Array.isArray(listenFor.props) ? listenFor.props : Object.keys(childProperties);
354
- notObservedProps = Array.isArray(listenFor.exclude) ? listenFor.exclude : [];
355
- }
356
-
357
- if (!this._monitoredChildProps.has(slotName)) {
358
- this._monitoredChildProps.set(slotName, { observedProps, notObservedProps });
359
- }
360
-
361
- child.addEventListener("_propertyChange", this._invalidateParentOnPropertyUpdate);
362
- }
363
-
364
- /**
365
- * @private
366
- */
367
- _detachChildPropertyUpdated(child) {
368
- child.removeEventListener("_propertyChange", this._invalidateParentOnPropertyUpdate);
369
- }
370
-
371
- /**
372
- * @private
373
- */
374
- _propertyChange(name, value) {
375
- this._updateAttribute(name, value);
376
-
377
- const customEvent = new CustomEvent("_propertyChange", {
378
- detail: { name, newValue: value },
379
- composed: false,
380
- bubbles: true,
381
- });
382
-
383
- this.dispatchEvent(customEvent);
384
- }
385
-
386
- /**
387
- * @private
388
- */
389
- _invalidateParentOnPropertyUpdate(prop) {
390
- // The web component to be invalidated
391
- const parentNode = this.parentNode;
392
- if (!parentNode) {
393
- return;
394
- }
395
-
396
- const slotName = parentNode.constructor._getSlotName(this);
397
- const propsMetadata = parentNode._monitoredChildProps.get(slotName);
398
-
399
- if (!propsMetadata) {
400
- return;
401
- }
402
- const { observedProps, notObservedProps } = propsMetadata;
403
-
404
- if (observedProps.includes(prop.detail.name) && !notObservedProps.includes(prop.detail.name)) {
405
- parentNode._invalidate("_parent_", this);
406
- }
407
- }
408
-
409
- /**
410
- * Asynchronously re-renders an already rendered web component
411
- * @private
412
- */
413
- _invalidate() {
414
- if (this._invalidated) {
415
- // console.log("already invalidated", this, ...arguments);
416
- return;
417
- }
418
-
419
- if (this.getDomRef() && !this._suppressInvalidation) {
420
- this._invalidated = true;
421
- // console.log("INVAL", this, ...arguments);
422
- RenderScheduler.renderDeferred(this);
423
- }
424
- }
425
-
426
- /**
427
- * Do not call this method directly, only intended to be called by RenderScheduler.js
428
- * @protected
429
- */
430
- _render() {
431
- // suppress invalidation to prevent state changes scheduling another rendering
432
- this._suppressInvalidation = true;
433
-
434
- if (typeof this.onBeforeRendering === "function") {
435
- this.onBeforeRendering();
436
- }
437
-
438
- // Intended for framework usage only. Currently ItemNavigation updates tab indexes after the component has updated its state but before the template is rendered
439
- if (this._onComponentStateFinalized) {
440
- this._onComponentStateFinalized();
441
- }
442
-
443
- // resume normal invalidation handling
444
- delete this._suppressInvalidation;
445
-
446
- // Update the shadow root with the render result
447
- // console.log(this.getDomRef() ? "RE-RENDER" : "FIRST RENDER", this);
448
- delete this._invalidated;
449
- this._updateShadowRoot();
450
-
451
- if (this.constructor._needsStaticArea()) {
452
- this.staticAreaItem._updateFragment(this);
453
- }
454
-
455
- // Safari requires that children get the slot attribute only after the slot tags have been rendered in the shadow DOM
456
- this._assignIndividualSlotsToChildren();
457
-
458
- // Call the onAfterRendering hook
459
- if (typeof this.onAfterRendering === "function") {
460
- this.onAfterRendering();
461
- }
462
- }
463
-
464
- /**
465
- * @private
466
- */
467
- _updateShadowRoot() {
468
- let styleToPrepend;
469
- const renderResult = this.constructor.template(this);
470
-
471
- if (!document.adoptedStyleSheets && !window.ShadyDOM) {
472
- styleToPrepend = getEffectiveStyle(this.constructor);
473
- }
474
- this.constructor.render(renderResult, this.shadowRoot, styleToPrepend, { eventContext: this });
475
- }
476
-
477
- /**
478
- * @private
479
- */
480
- _assignIndividualSlotsToChildren() {
481
- const domChildren = Array.from(this.children);
482
-
483
- domChildren.forEach(child => {
484
- if (child._individualSlot) {
485
- child.setAttribute("slot", child._individualSlot);
486
- }
487
- });
488
- }
489
-
490
- /**
491
- * @private
492
- */
493
- _waitForDomRef() {
494
- return this._domRefReadyPromise;
495
- }
496
-
497
- /**
498
- * Returns the DOM Element inside the Shadow Root that corresponds to the opening tag in the UI5 Web Component's template
499
- * Use this method instead of "this.shadowRoot" to read the Shadow DOM, if ever necessary
500
- * @public
501
- */
502
- getDomRef() {
503
- if (!this.shadowRoot || this.shadowRoot.children.length === 0) {
504
- return;
505
- }
506
-
507
- return this.shadowRoot.children.length === 1
508
- ? this.shadowRoot.children[0] : this.shadowRoot.children[1];
509
- }
510
-
511
- /**
512
- * Returns the DOM Element marked with "data-sap-focus-ref" inside the template.
513
- * This is the element that will receive the focus by default.
514
- * @public
515
- */
516
- getFocusDomRef() {
517
- const domRef = this.getDomRef();
518
- if (domRef) {
519
- const focusRef = domRef.querySelector("[data-sap-focus-ref]");
520
- return focusRef || domRef;
521
- }
522
- }
523
-
524
- /**
525
- * Set the focus to the element, returned by "getFocusDomRef()" (marked by "data-sap-focus-ref")
526
- * @public
527
- */
528
- async focus() {
529
- await this._waitForDomRef();
530
-
531
- const focusDomRef = this.getFocusDomRef();
532
-
533
- if (focusDomRef && typeof focusDomRef.focus === "function") {
534
- focusDomRef.focus();
535
- }
536
- }
537
-
538
- /**
539
- *
540
- * @public
541
- * @param name - name of the event
542
- * @param data - additional data for the event
543
- * @param cancelable - true, if the user can call preventDefault on the event object
544
- * @returns {boolean} false, if the event was cancelled (preventDefault called), true otherwise
545
- */
546
- fireEvent(name, data, cancelable) {
547
- let compatEventResult = true; // Initialized to true, because if the event is not fired at all, it should be considered "not-prevented"
548
-
549
- const noConflictEvent = new CustomEvent(`ui5-${name}`, {
550
- detail: data,
551
- composed: false,
552
- bubbles: true,
553
- cancelable,
554
- });
555
-
556
- // This will be false if the compat event is prevented
557
- compatEventResult = this.dispatchEvent(noConflictEvent);
558
-
559
- if (skipOriginalEvent(name)) {
560
- return compatEventResult;
561
- }
562
-
563
- const customEvent = new CustomEvent(name, {
564
- detail: data,
565
- composed: false,
566
- bubbles: true,
567
- cancelable,
568
- });
569
-
570
- // This will be false if the normal event is prevented
571
- const normalEventResult = this.dispatchEvent(customEvent);
572
-
573
- // Return false if any of the two events was prevented (its result was false).
574
- return normalEventResult && compatEventResult;
575
- }
576
-
577
- /**
578
- * Returns the actual children, associated with a slot.
579
- * Useful when there are transitive slots in nested component scenarios and you don't want to get a list of the slots, but rather of their content.
580
- * @public
581
- */
582
- getSlottedNodes(slotName) {
583
- const reducer = (acc, curr) => {
584
- if (curr.localName !== "slot") {
585
- return acc.concat([curr]);
586
- }
587
- return acc.concat(curr.assignedNodes({ flatten: true }).filter(item => item instanceof HTMLElement));
588
- };
589
-
590
- return this[slotName].reduce(reducer, []);
591
- }
592
-
593
- /**
594
- * Used to duck-type UI5 elements without using instanceof
595
- * @returns {boolean}
596
- * @public
597
- */
598
- get isUI5Element() {
599
- return true;
600
- }
601
-
602
- /**
603
- * Do not override this method in derivatives of UI5Element, use metadata properties instead
604
- * @private
605
- */
606
- static get observedAttributes() {
607
- return this.getMetadata().getAttributesList();
608
- }
609
-
610
- /**
611
- * Used to generate the next auto-increment id for the current class
612
- * @returns {string}
613
- * @private
614
- */
615
- static _nextID() {
616
- const className = kebabToCamelCase(this.getMetadata().getTag());
617
- const lastNumber = IDMap.get(className);
618
- const nextNumber = lastNumber !== undefined ? lastNumber + 1 : 1;
619
- IDMap.set(className, nextNumber);
620
- return `__${className}${nextNumber}`;
621
- }
622
-
623
- /**
624
- * @private
625
- */
626
- static _getSlotName(child) {
627
- // Text nodes can only go to the default slot
628
- if (!(child instanceof HTMLElement)) {
629
- return "default";
630
- }
631
-
632
- // Discover the slot based on the real slot name (f.e. footer => footer, or content-32 => content)
633
- const slot = child.getAttribute("slot");
634
- if (slot) {
635
- const match = slot.match(/^(.+?)-\d+$/);
636
- return match ? match[1] : slot;
637
- }
638
-
639
- // Use default slot as a fallback
640
- return "default";
641
- }
642
-
643
- /**
644
- * @private
645
- */
646
- static _needsShadowDOM() {
647
- return !!this.template;
648
- }
649
-
650
- /**
651
- * @private
652
- */
653
- static _needsStaticArea() {
654
- return typeof this.staticAreaTemplate === "function";
655
- }
656
-
657
- /**
658
- * @public
659
- */
660
- getStaticAreaItemDomRef() {
661
- return this.staticAreaItem.getDomRef();
662
- }
663
-
664
- /**
665
- * @private
666
- */
667
- static _getDefaultState() {
668
- if (this._defaultState) {
669
- return this._defaultState;
670
- }
671
-
672
- const MetadataClass = this.getMetadata();
673
- const defaultState = {};
674
-
675
- // Initialize properties
676
- const props = MetadataClass.getProperties();
677
- for (const propName in props) { // eslint-disable-line
678
- const propType = props[propName].type;
679
- const propDefaultValue = props[propName].defaultValue;
680
-
681
- if (propType === Boolean) {
682
- defaultState[propName] = false;
683
-
684
- if (propDefaultValue !== undefined) {
685
- console.warn("The 'defaultValue' metadata key is ignored for all booleans properties, they would be initialized with 'false' by default"); // eslint-disable-line
686
- }
687
- } else if (props[propName].multiple) {
688
- defaultState[propName] = [];
689
- } else if (propType === Object) {
690
- defaultState[propName] = "defaultValue" in props[propName] ? props[propName].defaultValue : {};
691
- } else if (propType === String) {
692
- defaultState[propName] = "defaultValue" in props[propName] ? props[propName].defaultValue : "";
693
- } else {
694
- defaultState[propName] = propDefaultValue;
695
- }
696
- }
697
-
698
- // Initialize slots
699
- const slots = MetadataClass.getSlots();
700
- for (const [slotName, slotData] of Object.entries(slots)) { // eslint-disable-line
701
- const propertyName = slotData.propertyName || slotName;
702
- defaultState[propertyName] = [];
703
- }
704
-
705
- this._defaultState = defaultState;
706
- return defaultState;
707
- }
708
-
709
- /**
710
- * @private
711
- */
712
- static _generateAccessors() {
713
- const proto = this.prototype;
714
-
715
- // Properties
716
- const properties = this.getMetadata().getProperties();
717
- for (const [prop, propData] of Object.entries(properties)) { // eslint-disable-line
718
- if (!isValidPropertyName(prop)) {
719
- throw new Error(`"${prop}" is not a valid property name. Use a name that does not collide with DOM APIs`);
720
- }
721
-
722
- if (propData.type === "boolean" && propData.defaultValue) {
723
- throw new Error(`Cannot set a default value for property "${prop}". All booleans are false by default.`);
724
- }
725
-
726
- Object.defineProperty(proto, prop, {
727
- get() {
728
- if (this._state[prop] !== undefined) {
729
- return this._state[prop];
730
- }
731
-
732
- const propDefaultValue = propData.defaultValue;
733
-
734
- if (propData.type === Boolean) {
735
- return false;
736
- } else if (propData.type === String) { // eslint-disable-line
737
- return propDefaultValue;
738
- } else if (propData.multiple) { // eslint-disable-line
739
- return [];
740
- } else {
741
- return propDefaultValue;
742
- }
743
- },
744
- set(value) {
745
- value = this.constructor.getMetadata().constructor.validatePropertyValue(value, propData);
746
-
747
- const oldState = this._state[prop];
748
-
749
- if (oldState !== value) {
750
- this._state[prop] = value;
751
- this._invalidate(prop, value);
752
- this._propertyChange(prop, value);
753
- }
754
- },
755
- });
756
- }
757
-
758
- // Slots
759
- const slots = this.getMetadata().getSlots();
760
- for (const [slotName, slotData] of Object.entries(slots)) { // eslint-disable-line
761
- if (!isValidPropertyName(slotName)) {
762
- throw new Error(`"${slotName}" is not a valid property name. Use a name that does not collide with DOM APIs`);
763
- }
764
-
765
- const propertyName = slotData.propertyName || slotName;
766
- Object.defineProperty(proto, propertyName, {
767
- get() {
768
- if (this._state[propertyName] !== undefined) {
769
- return this._state[propertyName];
770
- }
771
- return [];
772
- },
773
- set() {
774
- throw new Error("Cannot set slots directly, use the DOM APIs");
775
- },
776
- });
777
- }
778
- }
779
-
780
- /**
781
- * Returns the metadata object for this UI5 Web Component Class
782
- * @protected
783
- */
784
- static get metadata() {
785
- return metadata;
786
- }
787
-
788
- /**
789
- * Returns the CSS for this UI5 Web Component Class
790
- * @protected
791
- */
792
- static get styles() {
793
- return "";
794
- }
795
-
796
- /**
797
- * Registers a UI5 Web Component in the browser window object
798
- * @public
799
- * @returns {Promise<UI5Element>}
800
- */
801
- static async define() {
802
- await boot();
803
- const tag = this.getMetadata().getTag();
804
-
805
- const definedLocally = DefinitionsSet.has(tag);
806
- const definedGlobally = customElements.get(tag);
807
-
808
- if (definedGlobally && !definedLocally) {
809
- console.warn(`Skipping definition of tag ${tag}, because it was already defined by another instance of ui5-webcomponents.`); // eslint-disable-line
810
- } else if (!definedGlobally) {
811
- this._generateAccessors();
812
- DefinitionsSet.add(tag);
813
- window.customElements.define(tag, this);
814
- }
815
- return this;
816
- }
817
-
818
- /**
819
- * Returns an instance of UI5ElementMetadata.js representing this UI5 Web Component's full metadata (its and its parents')
820
- * Note: not to be confused with the "get metadata()" method, which returns an object for this class's metadata only
821
- * @public
822
- * @returns {UI5ElementMetadata}
823
- */
824
- static getMetadata() {
825
- if (this.hasOwnProperty("_metadata")) { // eslint-disable-line
826
- return this._metadata;
827
- }
828
-
829
- const metadataObjects = [this.metadata];
830
- let klass = this; // eslint-disable-line
831
- while (klass !== UI5Element) {
832
- klass = Object.getPrototypeOf(klass);
833
- metadataObjects.unshift(klass.metadata);
834
- }
835
- const mergedMetadata = merge({}, ...metadataObjects);
836
-
837
- this._metadata = new UI5ElementMetadata(mergedMetadata);
838
- return this._metadata;
839
- }
840
- }
841
-
842
- export default UI5Element;