@ui5/webcomponents-base 0.0.0-96e98c995 → 0.0.0-97c4a1259

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 (439) hide show
  1. package/.eslintignore +5 -4
  2. package/.eslintrc.cjs +3 -0
  3. package/.npsrc.json +3 -0
  4. package/CHANGELOG.md +404 -0
  5. package/README.md +4 -0
  6. package/bundle.esm.js +8 -1
  7. package/config/wdio.conf.cjs +400 -0
  8. package/dist/AssetRegistry.js.map +1 -1
  9. package/dist/Boot.d.ts +4 -3
  10. package/dist/Boot.js +32 -5
  11. package/dist/Boot.js.map +1 -1
  12. package/dist/CSP.js.map +1 -1
  13. package/dist/CustomElementsRegistry.js.map +1 -1
  14. package/dist/CustomElementsScope.d.ts +2 -2
  15. package/dist/CustomElementsScope.js +2 -2
  16. package/dist/CustomElementsScope.js.map +1 -1
  17. package/dist/CustomElementsScopeUtils.d.ts +8 -1
  18. package/dist/CustomElementsScopeUtils.js +13 -1
  19. package/dist/CustomElementsScopeUtils.js.map +1 -1
  20. package/dist/DOMObserver.js.map +1 -1
  21. package/dist/Device.js +109 -34
  22. package/dist/Device.js.map +1 -1
  23. package/dist/EventProvider.js +1 -1
  24. package/dist/EventProvider.js.map +1 -1
  25. package/dist/FeaturesRegistry.js.map +1 -1
  26. package/dist/FontFace.js +1 -1
  27. package/dist/FontFace.js.map +1 -1
  28. package/dist/IgnoreCustomElements.d.ts +27 -0
  29. package/dist/IgnoreCustomElements.js +39 -0
  30. package/dist/IgnoreCustomElements.js.map +1 -0
  31. package/dist/InitialConfiguration.d.ts +6 -1
  32. package/dist/InitialConfiguration.js +12 -3
  33. package/dist/InitialConfiguration.js.map +1 -1
  34. package/dist/Keys.d.ts +5 -1
  35. package/dist/Keys.js +6 -2
  36. package/dist/Keys.js.map +1 -1
  37. package/dist/ManagedStyles.js +5 -4
  38. package/dist/ManagedStyles.js.map +1 -1
  39. package/dist/MarkedEvents.js.map +1 -1
  40. package/dist/MediaRange.js.map +1 -1
  41. package/dist/PropertiesFileFormat.js.map +1 -1
  42. package/dist/Render.js.map +1 -1
  43. package/dist/RenderQueue.js.map +1 -1
  44. package/dist/Runtimes.js.map +1 -1
  45. package/dist/StaticArea.d.ts +3 -0
  46. package/dist/StaticArea.js +4 -3
  47. package/dist/StaticArea.js.map +1 -1
  48. package/dist/StaticAreaItem.d.ts +1 -0
  49. package/dist/StaticAreaItem.js +7 -4
  50. package/dist/StaticAreaItem.js.map +1 -1
  51. package/dist/SystemCSSVars.js.map +1 -1
  52. package/dist/Theming.js.map +1 -1
  53. package/dist/UI5Element.d.ts +22 -15
  54. package/dist/UI5Element.js +24 -26
  55. package/dist/UI5Element.js.map +1 -1
  56. package/dist/UI5ElementMetadata.js.map +1 -1
  57. package/dist/animations/AnimationQueue.js.map +1 -1
  58. package/dist/animations/animate.js.map +1 -1
  59. package/dist/animations/scroll.js.map +1 -1
  60. package/dist/animations/slideDown.js.map +1 -1
  61. package/dist/animations/slideUp.js.map +1 -1
  62. package/dist/api.json +1 -1
  63. package/dist/asset-registries/Icons.d.ts +22 -13
  64. package/dist/asset-registries/Icons.js +63 -31
  65. package/dist/asset-registries/Icons.js.map +1 -1
  66. package/dist/asset-registries/Illustrations.d.ts +2 -1
  67. package/dist/asset-registries/Illustrations.js +58 -19
  68. package/dist/asset-registries/Illustrations.js.map +1 -1
  69. package/dist/asset-registries/LocaleData.js.map +1 -1
  70. package/dist/asset-registries/Themes.d.ts +1 -0
  71. package/dist/asset-registries/Themes.js +2 -0
  72. package/dist/asset-registries/Themes.js.map +1 -1
  73. package/dist/asset-registries/i18n.js +9 -3
  74. package/dist/asset-registries/i18n.js.map +1 -1
  75. package/dist/asset-registries/util/IconCollectionsAlias.d.ts +30 -0
  76. package/dist/asset-registries/util/IconCollectionsAlias.js +37 -0
  77. package/dist/asset-registries/util/IconCollectionsAlias.js.map +1 -0
  78. package/dist/asset-registries/util/IconCollectionsByTheme.d.ts +20 -0
  79. package/dist/asset-registries/util/IconCollectionsByTheme.js +42 -0
  80. package/dist/asset-registries/util/IconCollectionsByTheme.js.map +1 -0
  81. package/dist/asset-registries/util/getIconCollectionByTheme.d.ts +13 -0
  82. package/dist/asset-registries/util/getIconCollectionByTheme.js +29 -0
  83. package/dist/asset-registries/util/getIconCollectionByTheme.js.map +1 -0
  84. package/dist/assets/Boot.21ef0c87.js +9 -0
  85. package/dist/assets/Boot.34b7cea0.css +1 -0
  86. package/dist/assets/bundle.esm.818699fc.js +50 -0
  87. package/dist/config/AnimationMode.d.ts +2 -2
  88. package/dist/config/AnimationMode.js +1 -1
  89. package/dist/config/AnimationMode.js.map +1 -1
  90. package/dist/config/CalendarType.js.map +1 -1
  91. package/dist/config/FormatSettings.d.ts +5 -1
  92. package/dist/config/FormatSettings.js +5 -1
  93. package/dist/config/FormatSettings.js.map +1 -1
  94. package/dist/config/Icons.d.ts +31 -21
  95. package/dist/config/Icons.js +28 -32
  96. package/dist/config/Icons.js.map +1 -1
  97. package/dist/config/Language.d.ts +10 -1
  98. package/dist/config/Language.js +13 -1
  99. package/dist/config/Language.js.map +1 -1
  100. package/dist/config/NoConflict.js +1 -0
  101. package/dist/config/NoConflict.js.map +1 -1
  102. package/dist/config/RTL.js +3 -0
  103. package/dist/config/RTL.js.map +1 -1
  104. package/dist/config/Theme.d.ts +15 -5
  105. package/dist/config/Theme.js +25 -6
  106. package/dist/config/Theme.js.map +1 -1
  107. package/dist/config/ThemeRoot.d.ts +29 -0
  108. package/dist/config/ThemeRoot.js +59 -0
  109. package/dist/config/ThemeRoot.js.map +1 -0
  110. package/dist/config/Timezone.d.ts +17 -0
  111. package/dist/config/Timezone.js +30 -0
  112. package/dist/config/Timezone.js.map +1 -0
  113. package/dist/connectToComponent.d.ts +9 -0
  114. package/dist/connectToComponent.js +57 -0
  115. package/dist/connectToComponent.js.map +1 -0
  116. package/dist/css/FontFace.css +34 -16
  117. package/dist/decorators/customElement.d.ts +17 -2
  118. package/dist/decorators/customElement.js +26 -5
  119. package/dist/decorators/customElement.js.map +1 -1
  120. package/dist/decorators/event.js +6 -6
  121. package/dist/decorators/event.js.map +1 -1
  122. package/dist/decorators/property.js +6 -6
  123. package/dist/decorators/property.js.map +1 -1
  124. package/dist/decorators/slot.js +9 -9
  125. package/dist/decorators/slot.js.map +1 -1
  126. package/dist/delegate/ItemNavigation.js +1 -1
  127. package/dist/delegate/ItemNavigation.js.map +1 -1
  128. package/dist/delegate/ResizeHandler.d.ts +2 -1
  129. package/dist/delegate/ResizeHandler.js +7 -3
  130. package/dist/delegate/ResizeHandler.js.map +1 -1
  131. package/dist/delegate/ScrollEnablement.js.map +1 -1
  132. package/dist/features/F6Navigation.d.ts +3 -0
  133. package/dist/features/F6Navigation.js +77 -38
  134. package/dist/features/F6Navigation.js.map +1 -1
  135. package/dist/features/LegacyDateFormats.d.ts +18 -0
  136. package/dist/features/LegacyDateFormats.js +20 -0
  137. package/dist/features/LegacyDateFormats.js.map +1 -0
  138. package/dist/features/OpenUI5Element.js.map +1 -1
  139. package/dist/features/OpenUI5Enablement.js.map +1 -1
  140. package/dist/features/OpenUI5Support.d.ts +16 -3
  141. package/dist/features/OpenUI5Support.js +90 -33
  142. package/dist/features/OpenUI5Support.js.map +1 -1
  143. package/dist/generated/AssetParameters.js +3 -1
  144. package/dist/generated/VersionInfo.js +3 -3
  145. package/dist/generated/css/BusyIndicator.css.d.ts +3 -0
  146. package/dist/generated/css/BusyIndicator.css.js +7 -5
  147. package/dist/generated/css/BusyIndicator.css.js.map +1 -0
  148. package/dist/generated/css/FontFace.css.d.ts +3 -0
  149. package/dist/generated/css/FontFace.css.js +7 -5
  150. package/dist/generated/css/FontFace.css.js.map +1 -0
  151. package/dist/generated/css/OverrideFontFace.css.d.ts +3 -0
  152. package/dist/generated/css/OverrideFontFace.css.js +7 -5
  153. package/dist/generated/css/OverrideFontFace.css.js.map +1 -0
  154. package/dist/generated/css/SystemCSSVars.css.d.ts +3 -0
  155. package/dist/generated/css/SystemCSSVars.css.js +7 -5
  156. package/dist/generated/css/SystemCSSVars.css.js.map +1 -0
  157. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.d.ts +4 -0
  158. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +8 -10
  159. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js.map +1 -0
  160. package/dist/getSharedResource.d.ts +1 -1
  161. package/dist/getSharedResource.js +16 -2
  162. package/dist/getSharedResource.js.map +1 -1
  163. package/dist/global.d.ts +2 -6
  164. package/dist/i18nBundle.d.ts +1 -1
  165. package/dist/i18nBundle.js +2 -1
  166. package/dist/i18nBundle.js.map +1 -1
  167. package/dist/locale/Locale.js.map +1 -1
  168. package/dist/locale/RTLAwareRegistry.d.ts +1 -1
  169. package/dist/locale/RTLAwareRegistry.js.map +1 -1
  170. package/dist/locale/applyDirection.js.map +1 -1
  171. package/dist/locale/directionChange.js.map +1 -1
  172. package/dist/locale/getEffectiveDir.js.map +1 -1
  173. package/dist/locale/getLocale.js.map +1 -1
  174. package/dist/locale/languageChange.js.map +1 -1
  175. package/dist/locale/nextFallbackLocale.js.map +1 -1
  176. package/dist/locale/normalizeLocale.js.map +1 -1
  177. package/dist/renderer/LitRenderer.d.ts +3 -3
  178. package/dist/renderer/LitRenderer.js.map +1 -1
  179. package/dist/renderer/executeTemplate.js +1 -1
  180. package/dist/renderer/executeTemplate.js.map +1 -1
  181. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +112 -97
  182. package/dist/theming/CustomStyle.js +7 -5
  183. package/dist/theming/CustomStyle.js.map +1 -1
  184. package/dist/theming/ThemeLoaded.js.map +1 -1
  185. package/dist/theming/ThemeRegistered.d.ts +4 -0
  186. package/dist/theming/ThemeRegistered.js +11 -0
  187. package/dist/theming/ThemeRegistered.js.map +1 -0
  188. package/dist/theming/applyTheme.js +4 -3
  189. package/dist/theming/applyTheme.js.map +1 -1
  190. package/dist/theming/getConstructableStyle.js.map +1 -1
  191. package/dist/theming/getEffectiveLinksHrefs.js.map +1 -1
  192. package/dist/theming/getEffectiveStyle.js.map +1 -1
  193. package/dist/theming/getStylesString.d.ts +1 -1
  194. package/dist/theming/getStylesString.js.map +1 -1
  195. package/dist/theming/getThemeDesignerTheme.js.map +1 -1
  196. package/dist/theming/preloadLinks.js.map +1 -1
  197. package/dist/thirdparty/_merge.js.map +1 -1
  198. package/dist/thirdparty/isPlainObject.js.map +1 -1
  199. package/dist/thirdparty/merge.js.map +1 -1
  200. package/dist/types/AnimationMode.d.ts +1 -1
  201. package/dist/types/AnimationMode.js +1 -1
  202. package/dist/types/AnimationMode.js.map +1 -1
  203. package/dist/types/CSSColor.d.ts +0 -1
  204. package/dist/types/CSSColor.js +0 -1
  205. package/dist/types/CSSColor.js.map +1 -1
  206. package/dist/types/CalendarType.d.ts +1 -1
  207. package/dist/types/CalendarType.js +1 -1
  208. package/dist/types/CalendarType.js.map +1 -1
  209. package/dist/types/DOMReference.js.map +1 -1
  210. package/dist/types/DataType.js.map +1 -1
  211. package/dist/types/Float.d.ts +0 -1
  212. package/dist/types/Float.js +0 -1
  213. package/dist/types/Float.js.map +1 -1
  214. package/dist/types/Integer.d.ts +0 -1
  215. package/dist/types/Integer.js +0 -1
  216. package/dist/types/Integer.js.map +1 -1
  217. package/dist/types/InvisibleMessageMode.d.ts +1 -1
  218. package/dist/types/InvisibleMessageMode.js +1 -1
  219. package/dist/types/InvisibleMessageMode.js.map +1 -1
  220. package/dist/types/ItemNavigationBehavior.d.ts +1 -1
  221. package/dist/types/ItemNavigationBehavior.js +1 -1
  222. package/dist/types/ItemNavigationBehavior.js.map +1 -1
  223. package/dist/types/NavigationMode.d.ts +1 -1
  224. package/dist/types/NavigationMode.js +1 -1
  225. package/dist/types/NavigationMode.js.map +1 -1
  226. package/dist/types/ValueState.d.ts +1 -1
  227. package/dist/types/ValueState.js +1 -1
  228. package/dist/types/ValueState.js.map +1 -1
  229. package/dist/types.d.ts +1 -1
  230. package/dist/types.js.map +1 -1
  231. package/dist/updateShadowRoot.js +13 -5
  232. package/dist/updateShadowRoot.js.map +1 -1
  233. package/dist/util/AriaLabelHelper.d.ts +10 -1
  234. package/dist/util/AriaLabelHelper.js +135 -8
  235. package/dist/util/AriaLabelHelper.js.map +1 -1
  236. package/dist/util/Caret.js.map +1 -1
  237. package/dist/util/ColorConversion.js.map +1 -1
  238. package/dist/util/FetchHelper.js.map +1 -1
  239. package/dist/util/FocusableElements.js +12 -2
  240. package/dist/util/FocusableElements.js.map +1 -1
  241. package/dist/util/HTMLSanitizer.js.map +1 -1
  242. package/dist/util/InvisibleMessage.d.ts +1 -1
  243. package/dist/util/InvisibleMessage.js.map +1 -1
  244. package/dist/util/PopupUtils.js +1 -1
  245. package/dist/util/PopupUtils.js.map +1 -1
  246. package/dist/util/SlotsHelper.js.map +1 -1
  247. package/dist/util/StringHelper.js.map +1 -1
  248. package/dist/util/TabbableElements.js.map +1 -1
  249. package/dist/util/arraysAreEqual.js.map +1 -1
  250. package/dist/util/clamp.js.map +1 -1
  251. package/dist/util/createLinkInHead.js.map +1 -1
  252. package/dist/util/createStyleInHead.js.map +1 -1
  253. package/dist/util/debounce.js.map +1 -1
  254. package/dist/util/detectNavigatorLanguage.js.map +1 -1
  255. package/dist/util/escapeRegex.js.map +1 -1
  256. package/dist/util/formatMessage.js.map +1 -1
  257. package/dist/util/generateHighlightedMarkup.js.map +1 -1
  258. package/dist/util/getActiveElement.js.map +1 -1
  259. package/dist/util/getClassCopy.d.ts +10 -10
  260. package/dist/util/getClassCopy.js.map +1 -1
  261. package/dist/util/getDesigntimePropertyAsArray.js.map +1 -1
  262. package/dist/util/getEffectiveContentDensity.js.map +1 -1
  263. package/dist/util/getEffectiveScrollbarStyle.js.map +1 -1
  264. package/dist/util/getFastNavigationGroups.js.map +1 -1
  265. package/dist/util/getFileExtension.js.map +1 -1
  266. package/dist/util/getNormalizedTarget.js.map +1 -1
  267. package/dist/util/getSingletonElementInstance.d.ts +10 -1
  268. package/dist/util/getSingletonElementInstance.js +11 -2
  269. package/dist/util/getSingletonElementInstance.js.map +1 -1
  270. package/dist/util/isElementClickable.js.map +1 -1
  271. package/dist/util/isElementHidden.js.map +1 -1
  272. package/dist/util/isElementInView.js.map +1 -1
  273. package/dist/util/isElementTabbable.js.map +1 -1
  274. package/dist/util/isValidPropertyName.js.map +1 -1
  275. package/dist/util/whenDOMReady.js.map +1 -1
  276. package/dist/util/willShowContent.js.map +1 -1
  277. package/dist/validateThemeRoot.js +14 -13
  278. package/dist/validateThemeRoot.js.map +1 -1
  279. package/index.js +227 -1
  280. package/lib/generate-asset-parameters/index.js +4 -2
  281. package/lib/generate-styles/index.js +13 -8
  282. package/lib/generate-version-info/index.js +1 -1
  283. package/{package-scripts.js → package-scripts.cjs} +11 -7
  284. package/package.json +5 -4
  285. package/src/css/FontFace.css +34 -16
  286. package/tsconfig.json +1 -0
  287. package/config/wdio.conf.js +0 -1
  288. package/dist/assets/bundle.esm.ba5d36d4.js +0 -56
  289. package/dist/assets-meta/IconCollectionsAlias.d.ts +0 -17
  290. package/dist/assets-meta/IconCollectionsAlias.js +0 -18
  291. package/dist/assets-meta/IconCollectionsAlias.js.map +0 -1
  292. package/dist/config/ThemeRoots.d.ts +0 -4
  293. package/dist/config/ThemeRoots.js +0 -28
  294. package/dist/config/ThemeRoots.js.map +0 -1
  295. package/dist/decorators/fastNavigation.d.ts +0 -7
  296. package/dist/decorators/fastNavigation.js +0 -13
  297. package/dist/decorators/fastNavigation.js.map +0 -1
  298. package/dist/decorators/languageAware.d.ts +0 -7
  299. package/dist/decorators/languageAware.js +0 -13
  300. package/dist/decorators/languageAware.js.map +0 -1
  301. package/dist/decorators/themeAware.d.ts +0 -7
  302. package/dist/decorators/themeAware.js +0 -13
  303. package/dist/decorators/themeAware.js.map +0 -1
  304. package/src/AssetRegistry.ts +0 -11
  305. package/src/Boot.ts +0 -61
  306. package/src/CSP.ts +0 -66
  307. package/src/CustomElementsRegistry.ts +0 -98
  308. package/src/CustomElementsScope.ts +0 -33
  309. package/src/CustomElementsScopeUtils.ts +0 -115
  310. package/src/DOMObserver.ts +0 -28
  311. package/src/Device.ts +0 -124
  312. package/src/EventProvider.ts +0 -87
  313. package/src/FeaturesRegistry.ts +0 -14
  314. package/src/FontFace.ts +0 -31
  315. package/src/InitialConfiguration.ts +0 -207
  316. package/src/Keys.ts +0 -295
  317. package/src/ManagedStyles.ts +0 -92
  318. package/src/MarkedEvents.ts +0 -20
  319. package/src/MediaRange.ts +0 -110
  320. package/src/PropertiesFileFormat.ts +0 -95
  321. package/src/Render.ts +0 -180
  322. package/src/RenderQueue.ts +0 -71
  323. package/src/Runtimes.ts +0 -114
  324. package/src/StaticArea.ts +0 -3
  325. package/src/StaticAreaItem.ts +0 -113
  326. package/src/SystemCSSVars.ts +0 -10
  327. package/src/Theming.ts +0 -4
  328. package/src/UI5Element.ts +0 -1155
  329. package/src/UI5ElementMetadata.ts +0 -389
  330. package/src/animations/AnimationQueue.ts +0 -43
  331. package/src/animations/animate.ts +0 -64
  332. package/src/animations/scroll.ts +0 -21
  333. package/src/animations/slideDown.ts +0 -72
  334. package/src/animations/slideUp.ts +0 -67
  335. package/src/asset-registries/Icons.ts +0 -162
  336. package/src/asset-registries/Illustrations.ts +0 -75
  337. package/src/asset-registries/LocaleData.ts +0 -172
  338. package/src/asset-registries/Themes.ts +0 -67
  339. package/src/asset-registries/i18n.ts +0 -118
  340. package/src/assets-meta/IconCollectionsAlias.ts +0 -18
  341. package/src/config/AnimationMode.ts +0 -33
  342. package/src/config/CalendarType.ts +0 -23
  343. package/src/config/FormatSettings.ts +0 -21
  344. package/src/config/Icons.ts +0 -59
  345. package/src/config/Language.ts +0 -72
  346. package/src/config/NoConflict.ts +0 -67
  347. package/src/config/RTL.ts +0 -41
  348. package/src/config/Theme.ts +0 -64
  349. package/src/config/ThemeRoots.ts +0 -41
  350. package/src/decorators/customElement.ts +0 -17
  351. package/src/decorators/event.ts +0 -28
  352. package/src/decorators/fastNavigation.ts +0 -14
  353. package/src/decorators/languageAware.ts +0 -14
  354. package/src/decorators/property.ts +0 -30
  355. package/src/decorators/slot.ts +0 -49
  356. package/src/decorators/themeAware.ts +0 -14
  357. package/src/delegate/ItemNavigation.ts +0 -393
  358. package/src/delegate/ResizeHandler.ts +0 -95
  359. package/src/delegate/ScrollEnablement.ts +0 -224
  360. package/src/features/F6Navigation.ts +0 -141
  361. package/src/features/OpenUI5Element.ts +0 -11
  362. package/src/features/OpenUI5Enablement.ts +0 -117
  363. package/src/features/OpenUI5Support.ts +0 -148
  364. package/src/getSharedResource.ts +0 -30
  365. package/src/global.d.ts +0 -44
  366. package/src/i18nBundle.ts +0 -108
  367. package/src/locale/Locale.ts +0 -101
  368. package/src/locale/RTLAwareRegistry.ts +0 -16
  369. package/src/locale/applyDirection.ts +0 -18
  370. package/src/locale/directionChange.ts +0 -34
  371. package/src/locale/getEffectiveDir.ts +0 -28
  372. package/src/locale/getLocale.ts +0 -46
  373. package/src/locale/languageChange.ts +0 -24
  374. package/src/locale/nextFallbackLocale.ts +0 -28
  375. package/src/locale/normalizeLocale.ts +0 -56
  376. package/src/renderer/LitRenderer.ts +0 -60
  377. package/src/renderer/executeTemplate.ts +0 -40
  378. package/src/theming/CustomStyle.ts +0 -62
  379. package/src/theming/ThemeLoaded.ts +0 -24
  380. package/src/theming/applyTheme.ts +0 -90
  381. package/src/theming/getConstructableStyle.ts +0 -31
  382. package/src/theming/getEffectiveLinksHrefs.ts +0 -26
  383. package/src/theming/getEffectiveStyle.ts +0 -41
  384. package/src/theming/getStylesString.ts +0 -15
  385. package/src/theming/getThemeDesignerTheme.ts +0 -101
  386. package/src/theming/preloadLinks.ts +0 -24
  387. package/src/thirdparty/_merge.ts +0 -32
  388. package/src/thirdparty/isPlainObject.ts +0 -18
  389. package/src/thirdparty/merge.ts +0 -5
  390. package/src/types/AnimationMode.ts +0 -33
  391. package/src/types/CSSColor.ts +0 -20
  392. package/src/types/CalendarType.ts +0 -38
  393. package/src/types/DOMReference.ts +0 -28
  394. package/src/types/DataType.ts +0 -51
  395. package/src/types/Float.ts +0 -25
  396. package/src/types/Integer.ts +0 -25
  397. package/src/types/InvisibleMessageMode.ts +0 -27
  398. package/src/types/ItemNavigationBehavior.ts +0 -26
  399. package/src/types/NavigationMode.ts +0 -33
  400. package/src/types/ValueState.ts +0 -47
  401. package/src/types.ts +0 -30
  402. package/src/updateShadowRoot.ts +0 -37
  403. package/src/util/AriaLabelHelper.ts +0 -63
  404. package/src/util/Caret.ts +0 -28
  405. package/src/util/ColorConversion.ts +0 -399
  406. package/src/util/FetchHelper.ts +0 -31
  407. package/src/util/FocusableElements.ts +0 -82
  408. package/src/util/HTMLSanitizer.ts +0 -9
  409. package/src/util/InvisibleMessage.ts +0 -69
  410. package/src/util/PopupUtils.ts +0 -112
  411. package/src/util/SlotsHelper.ts +0 -39
  412. package/src/util/StringHelper.ts +0 -26
  413. package/src/util/TabbableElements.ts +0 -70
  414. package/src/util/arraysAreEqual.ts +0 -15
  415. package/src/util/clamp.ts +0 -12
  416. package/src/util/createLinkInHead.ts +0 -25
  417. package/src/util/createStyleInHead.ts +0 -20
  418. package/src/util/debounce.ts +0 -18
  419. package/src/util/detectNavigatorLanguage.ts +0 -13
  420. package/src/util/escapeRegex.ts +0 -11
  421. package/src/util/formatMessage.ts +0 -24
  422. package/src/util/generateHighlightedMarkup.ts +0 -43
  423. package/src/util/getActiveElement.ts +0 -11
  424. package/src/util/getClassCopy.ts +0 -12
  425. package/src/util/getDesigntimePropertyAsArray.ts +0 -4
  426. package/src/util/getEffectiveContentDensity.ts +0 -5
  427. package/src/util/getEffectiveScrollbarStyle.ts +0 -5
  428. package/src/util/getFastNavigationGroups.ts +0 -63
  429. package/src/util/getFileExtension.ts +0 -21
  430. package/src/util/getNormalizedTarget.ts +0 -16
  431. package/src/util/getSingletonElementInstance.ts +0 -13
  432. package/src/util/isElementClickable.ts +0 -19
  433. package/src/util/isElementHidden.ts +0 -9
  434. package/src/util/isElementInView.ts +0 -15
  435. package/src/util/isElementTabbable.ts +0 -37
  436. package/src/util/isValidPropertyName.ts +0 -29
  437. package/src/util/whenDOMReady.ts +0 -13
  438. package/src/util/willShowContent.ts +0 -7
  439. package/src/validateThemeRoot.ts +0 -58
