@ui5/webcomponents-base 0.0.0-d0bcf47c7 → 0.0.0-d473b9686

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