@@ -1,26 +0,0 @@
1
- /**
2
- * Different behavior for ItemNavigation.
3
- *
4
- * @class
5
- * @enum {string}
6
- * @public
7
- * @author SAP SE
8
- * @alias sap.ui.webc.base.types.ItemNavigationBehavior
9
- */
10
- enum ItemNavigationBehavior {
11
- /**
12
- * Static behavior: navigations stops at the first or last item.
13
- * @public
14
- * @type {Static}
15
- */
16
- Static = "Static",
17
-
18
- /**
19
- * Cycling behavior: navigating past the last item continues with the first and vice versa.
20
- * @public
21
- * @type {Cyclic}
22
- */
23
- Cyclic = "Cyclic",
24
- }
25
-
26
- export default ItemNavigationBehavior;
@@ -1,33 +0,0 @@
1
- /**
2
- * Different navigation modes for ItemNavigation.
3
- *
4
- * @class
5
- * @enum {string}
6
- * @public
7
- * @author SAP SE
8
- * @alias sap.ui.webc.base.types.NavigationMode
9
- */
10
- enum NavigationMode {
11
- /**
12
- * @public
13
- * @type {Auto}
14
- */
15
- Auto = "Auto",
16
- /**
17
- * @public
18
- * @type {Vertical}
19
- */
20
- Vertical = "Vertical",
21
- /**
22
- * @public
23
- * @type {Horizontal}
24
- */
25
- Horizontal = "Horizontal",
26
- /**
27
- * @public
28
- * @type {Paging}
29
- */
30
- Paging = "Paging",
31
- }
32
-
33
- export default NavigationMode;
@@ -1,47 +0,0 @@
1
- /**
2
- * Different types of ValueStates.
3
- *
4
- * @class
5
- * @enum {string}
6
- * @public
7
- * @author SAP SE
8
- * @alias sap.ui.webc.base.types.ValueState
9
- */
10
- enum ValueState {
11
- /**
12
- *
13
- * @public
14
- * @type {None}
15
- */
16
- None = "None",
17
-
18
- /**
19
- *
20
- * @public
21
- * @type {Success}
22
- */
23
- Success = "Success",
24
-
25
- /**
26
- *
27
- * @public
28
- * @type {Warning}
29
- */
30
- Warning = "Warning",
31
-
32
- /**
33
- *
34
- * @public
35
- * @type {Error}
36
- */
37
- Error = "Error",
38
-
39
- /**
40
- *
41
- * @public
42
- * @type {Information}
43
- */
44
- Information = "Information",
45
- }
46
-
47
- export default ValueState;
package/src/types.ts DELETED
@@ -1,30 +0,0 @@
1
- type PromiseResolve = (value: void | PromiseLike<void>) => void;
2
- type Timeout = ReturnType<typeof setTimeout>;
3
- type Interval = ReturnType<typeof setInterval>;
4
-
5
- type StyleDataCSP = {
6
- content: string,
7
- packageName: string,
8
- fileName: string,
9
- };
10
-
11
- type StyleData = StyleDataCSP | string;
12
-
13
- type ComponentStylesData = Array<ComponentStylesData> | Array<StyleData> | StyleData;
14
-
15
- type ClassMapValue = Record<string, boolean>
16
-
17
- type ClassMap = { [x: string] : ClassMapValue | ClassMap };
18
-
19
- type PassiveEventListenerObject = EventListenerObject & { passive: boolean };
20
-
21
- export type {
22
- PromiseResolve,
23
- Timeout,
24
- Interval,
25
- StyleData,
26
- StyleDataCSP,
27
- ComponentStylesData,
28
- ClassMap,
29
- PassiveEventListenerObject,
30
- };
@@ -1,37 +0,0 @@
1
- import executeTemplate from "./renderer/executeTemplate.js";
2
- import getConstructableStyle from "./theming/getConstructableStyle.js";
3
- import getEffectiveStyle from "./theming/getEffectiveStyle.js";
4
- import getEffectiveLinksHrefs from "./theming/getEffectiveLinksHrefs.js";
5
- import { shouldUseLinks } from "./CSP.js";
6
- import type UI5Element from "./UI5Element.js";
7
-
8
- /**
9
- * Updates the shadow root of a UI5Element or its static area item
10
- * @param element
11
- * @param forStaticArea
12
- */
13
- const updateShadowRoot = (element: UI5Element, forStaticArea = false) => {
14
- let styleStrOrHrefsArr;
15
- const ctor = element.constructor as typeof UI5Element;
16
- const propertyName = forStaticArea ? "staticAreaTemplate" : "template";
17
- const template = ctor[propertyName];
18
- const shadowRoot = forStaticArea ? element.staticAreaItem!.shadowRoot : element.shadowRoot;
19
- const renderResult = executeTemplate(template!, element); // this is checked before calling updateShadowRoot
20
-
21
- if (!shadowRoot) {
22
- console.warn(`There is no shadow root to update`); // eslint-disable-line
23
- return;
24
- }
25
-
26
- if (shouldUseLinks()) {
27
- styleStrOrHrefsArr = getEffectiveLinksHrefs(ctor, forStaticArea);
28
- } else if (document.adoptedStyleSheets) { // Chrome
29
- shadowRoot.adoptedStyleSheets = getConstructableStyle(ctor, forStaticArea);
30
- } else { // FF, Safari
31
- styleStrOrHrefsArr = getEffectiveStyle(ctor, forStaticArea);
32
- }
33
-
34
- ctor.render(renderResult, shadowRoot, styleStrOrHrefsArr, forStaticArea, { host: element });
35
- };
36
-
37
- export default updateShadowRoot;
@@ -1,63 +0,0 @@
1
- type AccessibleElement = HTMLElement & {
2
- accessibleNameRef: string,
3
- accessibleName: string,
4
- }
5
-
6
- const getEffectiveAriaLabelText = (el: HTMLElement) => {
7
- const accessibleEl = el as AccessibleElement;
8
-
9
- if (!accessibleEl.accessibleNameRef) {
10
- if (accessibleEl.accessibleName) {
11
- return accessibleEl.accessibleName;
12
- }
13
-
14
- return undefined;
15
- }
16
-
17
- return _getAriaLabelledByTexts(el);
18
- };
19
-
20
- /**
21
- *
22
- * @param {HTMLElement} el Defines the HTMLElement, for which you need to get all related texts
23
- */
24
- const _getAriaLabelledByTexts = (el: HTMLElement) => {
25
- const ids = (el as AccessibleElement).accessibleNameRef.split(" ");
26
- const owner = el.getRootNode() as HTMLElement;
27
- let result = "";
28
-
29
- ids.forEach((elementId: string, index: number) => {
30
- const element = owner.querySelector(`[id='${elementId}']`);
31
- result += `${element && element.textContent ? element.textContent : ""}`;
32
-
33
- if (index < ids.length - 1) {
34
- result += " ";
35
- }
36
- });
37
-
38
- return result;
39
- };
40
-
41
- /**
42
- * @param {HTMLElement} el Defines the HTMLElement, for which you need to get all related "label for" texts
43
- */
44
- const getAssociatedLabelForTexts = (el: HTMLElement) => {
45
- const results: Array<string> = [];
46
- const labels = (el.getRootNode() as HTMLElement).querySelectorAll(`[ui5-label][for="${el.id}"],label[for="${el.id}"]`);
47
-
48
- labels.forEach((label: Node) => {
49
- const labelText = label.textContent;
50
- labelText && results.push(labelText);
51
- });
52
-
53
- if (results.length) {
54
- return results.join(" ");
55
- }
56
-
57
- return undefined;
58
- };
59
-
60
- export {
61
- getEffectiveAriaLabelText,
62
- getAssociatedLabelForTexts,
63
- };
package/src/util/Caret.ts DELETED
@@ -1,28 +0,0 @@
1
- /**
2
- * Returns the caret (cursor) position of the specified text field (field).
3
- * Return value range is 0-field.value.length.
4
- */
5
- const getCaretPosition = (field: HTMLInputElement): number | null => {
6
- // Initialize
7
- let caretPos: number | null = 0;
8
-
9
- if (field.selectionStart || field.selectionStart === 0) { // Firefox support
10
- caretPos = field.selectionDirection === "backward" ? field.selectionStart : field.selectionEnd;
11
- }
12
-
13
- return caretPos;
14
- };
15
-
16
- const setCaretPosition = (field: HTMLInputElement, caretPos: number | null) => {
17
- if (field.selectionStart) {
18
- field.focus();
19
- field.setSelectionRange(caretPos, caretPos);
20
- } else {
21
- field.focus();
22
- }
23
- };
24
-
25
- export {
26
- getCaretPosition,
27
- setCaretPosition,
28
- };
@@ -1,399 +0,0 @@
1
- /**
2
- *
3
- * @param {String} color Color in one of the following formats: RGBA or HEX
4
- */
5
-
6
- type ColorHSL = {
7
- h: number,
8
- s: number,
9
- l: number,
10
- };
11
-
12
- type ColorRGB = {
13
- r: number,
14
- b: number,
15
- g: number,
16
- };
17
-
18
- /**
19
- * Map of CSS colors to hex representation
20
- */
21
- enum CSSColors {
22
- aliceblue = "f0f8ff",
23
- antiquewhite = "faebd7",
24
- aqua = "00ffff",
25
- aquamarine = "7fffd4",
26
- azure = "f0ffff",
27
- beige = "f5f5dc",
28
- bisque = "ffe4c4",
29
- black = "000000",
30
- blanchedalmond = "ffebcd",
31
- blue = "0000ff",
32
- blueviolet = "8a2be2",
33
- brown = "a52a2a",
34
- burlywood = "deb887",
35
- cadetblue = "5f9ea0",
36
- chartreuse = "7fff00",
37
- chocolate = "d2691e",
38
- coral = "ff7f50",
39
- cornflowerblue = "6495ed",
40
- cornsilk = "fff8dc",
41
- crimson = "dc143c",
42
- cyan = "00ffff",
43
- darkblue = "00008b",
44
- darkcyan = "008b8b",
45
- darkgoldenrod = "b8860b",
46
- darkgray = "a9a9a9",
47
- darkgrey = "a9a9a9",
48
- darkgreen = "006400",
49
- darkkhaki = "bdb76b",
50
- darkmagenta = "8b008b",
51
- darkolivegreen = "556b2f",
52
- darkorange = "ff8c00",
53
- darkorchid = "9932cc",
54
- darkred = "8b0000",
55
- darksalmon = "e9967a",
56
- darkseagreen = "8fbc8f",
57
- darkslateblue = "483d8b",
58
- darkslategray = "2f4f4f",
59
- darkslategrey = "2f4f4f",
60
- darkturquoise = "00ced1",
61
- darkviolet = "9400d3",
62
- deeppink = "ff1493",
63
- deepskyblue = "00bfff",
64
- dimgray = "696969",
65
- dimgrey = "696969",
66
- dodgerblue = "1e90ff",
67
- firebrick = "b22222",
68
- floralwhite = "fffaf0",
69
- forestgreen = "228b22",
70
- fuchsia = "ff00ff",
71
- gainsboro = "dcdcdc",
72
- ghostwhite = "f8f8ff",
73
- gold = "ffd700",
74
- goldenrod = "daa520",
75
- gray = "808080",
76
- grey = "808080",
77
- green = "008000",
78
- greenyellow = "adff2f",
79
- honeydew = "f0fff0",
80
- hotpink = "ff69b4",
81
- indianred = "cd5c5c",
82
- indigo = "4b0082",
83
- ivory = "fffff0",
84
- khaki = "f0e68c",
85
- lavender = "e6e6fa",
86
- lavenderblush = "fff0f5",
87
- lawngreen = "7cfc00",
88
- lemonchiffon = "fffacd",
89
- lightblue = "add8e6",
90
- lightcoral = "f08080",
91
- lightcyan = "e0ffff",
92
- lightgoldenrodyellow = "fafad2",
93
- lightgray = "d3d3d3",
94
- lightgrey = "d3d3d3",
95
- lightgreen = "90ee90",
96
- lightpink = "ffb6c1",
97
- lightsalmon = "ffa07a",
98
- lightseagreen = "20b2aa",
99
- lightskyblue = "87cefa",
100
- lightslategray = "778899",
101
- lightslategrey = "778899",
102
- lightsteelblue = "b0c4de",
103
- lightyellow = "ffffe0",
104
- lime = "00ff00",
105
- limegreen = "32cd32",
106
- linen = "faf0e6",
107
- magenta = "ff00ff",
108
- maroon = "800000",
109
- mediumaquamarine = "66cdaa",
110
- mediumblue = "0000cd",
111
- mediumorchid = "ba55d3",
112
- mediumpurple = "9370db",
113
- mediumseagreen = "3cb371",
114
- mediumslateblue = "7b68ee",
115
- mediumspringgreen = "00fa9a",
116
- mediumturquoise = "48d1cc",
117
- mediumvioletred = "c71585",
118
- midnightblue = "191970",
119
- mintcream = "f5fffa",
120
- mistyrose = "ffe4e1",
121
- moccasin = "ffe4b5",
122
- navajowhite = "ffdead",
123
- navy = "000080",
124
- oldlace = "fdf5e6",
125
- olive = "808000",
126
- olivedrab = "6b8e23",
127
- orange = "ffa500",
128
- orangered = "ff4500",
129
- orchid = "da70d6",
130
- palegoldenrod = "eee8aa",
131
- palegreen = "98fb98",
132
- paleturquoise = "afeeee",
133
- palevioletred = "db7093",
134
- papayawhip = "ffefd5",
135
- peachpuff = "ffdab9",
136
- peru = "cd853f",
137
- pink = "ffc0cb",
138
- plum = "dda0dd",
139
- powderblue = "b0e0e6",
140
- purple = "800080",
141
- red = "ff0000",
142
- rosybrown = "bc8f8f",
143
- royalblue = "4169e1",
144
- saddlebrown = "8b4513",
145
- salmon = "fa8072",
146
- sandybrown = "f4a460",
147
- seagreen = "2e8b57",
148
- seashell = "fff5ee",
149
- sienna = "a0522d",
150
- silver = "c0c0c0",
151
- skyblue = "87ceeb",
152
- slateblue = "6a5acd",
153
- slategray = "708090",
154
- slategrey = "708090",
155
- snow = "fffafa",
156
- springgreen = "00ff7f",
157
- steelblue = "4682b4",
158
- tan = "d2b48c",
159
- teal = "008080",
160
- thistle = "d8bfd8",
161
- tomato = "ff6347",
162
- turquoise = "40e0d0",
163
- violet = "ee82ee",
164
- wheat = "f5deb3",
165
- white = "ffffff",
166
- whitesmoke = "f5f5f5",
167
- yellow = "ffff00",
168
- yellowgreen = "9acd32",
169
- transparent = "00000000",
170
- }
171
-
172
- const getRGBColor = (color: string): ColorRGB => {
173
- if (color.startsWith("rgba")) {
174
- return RGBAToRGB(color);
175
- }
176
-
177
- if (color.startsWith("rgb")) {
178
- return RGBStringToRGBObject(color);
179
- }
180
-
181
- // HEX
182
- if (color.indexOf("#") === 0) {
183
- // Shorthand Syntax
184
- if (color.length === 4) {
185
- color = `${color[1]}${color[1]}${color[2]}${color[2]}${color[3]}${color[3]}`;
186
- } else {
187
- color = color.slice(1, color.length);
188
- }
189
- }
190
-
191
- // Css Color
192
- if (color in CSSColors) {
193
- color = CSSColors[color as keyof typeof CSSColors];
194
- }
195
-
196
- return HEXToRGB(color);
197
- };
198
-
199
- /**
200
- * Return an object with the properties for each of the main colors(red, green, blue)
201
- * @param {String} color Receives a color in the following format: "rgba(0, 0, 0, 1)
202
- */
203
- const RGBAToRGB = (color: string): ColorRGB => {
204
- const openingBracketIndex = color.indexOf("("),
205
- commasIndexes = [];
206
-
207
- for (let i = 0; i < color.length; i++) {
208
- if (color[i] === ",") {
209
- commasIndexes.push(i);
210
- }
211
- }
212
-
213
- return {
214
- r: parseInt(color.slice(openingBracketIndex + 1, commasIndexes[0]).trim()),
215
- g: parseInt(color.slice(commasIndexes[0] + 1, commasIndexes[1]).trim()),
216
- b: parseInt(color.slice(commasIndexes[1] + 1, commasIndexes[2]).trim()),
217
- };
218
- };
219
-
220
- /**
221
- * Return an object with the properties for each of the main colors(red, green, blue)
222
- * @param {String} color Receives a color in the following format: "rgb(0, 0, 0)
223
- */
224
- const RGBStringToRGBObject = (color: string): ColorRGB => {
225
- const openingBracketIndex = color.indexOf("("),
226
- closingBraketIndex = color.indexOf(")"),
227
- commasIndexes = [];
228
-
229
- for (let i = 0; i < color.length; i++) {
230
- if (color[i] === ",") {
231
- commasIndexes.push(i);
232
- }
233
- }
234
-
235
- return {
236
- r: parseInt(color.slice(openingBracketIndex + 1, commasIndexes[0]).trim()),
237
- g: parseInt(color.slice(commasIndexes[0] + 1, commasIndexes[1]).trim()),
238
- b: parseInt(color.slice(commasIndexes[1] + 1, closingBraketIndex).trim()),
239
- };
240
- };
241
-
242
- const HSLToRGB = (color: ColorHSL): ColorRGB => {
243
- // Formula taken from https://www.rapidtables.com/convert/color/hsl-to-rgb.html
244
- const C = (1 - Math.abs((2 * color.l) - 1)) * color.s,
245
- X = C * (1 - Math.abs(((color.h / 60) % 2) - 1)),
246
- m = color.l - C / 2;
247
-
248
- let tempColor: ColorRGB;
249
- switch (Math.round(color.h / 60)) {
250
- // 0 ≤ H < 60
251
- case 0:
252
- tempColor = {
253
- r: C,
254
- g: X,
255
- b: 0,
256
- };
257
- break;
258
-
259
- // 60 ≤ H < 120
260
- case 1:
261
- tempColor = {
262
- r: X,
263
- g: C,
264
- b: 0,
265
- };
266
- break;
267
-
268
- // 120 ≤ H < 180
269
- case 2:
270
- tempColor = {
271
- r: 0,
272
- g: C,
273
- b: X,
274
- };
275
- break;
276
-
277
- // 180 ≤ H < 240
278
- case 3:
279
- tempColor = {
280
- r: 0,
281
- g: X,
282
- b: C,
283
- };
284
- break;
285
-
286
- // 240 ≤ H < 300
287
- case 4:
288
- tempColor = {
289
- r: X,
290
- g: 0,
291
- b: C,
292
- };
293
- break;
294
-
295
- // 300 ≤ H < 360
296
- default:
297
- tempColor = {
298
- r: C,
299
- g: 0,
300
- b: X,
301
- };
302
- }
303
-
304
- return {
305
- r: Math.floor((tempColor.r + m) * 255),
306
- g: Math.floor((tempColor.g + m) * 255),
307
- b: Math.floor((tempColor.b + m) * 255),
308
- };
309
- };
310
-
311
- const HEXToRGB = (hex: string): ColorRGB => {
312
- // Please make sure you pass a valid 6 digit hex color
313
- // In the implementation of this method we assume that the hex argument is a 6 digit valid hex color
314
-
315
- return {
316
- r: parseInt(hex.substr(0, 2), 16),
317
- g: parseInt(hex.substr(2, 2), 16),
318
- b: parseInt(hex.substr(4, 2), 16),
319
- };
320
- };
321
-
322
- /**
323
- * Returns the hex value of the color as string
324
- * @param {Object} color Receives an object with the properties for each of the main colors(r, g, b)
325
- */
326
- const RGBtoHEX = (color: ColorRGB): string => {
327
- const hexMap = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E"];
328
- let hexValue = "#";
329
-
330
- let divisionNumber = color.r / 16;
331
- let remainder = color.r % 16;
332
- hexValue += String(hexMap[Math.floor(divisionNumber)]);
333
- hexValue += String(hexMap[remainder]);
334
-
335
- divisionNumber = color.g / 16;
336
- remainder = color.g % 16;
337
- hexValue += String(hexMap[Math.floor(divisionNumber)]);
338
- hexValue += String(hexMap[remainder]);
339
-
340
- divisionNumber = color.b / 16;
341
- remainder = color.b % 16;
342
- hexValue += String(hexMap[Math.floor(divisionNumber)]);
343
- hexValue += String(hexMap[remainder]);
344
-
345
- return hexValue;
346
- };
347
-
348
- const RGBToHSL = (color: ColorRGB): ColorHSL => {
349
- const R = color.r / 255,
350
- G = color.g / 255,
351
- B = color.b / 255,
352
- max = Math.max(R, G, B),
353
- min = Math.min(R, G, B),
354
- delta = max - min;
355
-
356
- let h = 0,
357
- s;
358
-
359
- // Hue calculation
360
- if (delta === 0) {
361
- h = 0;
362
- } else if (max === R) {
363
- h = 60 * (((G - B) / delta) % 6);
364
- } else if (max === G) {
365
- h = 60 * (((B - R) / delta) + 2);
366
- } else if (max === B) {
367
- h = 60 * (((R - G) / delta) + 4);
368
- }
369
-
370
- // Lightness calculation
371
- const l = (max + min) / 2;
372
-
373
- // Saturation calculation
374
- if (delta === 0) {
375
- s = 0;
376
- } else {
377
- s = delta / (1 - Math.abs(2 * l - 1));
378
- }
379
-
380
- return {
381
- h,
382
- s,
383
- l,
384
- };
385
- };
386
-
387
- export {
388
- getRGBColor,
389
- HSLToRGB,
390
- HEXToRGB,
391
- RGBToHSL,
392
- RGBStringToRGBObject,
393
- RGBtoHEX,
394
- };
395
-
396
- export type {
397
- ColorHSL,
398
- ColorRGB,
399
- };
@@ -1,31 +0,0 @@
1
- const fetchPromises = new Map<string, Promise<Response>>();
2
- const jsonPromises = new Map<string, Promise<any>>();
3
- const textPromises = new Map<string, Promise<string>>();
4
-
5
- const fetchTextOnce = async (url: string) => {
6
- if (!fetchPromises.get(url)) {
7
- fetchPromises.set(url, fetch(url));
8
- }
9
- const response = await fetchPromises.get(url);
10
-
11
- if (response && !textPromises.get(url)) {
12
- textPromises.set(url, response.text());
13
- }
14
-
15
- return textPromises.get(url);
16
- };
17
-
18
- const fetchJsonOnce = async (url: string) => {
19
- if (!fetchPromises.get(url)) {
20
- fetchPromises.set(url, fetch(url));
21
- }
22
- const response = await fetchPromises.get(url);
23
-
24
- if (response && !jsonPromises.get(url)) {
25
- jsonPromises.set(url, response.json());
26
- }
27
-
28
- return jsonPromises.get(url);
29
- };
30
-
31
- export { fetchTextOnce, fetchJsonOnce };