@ui5/webcomponents-base 0.0.0-b0b835975 → 0.0.0-b3a4f8020

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 (936) hide show
  1. package/AGENTS.md +195 -0
  2. package/CHANGELOG.md +2134 -0
  3. package/CLAUDE.md +1 -0
  4. package/LICENSE.txt +201 -0
  5. package/README.md +7 -17
  6. package/cypress.config.js +3 -0
  7. package/dist/.tsbuildinfobuild +1 -0
  8. package/dist/AssetRegistry.d.ts +2 -2
  9. package/dist/AssetRegistry.js +2 -2
  10. package/dist/AssetRegistry.js.map +1 -1
  11. package/dist/Assets-fetch.d.ts +1 -0
  12. package/dist/Assets-fetch.js +3 -0
  13. package/dist/Assets-fetch.js.map +1 -0
  14. package/dist/Assets-node.d.ts +12 -0
  15. package/dist/Assets-node.js +14 -0
  16. package/dist/Assets-node.js.map +1 -0
  17. package/dist/Assets.d.ts +1 -0
  18. package/dist/Assets.js +3 -0
  19. package/dist/Assets.js.map +1 -0
  20. package/dist/Boot.d.ts +4 -2
  21. package/dist/Boot.js +50 -16
  22. package/dist/Boot.js.map +1 -1
  23. package/dist/CustomElementsRegistry.d.ts +2 -1
  24. package/dist/CustomElementsRegistry.js +5 -2
  25. package/dist/CustomElementsRegistry.js.map +1 -1
  26. package/dist/CustomElementsScope.d.ts +2 -2
  27. package/dist/CustomElementsScopeUtils.d.ts +13 -4
  28. package/dist/CustomElementsScopeUtils.js +20 -3
  29. package/dist/CustomElementsScopeUtils.js.map +1 -1
  30. package/dist/DOMObserver.js.map +1 -1
  31. package/dist/Device.d.ts +16 -2
  32. package/dist/Device.js +10 -14
  33. package/dist/Device.js.map +1 -1
  34. package/dist/DragAndDrop.d.ts +2 -0
  35. package/dist/DragAndDrop.js +5 -0
  36. package/dist/DragAndDrop.js.map +1 -0
  37. package/dist/EventProvider.js.map +1 -1
  38. package/dist/FontFace.css +36 -0
  39. package/dist/FontFace.js +6 -9
  40. package/dist/FontFace.js.map +1 -1
  41. package/dist/IgnoreCustomElements.d.ts +3 -5
  42. package/dist/IgnoreCustomElements.js +3 -5
  43. package/dist/IgnoreCustomElements.js.map +1 -1
  44. package/dist/InitialConfiguration.d.ts +9 -3
  45. package/dist/InitialConfiguration.js +33 -8
  46. package/dist/InitialConfiguration.js.map +1 -1
  47. package/dist/Keys.d.ts +7 -1
  48. package/dist/Keys.js +113 -106
  49. package/dist/Keys.js.map +1 -1
  50. package/dist/Location.d.ts +11 -0
  51. package/dist/Location.js +49 -0
  52. package/dist/Location.js.map +1 -0
  53. package/dist/ManagedStyles.d.ts +5 -6
  54. package/dist/ManagedStyles.js +45 -54
  55. package/dist/ManagedStyles.js.map +1 -1
  56. package/dist/MediaRange.d.ts +6 -12
  57. package/dist/MediaRange.js +21 -31
  58. package/dist/MediaRange.js.map +1 -1
  59. package/dist/PropertiesFileFormat.js.map +1 -1
  60. package/dist/Render.js.map +1 -1
  61. package/dist/RenderQueue.js.map +1 -1
  62. package/dist/Runtimes.js +11 -0
  63. package/dist/Runtimes.js.map +1 -1
  64. package/dist/ScrollbarStyles.d.ts +2 -0
  65. package/dist/ScrollbarStyles.js +9 -0
  66. package/dist/ScrollbarStyles.js.map +1 -0
  67. package/dist/SystemCSSVars.js +2 -4
  68. package/dist/SystemCSSVars.js.map +1 -1
  69. package/dist/UI5Element.d.ts +151 -80
  70. package/dist/UI5Element.js +448 -251
  71. package/dist/UI5Element.js.map +1 -1
  72. package/dist/UI5ElementMetadata.d.ts +36 -27
  73. package/dist/UI5ElementMetadata.js +27 -72
  74. package/dist/UI5ElementMetadata.js.map +1 -1
  75. package/dist/animations/AnimationQueue.js.map +1 -1
  76. package/dist/animations/animate.js.map +1 -1
  77. package/dist/animations/slideUp.js.map +1 -1
  78. package/dist/asset-registries/Icons.d.ts +43 -9
  79. package/dist/asset-registries/Icons.js +52 -9
  80. package/dist/asset-registries/Icons.js.map +1 -1
  81. package/dist/asset-registries/Illustrations.d.ts +134 -8
  82. package/dist/asset-registries/Illustrations.js +102 -29
  83. package/dist/asset-registries/Illustrations.js.map +1 -1
  84. package/dist/asset-registries/LocaleData.js +2 -1
  85. package/dist/asset-registries/LocaleData.js.map +1 -1
  86. package/dist/asset-registries/Themes.d.ts +10 -9
  87. package/dist/asset-registries/Themes.js +30 -15
  88. package/dist/asset-registries/Themes.js.map +1 -1
  89. package/dist/asset-registries/i18n.d.ts +2 -2
  90. package/dist/asset-registries/i18n.js +4 -3
  91. package/dist/asset-registries/i18n.js.map +1 -1
  92. package/dist/asset-registries/util/IconCollectionsAlias.js.map +1 -1
  93. package/dist/asset-registries/util/IconCollectionsByTheme.d.ts +1 -1
  94. package/dist/asset-registries/util/IconCollectionsByTheme.js +1 -1
  95. package/dist/asset-registries/util/IconCollectionsByTheme.js.map +1 -1
  96. package/dist/asset-registries/util/getIconCollectionByTheme.d.ts +3 -3
  97. package/dist/asset-registries/util/getIconCollectionByTheme.js +3 -3
  98. package/dist/asset-registries/util/getIconCollectionByTheme.js.map +1 -1
  99. package/dist/config/AnimationMode.js +6 -1
  100. package/dist/config/AnimationMode.js.map +1 -1
  101. package/dist/config/CalendarType.js +5 -0
  102. package/dist/config/CalendarType.js.map +1 -1
  103. package/dist/config/ConfigurationReset.d.ts +4 -0
  104. package/dist/config/ConfigurationReset.js +11 -0
  105. package/dist/config/ConfigurationReset.js.map +1 -0
  106. package/dist/config/Fonts.d.ts +16 -0
  107. package/dist/config/Fonts.js +30 -0
  108. package/dist/config/Fonts.js.map +1 -0
  109. package/dist/config/FormatSettings.js +4 -0
  110. package/dist/config/FormatSettings.js.map +1 -1
  111. package/dist/config/Icons.d.ts +8 -8
  112. package/dist/config/Icons.js +7 -7
  113. package/dist/config/Icons.js.map +1 -1
  114. package/dist/config/Language.d.ts +3 -2
  115. package/dist/config/Language.js +23 -4
  116. package/dist/config/Language.js.map +1 -1
  117. package/dist/config/NoConflict.js +4 -0
  118. package/dist/config/NoConflict.js.map +1 -1
  119. package/dist/config/Theme.d.ts +16 -3
  120. package/dist/config/Theme.js +35 -8
  121. package/dist/config/Theme.js.map +1 -1
  122. package/dist/config/ThemeRoot.d.ts +5 -5
  123. package/dist/config/ThemeRoot.js +9 -5
  124. package/dist/config/ThemeRoot.js.map +1 -1
  125. package/dist/config/Timezone.d.ts +1 -1
  126. package/dist/config/Timezone.js +5 -1
  127. package/dist/config/Timezone.js.map +1 -1
  128. package/dist/config/Tooltips.d.ts +19 -0
  129. package/dist/config/Tooltips.js +29 -0
  130. package/dist/config/Tooltips.js.map +1 -0
  131. package/dist/connectToComponent.js.map +1 -1
  132. package/dist/converters/DOMReference.d.ts +5 -0
  133. package/dist/converters/DOMReference.js +13 -0
  134. package/dist/converters/DOMReference.js.map +1 -0
  135. package/dist/css/MultipleDragGhost.css +17 -0
  136. package/dist/css/OpenUI5PopupStyles.css +10 -0
  137. package/dist/css/ScrollbarStyles.css +3 -0
  138. package/dist/css/SystemCSSVars.css +27 -10
  139. package/dist/custom-elements-internal.json +2920 -0
  140. package/dist/custom-elements.json +2617 -0
  141. package/dist/decorators/bound.d.ts +1 -0
  142. package/dist/decorators/bound.js +34 -0
  143. package/dist/decorators/bound.js.map +1 -0
  144. package/dist/decorators/customElement.d.ts +43 -3
  145. package/dist/decorators/customElement.js +14 -6
  146. package/dist/decorators/customElement.js.map +1 -1
  147. package/dist/decorators/event-strict.d.ts +15 -0
  148. package/dist/decorators/event-strict.js +26 -0
  149. package/dist/decorators/event-strict.js.map +1 -0
  150. package/dist/decorators/event.d.ts +8 -2
  151. package/dist/decorators/event.js +3 -0
  152. package/dist/decorators/event.js.map +1 -1
  153. package/dist/decorators/i18n.d.ts +17 -0
  154. package/dist/decorators/i18n.js +32 -0
  155. package/dist/decorators/i18n.js.map +1 -0
  156. package/dist/decorators/property.d.ts +1 -1
  157. package/dist/decorators/property.js +1 -1
  158. package/dist/decorators/property.js.map +1 -1
  159. package/dist/decorators/query.d.ts +25 -0
  160. package/dist/decorators/query.js +32 -0
  161. package/dist/decorators/query.js.map +1 -0
  162. package/dist/decorators/queryAll.d.ts +27 -0
  163. package/dist/decorators/queryAll.js +34 -0
  164. package/dist/decorators/queryAll.js.map +1 -0
  165. package/dist/decorators/slot-strict.d.ts +27 -0
  166. package/dist/decorators/slot-strict.js +54 -0
  167. package/dist/decorators/slot-strict.js.map +1 -0
  168. package/dist/decorators/slot.d.ts +19 -1
  169. package/dist/decorators/slot.js +18 -0
  170. package/dist/decorators/slot.js.map +1 -1
  171. package/dist/decorators.d.ts +9 -0
  172. package/dist/decorators.js +10 -0
  173. package/dist/decorators.js.map +1 -0
  174. package/dist/delegate/ItemNavigation.d.ts +9 -8
  175. package/dist/delegate/ItemNavigation.js +11 -12
  176. package/dist/delegate/ItemNavigation.js.map +1 -1
  177. package/dist/delegate/ResizeHandler.d.ts +4 -6
  178. package/dist/delegate/ResizeHandler.js +4 -6
  179. package/dist/delegate/ResizeHandler.js.map +1 -1
  180. package/dist/delegate/ScrollEnablement.js +2 -2
  181. package/dist/delegate/ScrollEnablement.js.map +1 -1
  182. package/dist/features/F6Navigation.d.ts +5 -3
  183. package/dist/features/F6Navigation.js +66 -19
  184. package/dist/features/F6Navigation.js.map +1 -1
  185. package/dist/features/InputElementsFormSupport.d.ts +15 -0
  186. package/dist/features/InputElementsFormSupport.js +43 -0
  187. package/dist/features/InputElementsFormSupport.js.map +1 -0
  188. package/dist/features/LegacyDateFormats.js.map +1 -1
  189. package/dist/features/OpenUI5Enablement.d.ts +3 -3
  190. package/dist/features/OpenUI5Enablement.js.map +1 -1
  191. package/dist/features/OpenUI5Support.d.ts +16 -7
  192. package/dist/features/OpenUI5Support.js +87 -57
  193. package/dist/features/OpenUI5Support.js.map +1 -1
  194. package/dist/features/insertOpenUI5PopupStyles.d.ts +2 -0
  195. package/dist/features/insertOpenUI5PopupStyles.js +9 -0
  196. package/dist/features/insertOpenUI5PopupStyles.js.map +1 -0
  197. package/dist/features/patchPatcher.d.ts +12 -0
  198. package/dist/features/patchPatcher.js +21 -0
  199. package/dist/features/patchPatcher.js.map +1 -0
  200. package/dist/features/patchPopup.d.ts +33 -0
  201. package/dist/features/patchPopup.js +163 -0
  202. package/dist/features/patchPopup.js.map +1 -0
  203. package/dist/generated/AssetParameters.d.ts +6 -0
  204. package/dist/generated/AssetParameters.js +3 -10
  205. package/dist/generated/AssetParameters.js.map +1 -0
  206. package/dist/generated/VersionInfo.d.ts +10 -0
  207. package/dist/generated/VersionInfo.js +9 -8
  208. package/dist/generated/VersionInfo.js.map +1 -0
  209. package/dist/generated/assets/i18n/messagebundle_en.json +1 -0
  210. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -0
  211. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -0
  212. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -0
  213. package/dist/generated/css/BusyIndicator.css.d.ts +2 -3
  214. package/dist/generated/css/BusyIndicator.css.js +1 -6
  215. package/dist/generated/css/BusyIndicator.css.js.map +1 -1
  216. package/dist/generated/css/FontFace.css.d.ts +2 -3
  217. package/dist/generated/css/FontFace.css.js +36 -6
  218. package/dist/generated/css/FontFace.css.js.map +1 -1
  219. package/dist/generated/css/MultipleDragGhost.css.d.ts +2 -0
  220. package/dist/generated/css/MultipleDragGhost.css.js +2 -0
  221. package/dist/generated/css/MultipleDragGhost.css.js.map +1 -0
  222. package/dist/generated/css/OpenUI5PopupStyles.css.d.ts +2 -0
  223. package/dist/generated/css/OpenUI5PopupStyles.css.js +2 -0
  224. package/dist/generated/css/OpenUI5PopupStyles.css.js.map +1 -0
  225. package/dist/generated/css/ScrollbarStyles.css.d.ts +2 -0
  226. package/dist/generated/css/ScrollbarStyles.css.js +2 -0
  227. package/dist/generated/css/ScrollbarStyles.css.js.map +1 -0
  228. package/dist/generated/css/SystemCSSVars.css.d.ts +2 -3
  229. package/dist/generated/css/SystemCSSVars.css.js +1 -6
  230. package/dist/generated/css/SystemCSSVars.css.js.map +1 -1
  231. package/dist/generated/i18n/i18n-defaults.d.ts +3 -0
  232. package/dist/generated/i18n/i18n-defaults.js +3 -0
  233. package/dist/generated/i18n/i18n-defaults.js.map +1 -0
  234. package/dist/generated/json-imports/i18n-fetch.d.ts +1 -0
  235. package/dist/generated/json-imports/i18n-fetch.js +2 -0
  236. package/dist/generated/json-imports/i18n-fetch.js.map +1 -0
  237. package/dist/generated/json-imports/i18n-node.d.ts +1 -0
  238. package/dist/generated/json-imports/i18n-node.js +2 -0
  239. package/dist/generated/json-imports/i18n-node.js.map +1 -0
  240. package/dist/generated/json-imports/i18n.d.ts +1 -0
  241. package/dist/generated/json-imports/i18n.js +2 -0
  242. package/dist/generated/json-imports/i18n.js.map +1 -0
  243. package/dist/getSharedResource.js.map +1 -1
  244. package/dist/i18nBundle.d.ts +1 -3
  245. package/dist/i18nBundle.js +1 -4
  246. package/dist/i18nBundle.js.map +1 -1
  247. package/dist/index.d.ts +50 -0
  248. package/dist/index.js +92 -0
  249. package/dist/index.js.map +1 -0
  250. package/dist/jsx-dev-runtime.d.ts +4 -0
  251. package/dist/jsx-dev-runtime.js +43 -0
  252. package/dist/jsx-dev-runtime.js.map +1 -0
  253. package/dist/jsx-runtime.d.ts +51 -0
  254. package/dist/jsx-runtime.js +27 -0
  255. package/dist/jsx-runtime.js.map +1 -0
  256. package/dist/jsx-utils.d.ts +3 -0
  257. package/dist/jsx-utils.js +48 -0
  258. package/dist/jsx-utils.js.map +1 -0
  259. package/dist/locale/Locale.js.map +1 -1
  260. package/dist/locale/applyDirection.d.ts +3 -2
  261. package/dist/locale/applyDirection.js +3 -2
  262. package/dist/locale/applyDirection.js.map +1 -1
  263. package/dist/locale/getEffectiveDir.d.ts +1 -1
  264. package/dist/locale/getEffectiveDir.js +3 -19
  265. package/dist/locale/getEffectiveDir.js.map +1 -1
  266. package/dist/locale/getLocale.js.map +1 -1
  267. package/dist/locale/nextFallbackLocale.js +6 -2
  268. package/dist/locale/nextFallbackLocale.js.map +1 -1
  269. package/dist/locale/normalizeLocale.js.map +1 -1
  270. package/dist/prod/AssetRegistry.js +2 -0
  271. package/dist/prod/AssetRegistry.js.map +7 -0
  272. package/dist/prod/Assets-fetch.js +2 -0
  273. package/dist/prod/Assets-fetch.js.map +7 -0
  274. package/dist/prod/Assets-node.js +2 -0
  275. package/dist/prod/Assets-node.js.map +7 -0
  276. package/dist/prod/Assets.js +2 -0
  277. package/dist/prod/Assets.js.map +7 -0
  278. package/dist/prod/Boot.js +2 -0
  279. package/dist/prod/Boot.js.map +7 -0
  280. package/dist/prod/CustomElementsRegistry.js +10 -0
  281. package/dist/prod/CustomElementsRegistry.js.map +7 -0
  282. package/dist/prod/CustomElementsScope.js +2 -0
  283. package/dist/prod/CustomElementsScope.js.map +7 -0
  284. package/dist/prod/CustomElementsScopeUtils.js +2 -0
  285. package/dist/prod/CustomElementsScopeUtils.js.map +7 -0
  286. package/dist/prod/DOMObserver.js +2 -0
  287. package/dist/prod/DOMObserver.js.map +7 -0
  288. package/dist/prod/Device.js +2 -0
  289. package/dist/prod/Device.js.map +7 -0
  290. package/dist/prod/DragAndDrop.js +2 -0
  291. package/dist/prod/DragAndDrop.js.map +7 -0
  292. package/dist/prod/EventProvider.js +2 -0
  293. package/dist/prod/EventProvider.js.map +7 -0
  294. package/dist/prod/FeaturesRegistry.js +2 -0
  295. package/dist/prod/FeaturesRegistry.js.map +7 -0
  296. package/dist/prod/FontFace.js +2 -0
  297. package/dist/prod/FontFace.js.map +7 -0
  298. package/dist/prod/IgnoreCustomElements.js +2 -0
  299. package/dist/prod/IgnoreCustomElements.js.map +7 -0
  300. package/dist/prod/InitialConfiguration.js +2 -0
  301. package/dist/prod/InitialConfiguration.js.map +7 -0
  302. package/dist/prod/Keys.js +2 -0
  303. package/dist/prod/Keys.js.map +7 -0
  304. package/dist/prod/Location.js +2 -0
  305. package/dist/prod/Location.js.map +7 -0
  306. package/dist/prod/ManagedStyles.js +2 -0
  307. package/dist/prod/ManagedStyles.js.map +7 -0
  308. package/dist/prod/MediaRange.js +2 -0
  309. package/dist/prod/MediaRange.js.map +7 -0
  310. package/dist/prod/PropertiesFileFormat.js +3 -0
  311. package/dist/prod/PropertiesFileFormat.js.map +7 -0
  312. package/dist/prod/Render.js +2 -0
  313. package/dist/prod/Render.js.map +7 -0
  314. package/dist/prod/RenderQueue.js +2 -0
  315. package/dist/prod/RenderQueue.js.map +7 -0
  316. package/dist/prod/Runtimes.js +2 -0
  317. package/dist/prod/Runtimes.js.map +7 -0
  318. package/dist/prod/ScrollbarStyles.js +2 -0
  319. package/dist/prod/ScrollbarStyles.js.map +7 -0
  320. package/dist/prod/SystemCSSVars.js +2 -0
  321. package/dist/prod/SystemCSSVars.js.map +7 -0
  322. package/dist/prod/Theming.js +2 -0
  323. package/dist/prod/Theming.js.map +7 -0
  324. package/dist/prod/UI5Element.js +2 -0
  325. package/dist/prod/UI5Element.js.map +7 -0
  326. package/dist/prod/UI5ElementMetadata.js +2 -0
  327. package/dist/prod/UI5ElementMetadata.js.map +7 -0
  328. package/dist/prod/animations/AnimationQueue.js +2 -0
  329. package/dist/prod/animations/AnimationQueue.js.map +7 -0
  330. package/dist/prod/animations/animate.js +2 -0
  331. package/dist/prod/animations/animate.js.map +7 -0
  332. package/dist/prod/animations/scroll.js +2 -0
  333. package/dist/prod/animations/scroll.js.map +7 -0
  334. package/dist/prod/animations/slideDown.js +2 -0
  335. package/dist/prod/animations/slideDown.js.map +7 -0
  336. package/dist/prod/animations/slideUp.js +2 -0
  337. package/dist/prod/animations/slideUp.js.map +7 -0
  338. package/dist/prod/asset-registries/Icons.js +2 -0
  339. package/dist/prod/asset-registries/Icons.js.map +7 -0
  340. package/dist/prod/asset-registries/Illustrations.js +2 -0
  341. package/dist/prod/asset-registries/Illustrations.js.map +7 -0
  342. package/dist/prod/asset-registries/LocaleData.js +2 -0
  343. package/dist/prod/asset-registries/LocaleData.js.map +7 -0
  344. package/dist/prod/asset-registries/Themes.js +2 -0
  345. package/dist/prod/asset-registries/Themes.js.map +7 -0
  346. package/dist/prod/asset-registries/i18n.js +2 -0
  347. package/dist/prod/asset-registries/i18n.js.map +7 -0
  348. package/dist/prod/asset-registries/util/IconCollectionsAlias.js +2 -0
  349. package/dist/prod/asset-registries/util/IconCollectionsAlias.js.map +7 -0
  350. package/dist/prod/asset-registries/util/IconCollectionsByTheme.js +2 -0
  351. package/dist/prod/asset-registries/util/IconCollectionsByTheme.js.map +7 -0
  352. package/dist/prod/asset-registries/util/getIconCollectionByTheme.js +2 -0
  353. package/dist/prod/asset-registries/util/getIconCollectionByTheme.js.map +7 -0
  354. package/dist/prod/config/AnimationMode.js +2 -0
  355. package/dist/prod/config/AnimationMode.js.map +7 -0
  356. package/dist/prod/config/CalendarType.js +2 -0
  357. package/dist/prod/config/CalendarType.js.map +7 -0
  358. package/dist/prod/config/ConfigurationReset.js +2 -0
  359. package/dist/prod/config/ConfigurationReset.js.map +7 -0
  360. package/dist/prod/config/Fonts.js +2 -0
  361. package/dist/prod/config/Fonts.js.map +7 -0
  362. package/dist/prod/config/FormatSettings.js +2 -0
  363. package/dist/prod/config/FormatSettings.js.map +7 -0
  364. package/dist/prod/config/Icons.js +2 -0
  365. package/dist/prod/config/Icons.js.map +7 -0
  366. package/dist/prod/config/Language.js +2 -0
  367. package/dist/prod/config/Language.js.map +7 -0
  368. package/dist/prod/config/NoConflict.js +2 -0
  369. package/dist/prod/config/NoConflict.js.map +7 -0
  370. package/dist/prod/config/Theme.js +2 -0
  371. package/dist/prod/config/Theme.js.map +7 -0
  372. package/dist/prod/config/ThemeRoot.js +2 -0
  373. package/dist/prod/config/ThemeRoot.js.map +7 -0
  374. package/dist/prod/config/Timezone.js +2 -0
  375. package/dist/prod/config/Timezone.js.map +7 -0
  376. package/dist/prod/config/Tooltips.js +2 -0
  377. package/dist/prod/config/Tooltips.js.map +7 -0
  378. package/dist/prod/connectToComponent.js +2 -0
  379. package/dist/prod/connectToComponent.js.map +7 -0
  380. package/dist/prod/converters/DOMReference.js +2 -0
  381. package/dist/prod/converters/DOMReference.js.map +7 -0
  382. package/dist/prod/decorators/bound.js +2 -0
  383. package/dist/prod/decorators/bound.js.map +7 -0
  384. package/dist/prod/decorators/customElement.js +2 -0
  385. package/dist/prod/decorators/customElement.js.map +7 -0
  386. package/dist/prod/decorators/event-strict.js +2 -0
  387. package/dist/prod/decorators/event-strict.js.map +7 -0
  388. package/dist/prod/decorators/event.js +2 -0
  389. package/dist/prod/decorators/event.js.map +7 -0
  390. package/dist/prod/decorators/i18n.js +2 -0
  391. package/dist/prod/decorators/i18n.js.map +7 -0
  392. package/dist/prod/decorators/property.js +2 -0
  393. package/dist/prod/decorators/property.js.map +7 -0
  394. package/dist/prod/decorators/query.js +2 -0
  395. package/dist/prod/decorators/query.js.map +7 -0
  396. package/dist/prod/decorators/queryAll.js +2 -0
  397. package/dist/prod/decorators/queryAll.js.map +7 -0
  398. package/dist/prod/decorators/slot-strict.js +2 -0
  399. package/dist/prod/decorators/slot-strict.js.map +7 -0
  400. package/dist/prod/decorators/slot.js +2 -0
  401. package/dist/prod/decorators/slot.js.map +7 -0
  402. package/dist/prod/decorators.js +2 -0
  403. package/dist/prod/decorators.js.map +7 -0
  404. package/dist/prod/delegate/ItemNavigation.js +2 -0
  405. package/dist/prod/delegate/ItemNavigation.js.map +7 -0
  406. package/dist/prod/delegate/ResizeHandler.js +2 -0
  407. package/dist/prod/delegate/ResizeHandler.js.map +7 -0
  408. package/dist/prod/delegate/ScrollEnablement.js +2 -0
  409. package/dist/prod/delegate/ScrollEnablement.js.map +7 -0
  410. package/dist/prod/features/F6Navigation.js +2 -0
  411. package/dist/prod/features/F6Navigation.js.map +7 -0
  412. package/dist/prod/features/InputElementsFormSupport.js +2 -0
  413. package/dist/prod/features/InputElementsFormSupport.js.map +7 -0
  414. package/dist/prod/features/LegacyDateFormats.js +2 -0
  415. package/dist/prod/features/LegacyDateFormats.js.map +7 -0
  416. package/dist/prod/features/OpenUI5Element.js +2 -0
  417. package/dist/prod/features/OpenUI5Element.js.map +7 -0
  418. package/dist/prod/features/OpenUI5Enablement.js +21 -0
  419. package/dist/prod/features/OpenUI5Enablement.js.map +7 -0
  420. package/dist/prod/features/OpenUI5Support.js +2 -0
  421. package/dist/prod/features/OpenUI5Support.js.map +7 -0
  422. package/dist/prod/features/insertOpenUI5PopupStyles.js +2 -0
  423. package/dist/prod/features/insertOpenUI5PopupStyles.js.map +7 -0
  424. package/dist/prod/features/patchPatcher.js +2 -0
  425. package/dist/prod/features/patchPatcher.js.map +7 -0
  426. package/dist/prod/features/patchPopup.js +2 -0
  427. package/dist/prod/features/patchPopup.js.map +7 -0
  428. package/dist/prod/generated/AssetParameters.js +2 -0
  429. package/dist/prod/generated/AssetParameters.js.map +7 -0
  430. package/dist/prod/generated/VersionInfo.js +2 -0
  431. package/dist/prod/generated/VersionInfo.js.map +7 -0
  432. package/dist/prod/generated/assets/i18n/messagebundle_en.json +1 -0
  433. package/dist/prod/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -0
  434. package/dist/prod/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -0
  435. package/dist/prod/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -0
  436. package/dist/prod/generated/css/BusyIndicator.css.js +2 -0
  437. package/dist/prod/generated/css/BusyIndicator.css.js.map +7 -0
  438. package/dist/prod/generated/css/FontFace.css.js +37 -0
  439. package/dist/prod/generated/css/FontFace.css.js.map +7 -0
  440. package/dist/prod/generated/css/MultipleDragGhost.css.js +2 -0
  441. package/dist/prod/generated/css/MultipleDragGhost.css.js.map +7 -0
  442. package/dist/prod/generated/css/OpenUI5PopupStyles.css.js +2 -0
  443. package/dist/prod/generated/css/OpenUI5PopupStyles.css.js.map +7 -0
  444. package/dist/prod/generated/css/ScrollbarStyles.css.js +2 -0
  445. package/dist/prod/generated/css/ScrollbarStyles.css.js.map +7 -0
  446. package/dist/prod/generated/css/SystemCSSVars.css.js +2 -0
  447. package/dist/prod/generated/css/SystemCSSVars.css.js.map +7 -0
  448. package/dist/prod/generated/i18n/i18n-defaults.js +2 -0
  449. package/dist/prod/generated/i18n/i18n-defaults.js.map +7 -0
  450. package/dist/prod/generated/json-imports/i18n-fetch.js +2 -0
  451. package/dist/prod/generated/json-imports/i18n-fetch.js.map +7 -0
  452. package/dist/prod/generated/json-imports/i18n-node.js +2 -0
  453. package/dist/prod/generated/json-imports/i18n-node.js.map +7 -0
  454. package/dist/prod/generated/json-imports/i18n.js +2 -0
  455. package/dist/prod/generated/json-imports/i18n.js.map +7 -0
  456. package/dist/prod/getSharedResource.js +2 -0
  457. package/dist/prod/getSharedResource.js.map +7 -0
  458. package/dist/prod/global.d.js +2 -0
  459. package/dist/prod/global.d.js.map +7 -0
  460. package/dist/prod/i18nBundle.js +2 -0
  461. package/dist/prod/i18nBundle.js.map +7 -0
  462. package/dist/prod/index.js +2 -0
  463. package/dist/prod/index.js.map +7 -0
  464. package/dist/prod/jsx-dev-runtime.js +2 -0
  465. package/dist/prod/jsx-dev-runtime.js.map +7 -0
  466. package/dist/prod/jsx-runtime.js +2 -0
  467. package/dist/prod/jsx-runtime.js.map +7 -0
  468. package/dist/prod/jsx-utils.js +2 -0
  469. package/dist/prod/jsx-utils.js.map +7 -0
  470. package/dist/prod/locale/Locale.js +2 -0
  471. package/dist/prod/locale/Locale.js.map +7 -0
  472. package/dist/prod/locale/RTLAwareRegistry.js +2 -0
  473. package/dist/prod/locale/RTLAwareRegistry.js.map +7 -0
  474. package/dist/prod/locale/applyDirection.js +2 -0
  475. package/dist/prod/locale/applyDirection.js.map +7 -0
  476. package/dist/prod/locale/directionChange.js +2 -0
  477. package/dist/prod/locale/directionChange.js.map +7 -0
  478. package/dist/prod/locale/getEffectiveDir.js +2 -0
  479. package/dist/prod/locale/getEffectiveDir.js.map +7 -0
  480. package/dist/prod/locale/getLocale.js +2 -0
  481. package/dist/prod/locale/getLocale.js.map +7 -0
  482. package/dist/prod/locale/languageChange.js +2 -0
  483. package/dist/prod/locale/languageChange.js.map +7 -0
  484. package/dist/prod/locale/nextFallbackLocale.js +2 -0
  485. package/dist/prod/locale/nextFallbackLocale.js.map +7 -0
  486. package/dist/prod/locale/normalizeLocale.js +2 -0
  487. package/dist/prod/locale/normalizeLocale.js.map +7 -0
  488. package/dist/prod/renderer/JsxRenderer.js +2 -0
  489. package/dist/prod/renderer/JsxRenderer.js.map +7 -0
  490. package/dist/prod/renderer/LitRenderer.js +2 -0
  491. package/dist/prod/renderer/LitRenderer.js.map +7 -0
  492. package/dist/prod/renderer/directives/style-map.js +6 -0
  493. package/dist/prod/renderer/directives/style-map.js.map +7 -0
  494. package/dist/prod/renderer/executeTemplate.js +2 -0
  495. package/dist/prod/renderer/executeTemplate.js.map +7 -0
  496. package/dist/prod/sap/base/Log.js +750 -0
  497. package/dist/prod/sap/base/assert.js +34 -0
  498. package/dist/prod/sap/base/config/MemoryConfigurationProvider.js +20 -0
  499. package/dist/prod/sap/base/security/URLListValidator.js +406 -0
  500. package/dist/prod/sap/base/security/encodeCSS.js +40 -0
  501. package/dist/prod/sap/base/security/encodeXML.js +53 -0
  502. package/dist/prod/sap/base/security/sanitizeHTML.js +38 -0
  503. package/dist/prod/sap/base/strings/toHex.js +33 -0
  504. package/dist/prod/sap/base/util/now.js +28 -0
  505. package/dist/prod/sap/base/util/uid.js +27 -0
  506. package/dist/prod/sap/ui/thirdparty/caja-html-sanitizer.js +3600 -0
  507. package/dist/prod/ssr-dom-shim.js +2 -0
  508. package/dist/prod/ssr-dom-shim.js.map +7 -0
  509. package/dist/prod/ssr-dom.js +2 -0
  510. package/dist/prod/ssr-dom.js.map +7 -0
  511. package/dist/prod/theming/CustomStyle.js +2 -0
  512. package/dist/prod/theming/CustomStyle.js.map +7 -0
  513. package/dist/prod/theming/ThemeLoaded.js +2 -0
  514. package/dist/prod/theming/ThemeLoaded.js.map +7 -0
  515. package/dist/prod/theming/ThemeRegistered.js +2 -0
  516. package/dist/prod/theming/ThemeRegistered.js.map +7 -0
  517. package/dist/prod/theming/applyTheme.js +2 -0
  518. package/dist/prod/theming/applyTheme.js.map +7 -0
  519. package/dist/prod/theming/componentStyles.js +3 -0
  520. package/dist/prod/theming/componentStyles.js.map +7 -0
  521. package/dist/prod/theming/getConstructableStyle.js +2 -0
  522. package/dist/prod/theming/getConstructableStyle.js.map +7 -0
  523. package/dist/prod/theming/getEffectiveStyle.js +2 -0
  524. package/dist/prod/theming/getEffectiveStyle.js.map +7 -0
  525. package/dist/prod/theming/getStylesString.js +2 -0
  526. package/dist/prod/theming/getStylesString.js.map +7 -0
  527. package/dist/prod/theming/getThemeDesignerTheme.js +2 -0
  528. package/dist/prod/theming/getThemeDesignerTheme.js.map +7 -0
  529. package/dist/prod/thirdparty/_merge.js +2 -0
  530. package/dist/prod/thirdparty/_merge.js.map +7 -0
  531. package/dist/prod/thirdparty/isPlainObject.js +2 -0
  532. package/dist/prod/thirdparty/isPlainObject.js.map +7 -0
  533. package/dist/prod/thirdparty/merge.js +2 -0
  534. package/dist/prod/thirdparty/merge.js.map +7 -0
  535. package/dist/prod/thirdparty/preact/jsx.d.js +2 -0
  536. package/dist/prod/thirdparty/preact/jsx.d.js.map +7 -0
  537. package/dist/prod/thirdparty/preact/jsxRuntime.module.d.js +2 -0
  538. package/dist/prod/thirdparty/preact/jsxRuntime.module.d.js.map +7 -0
  539. package/dist/prod/thirdparty/preact/jsxRuntime.module.js +1 -0
  540. package/dist/prod/thirdparty/preact/preact.module.d.js +2 -0
  541. package/dist/prod/thirdparty/preact/preact.module.d.js.map +7 -0
  542. package/dist/prod/thirdparty/preact/preact.module.js +1 -0
  543. package/dist/prod/types/AnimationMode.js +2 -0
  544. package/dist/prod/types/AnimationMode.js.map +7 -0
  545. package/dist/prod/types/CalendarType.js +2 -0
  546. package/dist/prod/types/CalendarType.js.map +7 -0
  547. package/dist/prod/types/InvisibleMessageMode.js +2 -0
  548. package/dist/prod/types/InvisibleMessageMode.js.map +7 -0
  549. package/dist/prod/types/ItemNavigationBehavior.js +2 -0
  550. package/dist/prod/types/ItemNavigationBehavior.js.map +7 -0
  551. package/dist/prod/types/MovePlacement.js +2 -0
  552. package/dist/prod/types/MovePlacement.js.map +7 -0
  553. package/dist/prod/types/NavigationMode.js +2 -0
  554. package/dist/prod/types/NavigationMode.js.map +7 -0
  555. package/dist/prod/types/Orientation.js +2 -0
  556. package/dist/prod/types/Orientation.js.map +7 -0
  557. package/dist/prod/types/SortOrder.js +2 -0
  558. package/dist/prod/types/SortOrder.js.map +7 -0
  559. package/dist/prod/types/ValueState.js +2 -0
  560. package/dist/prod/types/ValueState.js.map +7 -0
  561. package/dist/prod/types.js +2 -0
  562. package/dist/prod/types.js.map +7 -0
  563. package/dist/prod/updateShadowRoot.js +2 -0
  564. package/dist/prod/updateShadowRoot.js.map +7 -0
  565. package/dist/prod/util/AccessibilityTextsHelper.js +2 -0
  566. package/dist/prod/util/AccessibilityTextsHelper.js.map +7 -0
  567. package/dist/prod/util/Caret.js +2 -0
  568. package/dist/prod/util/Caret.js.map +7 -0
  569. package/dist/prod/util/ColorConversion.js +2 -0
  570. package/dist/prod/util/ColorConversion.js.map +7 -0
  571. package/dist/prod/util/FetchHelper.js +2 -0
  572. package/dist/prod/util/FetchHelper.js.map +7 -0
  573. package/dist/prod/util/FocusableElements.js +2 -0
  574. package/dist/prod/util/FocusableElements.js.map +7 -0
  575. package/dist/prod/util/HTMLSanitizer.js +2 -0
  576. package/dist/prod/util/HTMLSanitizer.js.map +7 -0
  577. package/dist/prod/util/InvisibleMessage.js +2 -0
  578. package/dist/prod/util/InvisibleMessage.js.map +7 -0
  579. package/dist/prod/util/PopupUtils.js +2 -0
  580. package/dist/prod/util/PopupUtils.js.map +7 -0
  581. package/dist/prod/util/SelectionAssistant.js +2 -0
  582. package/dist/prod/util/SelectionAssistant.js.map +7 -0
  583. package/dist/prod/util/SlotsHelper.js +2 -0
  584. package/dist/prod/util/SlotsHelper.js.map +7 -0
  585. package/dist/prod/util/StringHelper.js +2 -0
  586. package/dist/prod/util/StringHelper.js.map +7 -0
  587. package/dist/prod/util/TabbableElements.js +2 -0
  588. package/dist/prod/util/TabbableElements.js.map +7 -0
  589. package/dist/prod/util/arraysAreEqual.js +2 -0
  590. package/dist/prod/util/arraysAreEqual.js.map +7 -0
  591. package/dist/prod/util/clamp.js +2 -0
  592. package/dist/prod/util/clamp.js.map +7 -0
  593. package/dist/prod/util/createInstanceChecker.js +2 -0
  594. package/dist/prod/util/createInstanceChecker.js.map +7 -0
  595. package/dist/prod/util/createLinkInHead.js +2 -0
  596. package/dist/prod/util/createLinkInHead.js.map +7 -0
  597. package/dist/prod/util/createMultiInstanceChecker.js +2 -0
  598. package/dist/prod/util/createMultiInstanceChecker.js.map +7 -0
  599. package/dist/prod/util/debounce.js +2 -0
  600. package/dist/prod/util/debounce.js.map +7 -0
  601. package/dist/prod/util/detectNavigatorLanguage.js +2 -0
  602. package/dist/prod/util/detectNavigatorLanguage.js.map +7 -0
  603. package/dist/prod/util/dragAndDrop/DragRegistry.js +2 -0
  604. package/dist/prod/util/dragAndDrop/DragRegistry.js.map +7 -0
  605. package/dist/prod/util/dragAndDrop/findClosestPosition.js +2 -0
  606. package/dist/prod/util/dragAndDrop/findClosestPosition.js.map +7 -0
  607. package/dist/prod/util/dragAndDrop/handleDragOver.js +2 -0
  608. package/dist/prod/util/dragAndDrop/handleDragOver.js.map +7 -0
  609. package/dist/prod/util/dragAndDrop/handleDrop.js +2 -0
  610. package/dist/prod/util/dragAndDrop/handleDrop.js.map +7 -0
  611. package/dist/prod/util/dragAndDrop/longDragOverHandler.js +2 -0
  612. package/dist/prod/util/dragAndDrop/longDragOverHandler.js.map +7 -0
  613. package/dist/prod/util/escapeRegex.js +2 -0
  614. package/dist/prod/util/escapeRegex.js.map +7 -0
  615. package/dist/prod/util/fixSafariActiveState.js +2 -0
  616. package/dist/prod/util/fixSafariActiveState.js.map +7 -0
  617. package/dist/prod/util/formatMessage.js +2 -0
  618. package/dist/prod/util/formatMessage.js.map +7 -0
  619. package/dist/prod/util/generateHighlightedMarkup.js +2 -0
  620. package/dist/prod/util/generateHighlightedMarkup.js.map +7 -0
  621. package/dist/prod/util/getActiveElement.js +2 -0
  622. package/dist/prod/util/getActiveElement.js.map +7 -0
  623. package/dist/prod/util/getClassCopy.js +2 -0
  624. package/dist/prod/util/getClassCopy.js.map +7 -0
  625. package/dist/prod/util/getDesigntimePropertyAsArray.js +2 -0
  626. package/dist/prod/util/getDesigntimePropertyAsArray.js.map +7 -0
  627. package/dist/prod/util/getEffectiveContentDensity.js +2 -0
  628. package/dist/prod/util/getEffectiveContentDensity.js.map +7 -0
  629. package/dist/prod/util/getFastNavigationGroups.js +2 -0
  630. package/dist/prod/util/getFastNavigationGroups.js.map +7 -0
  631. package/dist/prod/util/getFileExtension.js +2 -0
  632. package/dist/prod/util/getFileExtension.js.map +7 -0
  633. package/dist/prod/util/getNormalizedTarget.js +2 -0
  634. package/dist/prod/util/getNormalizedTarget.js.map +7 -0
  635. package/dist/prod/util/getParentElement.js +2 -0
  636. package/dist/prod/util/getParentElement.js.map +7 -0
  637. package/dist/prod/util/getSingletonElementInstance.js +2 -0
  638. package/dist/prod/util/getSingletonElementInstance.js.map +7 -0
  639. package/dist/prod/util/hash2str.js +2 -0
  640. package/dist/prod/util/hash2str.js.map +7 -0
  641. package/dist/prod/util/isElementClickable.js +2 -0
  642. package/dist/prod/util/isElementClickable.js.map +7 -0
  643. package/dist/prod/util/isElementHidden.js +2 -0
  644. package/dist/prod/util/isElementHidden.js.map +7 -0
  645. package/dist/prod/util/isElementInView.js +2 -0
  646. package/dist/prod/util/isElementInView.js.map +7 -0
  647. package/dist/prod/util/isElementTabbable.js +2 -0
  648. package/dist/prod/util/isElementTabbable.js.map +7 -0
  649. package/dist/prod/util/isEventMarked.js +2 -0
  650. package/dist/prod/util/isEventMarked.js.map +7 -0
  651. package/dist/prod/util/isValidPropertyName.js +2 -0
  652. package/dist/prod/util/isValidPropertyName.js.map +7 -0
  653. package/dist/prod/util/throttle.js +2 -0
  654. package/dist/prod/util/throttle.js.map +7 -0
  655. package/dist/prod/util/toLowercaseEnumValue.js +2 -0
  656. package/dist/prod/util/toLowercaseEnumValue.js.map +7 -0
  657. package/dist/prod/util/valueStateNavigation.js +2 -0
  658. package/dist/prod/util/valueStateNavigation.js.map +7 -0
  659. package/dist/prod/util/whenDOMReady.js +2 -0
  660. package/dist/prod/util/whenDOMReady.js.map +7 -0
  661. package/dist/prod/util/willShowContent.js +2 -0
  662. package/dist/prod/util/willShowContent.js.map +7 -0
  663. package/dist/prod/validateThemeRoot.js +2 -0
  664. package/dist/prod/validateThemeRoot.js.map +7 -0
  665. package/dist/renderer/JsxRenderer.d.ts +3 -0
  666. package/dist/renderer/JsxRenderer.js +26 -0
  667. package/dist/renderer/JsxRenderer.js.map +1 -0
  668. package/dist/renderer/LitRenderer.d.ts +3 -3
  669. package/dist/renderer/LitRenderer.js +5 -10
  670. package/dist/renderer/LitRenderer.js.map +1 -1
  671. package/dist/renderer/directives/style-map.d.ts +13 -0
  672. package/dist/renderer/directives/style-map.js +59 -59
  673. package/dist/renderer/directives/style-map.js.map +1 -0
  674. package/dist/renderer/executeTemplate.d.ts +3 -4
  675. package/dist/renderer/executeTemplate.js +1 -19
  676. package/dist/renderer/executeTemplate.js.map +1 -1
  677. package/dist/sap/base/Log.js +698 -188
  678. package/dist/sap/base/assert.js +28 -1
  679. package/dist/sap/base/config/MemoryConfigurationProvider.js +20 -0
  680. package/dist/sap/base/security/URLListValidator.js +253 -6
  681. package/dist/sap/base/security/encodeCSS.js +34 -8
  682. package/dist/sap/base/security/encodeXML.js +47 -17
  683. package/dist/sap/base/security/sanitizeHTML.js +35 -13
  684. package/dist/sap/base/strings/toHex.js +27 -2
  685. package/dist/sap/base/util/now.js +24 -3
  686. package/dist/sap/base/util/uid.js +27 -0
  687. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +2 -2
  688. package/dist/ssr-dom-shim.d.ts +1 -0
  689. package/dist/ssr-dom-shim.js +63 -0
  690. package/dist/ssr-dom-shim.js.map +1 -0
  691. package/dist/ssr-dom.d.ts +1 -0
  692. package/dist/ssr-dom.js +3 -0
  693. package/dist/ssr-dom.js.map +1 -0
  694. package/dist/theming/CustomStyle.js.map +1 -1
  695. package/dist/theming/applyTheme.d.ts +2 -0
  696. package/dist/theming/applyTheme.js +24 -9
  697. package/dist/theming/applyTheme.js.map +1 -1
  698. package/dist/theming/componentStyles.d.ts +3 -0
  699. package/dist/theming/componentStyles.js +15 -0
  700. package/dist/theming/componentStyles.js.map +1 -0
  701. package/dist/theming/getConstructableStyle.d.ts +2 -2
  702. package/dist/theming/getConstructableStyle.js +3 -3
  703. package/dist/theming/getConstructableStyle.js.map +1 -1
  704. package/dist/theming/getEffectiveStyle.d.ts +1 -1
  705. package/dist/theming/getEffectiveStyle.js +5 -12
  706. package/dist/theming/getEffectiveStyle.js.map +1 -1
  707. package/dist/theming/getStylesString.js +2 -4
  708. package/dist/theming/getStylesString.js.map +1 -1
  709. package/dist/theming/getThemeDesignerTheme.js +2 -1
  710. package/dist/theming/getThemeDesignerTheme.js.map +1 -1
  711. package/dist/thirdparty/_merge.js.map +1 -1
  712. package/dist/thirdparty/isPlainObject.js.map +1 -1
  713. package/dist/thirdparty/preact/jsx.d.ts +2616 -0
  714. package/dist/thirdparty/preact/jsxRuntime.module.d.ts +62 -0
  715. package/dist/thirdparty/preact/jsxRuntime.module.js +1 -0
  716. package/dist/thirdparty/preact/preact.module.d.ts +398 -0
  717. package/dist/thirdparty/preact/preact.module.js +1 -0
  718. package/dist/types/AnimationMode.d.ts +0 -8
  719. package/dist/types/AnimationMode.js +0 -8
  720. package/dist/types/AnimationMode.js.map +1 -1
  721. package/dist/types/CalendarType.d.ts +0 -9
  722. package/dist/types/CalendarType.js +0 -9
  723. package/dist/types/CalendarType.js.map +1 -1
  724. package/dist/types/InvisibleMessageMode.d.ts +5 -10
  725. package/dist/types/InvisibleMessageMode.js +4 -11
  726. package/dist/types/InvisibleMessageMode.js.map +1 -1
  727. package/dist/types/ItemNavigationBehavior.d.ts +0 -6
  728. package/dist/types/ItemNavigationBehavior.js +0 -6
  729. package/dist/types/ItemNavigationBehavior.js.map +1 -1
  730. package/dist/types/MovePlacement.d.ts +20 -0
  731. package/dist/types/MovePlacement.js +22 -0
  732. package/dist/types/MovePlacement.js.map +1 -0
  733. package/dist/types/NavigationMode.d.ts +0 -8
  734. package/dist/types/NavigationMode.js +0 -8
  735. package/dist/types/NavigationMode.js.map +1 -1
  736. package/dist/types/Orientation.d.ts +16 -0
  737. package/dist/types/Orientation.js +18 -0
  738. package/dist/types/Orientation.js.map +1 -0
  739. package/dist/types/SortOrder.d.ts +24 -0
  740. package/dist/types/SortOrder.js +26 -0
  741. package/dist/types/SortOrder.js.map +1 -0
  742. package/dist/types/ValueState.d.ts +3 -17
  743. package/dist/types/ValueState.js +3 -17
  744. package/dist/types/ValueState.js.map +1 -1
  745. package/dist/types.d.ts +45 -14
  746. package/dist/types.js.map +1 -1
  747. package/dist/updateShadowRoot.d.ts +1 -2
  748. package/dist/updateShadowRoot.js +5 -29
  749. package/dist/updateShadowRoot.js.map +1 -1
  750. package/dist/util/{AriaLabelHelper.d.ts → AccessibilityTextsHelper.d.ts} +4 -2
  751. package/dist/util/{AriaLabelHelper.js → AccessibilityTextsHelper.js} +36 -8
  752. package/dist/util/AccessibilityTextsHelper.js.map +1 -0
  753. package/dist/util/Caret.js.map +1 -1
  754. package/dist/util/ColorConversion.d.ts +2 -1
  755. package/dist/util/ColorConversion.js +233 -216
  756. package/dist/util/ColorConversion.js.map +1 -1
  757. package/dist/util/FetchHelper.js.map +1 -1
  758. package/dist/util/FocusableElements.js +43 -15
  759. package/dist/util/FocusableElements.js.map +1 -1
  760. package/dist/util/HTMLSanitizer.d.ts +2 -0
  761. package/dist/util/HTMLSanitizer.js +2 -2
  762. package/dist/util/HTMLSanitizer.js.map +1 -1
  763. package/dist/util/InvisibleMessage.d.ts +1 -1
  764. package/dist/util/InvisibleMessage.js +2 -2
  765. package/dist/util/InvisibleMessage.js.map +1 -1
  766. package/dist/util/PopupUtils.d.ts +1 -3
  767. package/dist/util/PopupUtils.js +1 -15
  768. package/dist/util/PopupUtils.js.map +1 -1
  769. package/dist/util/SelectionAssistant.d.ts +12 -0
  770. package/dist/util/SelectionAssistant.js +71 -0
  771. package/dist/util/SelectionAssistant.js.map +1 -0
  772. package/dist/util/SlotsHelper.js.map +1 -1
  773. package/dist/util/StringHelper.d.ts +3 -1
  774. package/dist/util/StringHelper.js +15 -1
  775. package/dist/util/StringHelper.js.map +1 -1
  776. package/dist/util/TabbableElements.js +5 -12
  777. package/dist/util/TabbableElements.js.map +1 -1
  778. package/dist/util/arraysAreEqual.js.map +1 -1
  779. package/dist/util/clamp.js +2 -1
  780. package/dist/util/clamp.js.map +1 -1
  781. package/dist/util/createInstanceChecker.d.ts +2 -0
  782. package/dist/util/createInstanceChecker.js +8 -0
  783. package/dist/util/createInstanceChecker.js.map +1 -0
  784. package/dist/util/createLinkInHead.d.ts +1 -1
  785. package/dist/util/createLinkInHead.js +1 -1
  786. package/dist/util/createLinkInHead.js.map +1 -1
  787. package/dist/util/createMultiInstanceChecker.d.ts +2 -0
  788. package/dist/util/createMultiInstanceChecker.js +19 -0
  789. package/dist/util/createMultiInstanceChecker.js.map +1 -0
  790. package/dist/util/debounce.js.map +1 -1
  791. package/dist/util/detectNavigatorLanguage.d.ts +2 -2
  792. package/dist/util/detectNavigatorLanguage.js +6 -1
  793. package/dist/util/detectNavigatorLanguage.js.map +1 -1
  794. package/dist/util/dragAndDrop/DragRegistry.d.ts +39 -0
  795. package/dist/util/dragAndDrop/DragRegistry.js +62 -0
  796. package/dist/util/dragAndDrop/DragRegistry.js.map +1 -0
  797. package/dist/util/dragAndDrop/findClosestPosition.d.ts +12 -0
  798. package/dist/util/dragAndDrop/findClosestPosition.js +106 -0
  799. package/dist/util/dragAndDrop/findClosestPosition.js.map +1 -0
  800. package/dist/util/dragAndDrop/handleDragOver.d.ts +16 -0
  801. package/dist/util/dragAndDrop/handleDragOver.js +42 -0
  802. package/dist/util/dragAndDrop/handleDragOver.js.map +1 -0
  803. package/dist/util/dragAndDrop/handleDrop.d.ts +5 -0
  804. package/dist/util/dragAndDrop/handleDrop.js +22 -0
  805. package/dist/util/dragAndDrop/handleDrop.js.map +1 -0
  806. package/dist/util/dragAndDrop/longDragOverHandler.d.ts +2 -0
  807. package/dist/util/dragAndDrop/longDragOverHandler.js +25 -0
  808. package/dist/util/dragAndDrop/longDragOverHandler.js.map +1 -0
  809. package/dist/util/fixSafariActiveState.d.ts +2 -0
  810. package/dist/util/fixSafariActiveState.js +11 -0
  811. package/dist/util/fixSafariActiveState.js.map +1 -0
  812. package/dist/util/formatMessage.js.map +1 -1
  813. package/dist/util/generateHighlightedMarkup.js.map +1 -1
  814. package/dist/util/getActiveElement.js.map +1 -1
  815. package/dist/util/getClassCopy.d.ts +146 -103
  816. package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -2
  817. package/dist/util/getDesigntimePropertyAsArray.js +2 -1
  818. package/dist/util/getDesigntimePropertyAsArray.js.map +1 -1
  819. package/dist/util/getFastNavigationGroups.js +6 -1
  820. package/dist/util/getFastNavigationGroups.js.map +1 -1
  821. package/dist/util/getFileExtension.js.map +1 -1
  822. package/dist/util/getNormalizedTarget.js.map +1 -1
  823. package/dist/util/getParentElement.d.ts +2 -0
  824. package/dist/util/getParentElement.js +5 -0
  825. package/dist/util/getParentElement.js.map +1 -0
  826. package/dist/util/getSingletonElementInstance.js.map +1 -1
  827. package/dist/util/hash2str.d.ts +1 -0
  828. package/dist/util/hash2str.js +14 -0
  829. package/dist/util/hash2str.js.map +1 -0
  830. package/dist/util/isElementClickable.js.map +1 -1
  831. package/dist/util/isElementHidden.js +2 -1
  832. package/dist/util/isElementHidden.js.map +1 -1
  833. package/dist/util/isElementTabbable.js +2 -2
  834. package/dist/util/isElementTabbable.js.map +1 -1
  835. package/dist/util/isEventMarked.d.ts +2 -0
  836. package/dist/util/isEventMarked.js +6 -0
  837. package/dist/util/isEventMarked.js.map +1 -0
  838. package/dist/util/isValidPropertyName.js.map +1 -1
  839. package/dist/util/throttle.d.ts +2 -0
  840. package/dist/util/throttle.js +20 -0
  841. package/dist/util/throttle.js.map +1 -0
  842. package/dist/util/toLowercaseEnumValue.d.ts +3 -0
  843. package/dist/util/toLowercaseEnumValue.js +4 -0
  844. package/dist/util/toLowercaseEnumValue.js.map +1 -0
  845. package/dist/util/valueStateNavigation.d.ts +8 -0
  846. package/dist/util/valueStateNavigation.js +40 -0
  847. package/dist/util/valueStateNavigation.js.map +1 -0
  848. package/dist/util/whenDOMReady.js.map +1 -1
  849. package/dist/validateThemeRoot.js +9 -4
  850. package/dist/validateThemeRoot.js.map +1 -1
  851. package/dist/vscode.html-custom-data.json +22 -0
  852. package/package-scripts.cjs +69 -35
  853. package/package.json +54 -23
  854. package/src/css/MultipleDragGhost.css +17 -0
  855. package/src/css/OpenUI5PopupStyles.css +10 -0
  856. package/src/css/ScrollbarStyles.css +3 -0
  857. package/src/css/SystemCSSVars.css +27 -10
  858. package/src/i18n/messagebundle.properties +5 -0
  859. package/src/i18n/messagebundle_en.properties +2 -0
  860. package/src/i18n/messagebundle_en_US_sappsd.properties +2 -0
  861. package/src/i18n/messagebundle_en_US_saprigi.properties +2 -0
  862. package/src/i18n/messagebundle_en_US_saptrc.properties +2 -0
  863. package/src/thirdparty/preact/jsxRuntime.module.js +1 -0
  864. package/src/thirdparty/preact/preact.module.js +1 -0
  865. package/src/thirdparty/preact/version.txt +1 -0
  866. package/tsconfig.json +18 -13
  867. package/.eslintignore +0 -16
  868. package/.eslintrc.cjs +0 -3
  869. package/bundle.esm.js +0 -67
  870. package/config/wdio.conf.cjs +0 -400
  871. package/dist/CSP.d.ts +0 -30
  872. package/dist/CSP.js +0 -51
  873. package/dist/CSP.js.map +0 -1
  874. package/dist/MarkedEvents.d.ts +0 -9
  875. package/dist/MarkedEvents.js +0 -15
  876. package/dist/MarkedEvents.js.map +0 -1
  877. package/dist/StaticArea.d.ts +0 -3
  878. package/dist/StaticArea.js +0 -7
  879. package/dist/StaticArea.js.map +0 -1
  880. package/dist/StaticAreaItem.d.ts +0 -37
  881. package/dist/StaticAreaItem.js +0 -102
  882. package/dist/StaticAreaItem.js.map +0 -1
  883. package/dist/api.json +0 -1
  884. package/dist/assets/Boot-34b7cea0.css +0 -1
  885. package/dist/assets/Boot-a6333fde.js +0 -9
  886. package/dist/assets/bundle.esm-c305a65f.js +0 -50
  887. package/dist/config/RTL.d.ts +0 -7
  888. package/dist/config/RTL.js +0 -37
  889. package/dist/config/RTL.js.map +0 -1
  890. package/dist/css/FontFace.css +0 -84
  891. package/dist/css/OverrideFontFace.css +0 -32
  892. package/dist/generated/css/OverrideFontFace.css.d.ts +0 -3
  893. package/dist/generated/css/OverrideFontFace.css.js +0 -7
  894. package/dist/generated/css/OverrideFontFace.css.js.map +0 -1
  895. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.d.ts +0 -4
  896. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +0 -9
  897. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js.map +0 -1
  898. package/dist/theming/getEffectiveLinksHrefs.d.ts +0 -3
  899. package/dist/theming/getEffectiveLinksHrefs.js +0 -17
  900. package/dist/theming/getEffectiveLinksHrefs.js.map +0 -1
  901. package/dist/theming/preloadLinks.d.ts +0 -3
  902. package/dist/theming/preloadLinks.js +0 -19
  903. package/dist/theming/preloadLinks.js.map +0 -1
  904. package/dist/types/CSSColor.d.ts +0 -15
  905. package/dist/types/CSSColor.js +0 -18
  906. package/dist/types/CSSColor.js.map +0 -1
  907. package/dist/types/CSSSize.d.ts +0 -15
  908. package/dist/types/CSSSize.js +0 -18
  909. package/dist/types/CSSSize.js.map +0 -1
  910. package/dist/types/DOMReference.d.ts +0 -17
  911. package/dist/types/DOMReference.js +0 -25
  912. package/dist/types/DOMReference.js.map +0 -1
  913. package/dist/types/DataType.d.ts +0 -25
  914. package/dist/types/DataType.js +0 -44
  915. package/dist/types/DataType.js.map +0 -1
  916. package/dist/types/Float.d.ts +0 -17
  917. package/dist/types/Float.js +0 -21
  918. package/dist/types/Float.js.map +0 -1
  919. package/dist/types/Integer.d.ts +0 -17
  920. package/dist/types/Integer.js +0 -21
  921. package/dist/types/Integer.js.map +0 -1
  922. package/dist/util/AriaLabelHelper.js.map +0 -1
  923. package/dist/util/createStyleInHead.d.ts +0 -8
  924. package/dist/util/createStyleInHead.js +0 -18
  925. package/dist/util/createStyleInHead.js.map +0 -1
  926. package/dist/util/getEffectiveScrollbarStyle.d.ts +0 -2
  927. package/dist/util/getEffectiveScrollbarStyle.js +0 -4
  928. package/dist/util/getEffectiveScrollbarStyle.js.map +0 -1
  929. package/index.js +0 -230
  930. package/lib/generate-asset-parameters/index.js +0 -27
  931. package/lib/generate-styles/index.js +0 -31
  932. package/lib/generate-version-info/index.js +0 -32
  933. package/src/css/FontFace.css +0 -84
  934. package/src/css/OverrideFontFace.css +0 -32
  935. package/src/renderer/directives/style-map.js +0 -72
  936. package/used-modules.txt +0 -10
@@ -1 +1 @@
1
- {"version":3,"file":"F6Navigation.js","sourceRoot":"","sources":["../../src/features/F6Navigation.ts"],"names":[],"mappings":"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","sourcesContent":["import { registerFeature } from \"../FeaturesRegistry.js\";\nimport { isF6Next, isF6Previous } from \"../Keys.js\";\nimport { instanceOfUI5Element } from \"../UI5Element.js\";\nimport { getFirstFocusableElement } from \"../util/FocusableElements.js\";\nimport getFastNavigationGroups from \"../util/getFastNavigationGroups.js\";\nimport isElementClickable from \"../util/isElementClickable.js\";\n\nclass F6Navigation {\n\tstatic _instance: F6Navigation;\n\tkeydownHandler: (event: KeyboardEvent) => void;\n\tselectedGroup: HTMLElement | null = null;\n\tgroups: Array<HTMLElement> = [];\n\n\tconstructor() {\n\t\tthis.keydownHandler = this._keydownHandler.bind(this) as (event: KeyboardEvent) => void;\n\t\tthis.attachEventListeners();\n\t}\n\n\tattachEventListeners() {\n\t\tdocument.addEventListener(\"keydown\", this.keydownHandler);\n\t}\n\n\tasync groupElementToFocus(nextElement: HTMLElement) {\n\t\tconst nextElementDomRef = instanceOfUI5Element(nextElement) ? nextElement.getDomRef() : nextElement;\n\n\t\tif (nextElementDomRef) {\n\t\t\tif (isElementClickable(nextElementDomRef)) {\n\t\t\t\treturn nextElementDomRef;\n\t\t\t}\n\n\t\t\tconst elementToFocus = await getFirstFocusableElement(nextElementDomRef);\n\n\t\t\tif (elementToFocus) {\n\t\t\t\treturn elementToFocus;\n\t\t\t}\n\t\t}\n\t}\n\n\tasync findNextFocusableGroupElement(currentIndex: number) {\n\t\tlet elementToFocus;\n\n\t\t/* eslint-disable no-await-in-loop */\n\t\tfor (let index = 0; index < this.groups.length; index++) {\n\t\t\tlet nextElement;\n\n\t\t\tif (currentIndex > -1) {\n\t\t\t\tif (currentIndex + 1 >= this.groups.length) {\n\t\t\t\t\tcurrentIndex = 0;\n\t\t\t\t\tnextElement = this.groups[currentIndex];\n\t\t\t\t} else {\n\t\t\t\t\tcurrentIndex += 1;\n\t\t\t\t\tnextElement = this.groups[currentIndex];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcurrentIndex = 0;\n\t\t\t\tnextElement = this.groups[currentIndex];\n\t\t\t}\n\n\t\t\telementToFocus = await this.groupElementToFocus(nextElement);\n\n\t\t\tif (elementToFocus) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t/* eslint-enable no-await-in-loop */\n\n\t\treturn elementToFocus;\n\t}\n\n\tasync findPreviousFocusableGroupElement(currentIndex: number) {\n\t\tlet elementToFocus;\n\n\t\t/* eslint-disable no-await-in-loop */\n\t\tfor (let index = 0; index < this.groups.length; index++) {\n\t\t\tlet nextElement;\n\n\t\t\tif (currentIndex > 0) {\n\t\t\t\t// Handle the situation where the first focusable element of two neighbor groups is the same\n\t\t\t\t// For example:\n\t\t\t\t// <ui5-flexible-column-layout>\n\t\t\t\t// <ui5-list>\n\t\t\t\t// <ui5-li>List Item</ui5-li>\n\t\t\t\t// </ui5-list>\n\t\t\t\t// </ui5-flexible-column-layout>\n\t\t\t\t// Here for both FCL & List the firstFoccusableElement is the same (the ui5-li)\n\t\t\t\tconst firstFocusable = await this.groupElementToFocus(this.groups[currentIndex - 1]);\n\t\t\t\tconst shouldSkipParent = firstFocusable === await this.groupElementToFocus(this.groups[currentIndex]);\n\n\t\t\t\tcurrentIndex = shouldSkipParent ? currentIndex - 2 : currentIndex - 1;\n\n\t\t\t\tif (currentIndex < 0) {\n\t\t\t\t\tcurrentIndex = this.groups.length - 1;\n\t\t\t\t}\n\n\t\t\t\tnextElement = this.groups[currentIndex];\n\t\t\t} else {\n\t\t\t\tcurrentIndex = this.groups.length - 1;\n\t\t\t\tnextElement = this.groups[currentIndex];\n\t\t\t}\n\n\t\t\telementToFocus = await this.groupElementToFocus(nextElement);\n\n\t\t\tif (elementToFocus) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t/* eslint-enable no-await-in-loop */\n\n\t\treturn elementToFocus;\n\t}\n\n\tasync _keydownHandler(event: KeyboardEvent) {\n\t\tconst forward = isF6Next(event);\n\t\tconst backward = isF6Previous(event);\n\t\tif (!(forward || backward)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.updateGroups();\n\n\t\tif (this.groups.length < 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\n\t\tlet elementToFocus;\n\n\t\tif (this.groups.length === 0) {\n\t\t\telementToFocus = await this.groupElementToFocus(this.groups[0]);\n\n\t\t\treturn elementToFocus?.focus();\n\t\t}\n\n\t\tlet currentIndex = -1;\n\n\t\tif (this.selectedGroup) {\n\t\t\tcurrentIndex = this.groups.indexOf(this.selectedGroup);\n\t\t}\n\n\t\tif (forward) {\n\t\t\telementToFocus = await this.findNextFocusableGroupElement(currentIndex);\n\t\t}\n\n\t\tif (backward) {\n\t\t\telementToFocus = await this.findPreviousFocusableGroupElement(currentIndex);\n\t\t}\n\n\t\telementToFocus?.focus();\n\t}\n\n\tremoveEventListeners() {\n\t\tdocument.removeEventListener(\"keydown\", this.keydownHandler);\n\t}\n\n\tupdateGroups() {\n\t\tthis.setSelectedGroup();\n\t\tthis.groups = getFastNavigationGroups(document.body);\n\t}\n\n\tsetSelectedGroup(root: DocumentOrShadowRoot = window.document) {\n\t\tconst htmlElement = window.document.querySelector(\"html\");\n\t\tlet element: Element | null | ParentNode = this.deepActive(root);\n\n\t\twhile (element && (element as Element).getAttribute(\"data-sap-ui-fastnavgroup\") !== \"true\" && element !== htmlElement) {\n\t\t\telement = element.parentElement ? element.parentNode : (element.parentNode as ShadowRoot).host;\n\t\t}\n\n\t\tthis.selectedGroup = element as HTMLElement;\n\t}\n\n\tdeepActive(root: DocumentOrShadowRoot): Element | null {\n\t\tif (root.activeElement && root.activeElement.shadowRoot) {\n\t\t\treturn this.deepActive(root.activeElement.shadowRoot);\n\t\t}\n\n\t\treturn root.activeElement;\n\t}\n\n\tdestroy() {\n\t\tthis.removeEventListeners();\n\t}\n\n\tstatic init() {\n\t\tif (!this._instance) {\n\t\t\tthis._instance = new F6Navigation();\n\t\t}\n\n\t\treturn this._instance;\n\t}\n}\n\nregisterFeature(\"F6Navigation\", F6Navigation);\n\nexport default F6Navigation;\n"]}
1
+ {"version":3,"file":"F6Navigation.js","sourceRoot":"","sources":["../../src/features/F6Navigation.ts"],"names":[],"mappings":"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","sourcesContent":["import { getFeature, registerFeature } from \"../FeaturesRegistry.js\";\nimport { isF6Next, isF6Previous } from \"../Keys.js\";\nimport { getFirstFocusableElement } from \"../util/FocusableElements.js\";\nimport getFastNavigationGroups from \"../util/getFastNavigationGroups.js\";\nimport isElementClickable from \"../util/isElementClickable.js\";\nimport { getCurrentRuntimeIndex, compareRuntimes } from \"../Runtimes.js\";\nimport getSharedResource from \"../getSharedResource.js\";\nimport type OpenUI5Support from \"./OpenUI5Support.js\";\nimport getParentElement from \"../util/getParentElement.js\";\n\ntype F6Registry = {\n\tinstance?: F6Navigation,\n}\n\nconst currentRuntimeINdex = getCurrentRuntimeIndex();\n\nconst shouldUpdate = (runtimeIndex: number | undefined) => {\n\tif (runtimeIndex === undefined) {\n\t\treturn true;\n\t}\n\treturn compareRuntimes(currentRuntimeINdex, runtimeIndex) === 1; // 1 means the current is newer, 0 means the same, -1 means the resource's runtime is newer\n};\n\nclass F6Navigation {\n\tkeydownHandler: (event: KeyboardEvent) => void;\n\tselectedGroup: HTMLElement | null = null;\n\tgroups: Array<HTMLElement> = [];\n\n\tconstructor() {\n\t\tthis.keydownHandler = this._keydownHandler.bind(this) as (event: KeyboardEvent) => void;\n\t\tthis.attachEventListeners();\n\t}\n\n\tattachEventListeners() {\n\t\tdocument.addEventListener(\"keydown\", this.keydownHandler);\n\t}\n\n\tremoveEventListeners() {\n\t\tdocument.removeEventListener(\"keydown\", this.keydownHandler);\n\t}\n\n\tasync groupElementToFocus(nextElement: HTMLElement) {\n\t\tif (nextElement) {\n\t\t\tif (isElementClickable(nextElement)) {\n\t\t\t\treturn nextElement;\n\t\t\t}\n\n\t\t\tconst elementToFocus = await getFirstFocusableElement(nextElement);\n\n\t\t\tif (elementToFocus) {\n\t\t\t\treturn elementToFocus;\n\t\t\t}\n\t\t}\n\t}\n\n\tasync findNextFocusableGroupElement(currentIndex: number) {\n\t\tlet elementToFocus;\n\n\t\t/* eslint-disable no-await-in-loop */\n\t\tfor (let index = 0; index < this.groups.length; index++) {\n\t\t\tlet nextElement;\n\n\t\t\tif (currentIndex > -1) {\n\t\t\t\tif (currentIndex + 1 >= this.groups.length) {\n\t\t\t\t\tcurrentIndex = 0;\n\t\t\t\t\tnextElement = this.groups[currentIndex];\n\t\t\t\t} else {\n\t\t\t\t\tcurrentIndex += 1;\n\t\t\t\t\tnextElement = this.groups[currentIndex];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcurrentIndex = 0;\n\t\t\t\tnextElement = this.groups[currentIndex];\n\t\t\t}\n\n\t\t\telementToFocus = await this.groupElementToFocus(nextElement);\n\n\t\t\tif (elementToFocus) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t/* eslint-enable no-await-in-loop */\n\n\t\treturn elementToFocus;\n\t}\n\n\tasync findPreviousFocusableGroupElement(currentIndex: number) {\n\t\tlet elementToFocus;\n\n\t\t/* eslint-disable no-await-in-loop */\n\t\tfor (let index = 0; index < this.groups.length; index++) {\n\t\t\tlet nextElement;\n\n\t\t\tif (currentIndex > 0) {\n\t\t\t\t// Handle the situation where the first focusable element of two neighbor groups is the same\n\t\t\t\t// For example:\n\t\t\t\t// <ui5-flexible-column-layout>\n\t\t\t\t// <ui5-list>\n\t\t\t\t// <ui5-li>List Item</ui5-li>\n\t\t\t\t// </ui5-list>\n\t\t\t\t// </ui5-flexible-column-layout>\n\t\t\t\t// Here for both FCL & List the firstFoccusableElement is the same (the ui5-li)\n\t\t\t\tconst currentGroupFocusable = await this.groupElementToFocus(this.groups[currentIndex]);\n\t\t\t\tlet distanceToNextGroup = 1;\n\n\t\t\t\tfor (let distanceIndex = 1; distanceIndex < this.groups.length; distanceIndex++) {\n\t\t\t\t\tconst firstFocusable = await this.groupElementToFocus(this.groups[currentIndex - distanceIndex]);\n\n\t\t\t\t\tif (firstFocusable === currentGroupFocusable) {\n\t\t\t\t\t\tdistanceToNextGroup++;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcurrentIndex -= distanceToNextGroup;\n\n\t\t\t\tif (currentIndex < 0) {\n\t\t\t\t\tcurrentIndex = this.groups.length - 1;\n\t\t\t\t}\n\n\t\t\t\tnextElement = this.groups[currentIndex];\n\t\t\t} else {\n\t\t\t\tcurrentIndex = this.groups.length - 1;\n\t\t\t\tnextElement = this.groups[currentIndex];\n\t\t\t}\n\n\t\t\telementToFocus = await this.groupElementToFocus(nextElement);\n\n\t\t\tif (elementToFocus) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t/* eslint-enable no-await-in-loop */\n\n\t\treturn elementToFocus;\n\t}\n\n\tasync _keydownHandler(event: KeyboardEvent) {\n\t\tconst openUI5Support = getFeature<typeof OpenUI5Support>(\"OpenUI5Support\");\n\t\tconst isOpenUI5Detected = openUI5Support && openUI5Support.isOpenUI5Detected();\n\n\t\tif (isOpenUI5Detected) {\n\t\t\tthis.destroy();\n\t\t\treturn;\n\t\t}\n\n\t\tconst forward = isF6Next(event);\n\t\tconst backward = isF6Previous(event);\n\t\tif (!(forward || backward)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.updateGroups();\n\n\t\tif (this.groups.length < 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\n\t\tlet elementToFocus;\n\n\t\tif (this.groups.length === 0) {\n\t\t\telementToFocus = await this.groupElementToFocus(this.groups[0]);\n\n\t\t\treturn elementToFocus?.focus();\n\t\t}\n\n\t\tlet currentIndex = -1;\n\n\t\tif (this.selectedGroup) {\n\t\t\tcurrentIndex = this.groups.indexOf(this.selectedGroup);\n\t\t}\n\n\t\tif (forward) {\n\t\t\telementToFocus = await this.findNextFocusableGroupElement(currentIndex);\n\t\t}\n\n\t\tif (backward) {\n\t\t\telementToFocus = await this.findPreviousFocusableGroupElement(currentIndex);\n\t\t}\n\n\t\telementToFocus?.focus();\n\t}\n\n\tupdateGroups() {\n\t\tconst container = this.findContainer();\n\n\t\tthis.setSelectedGroup();\n\t\tthis.groups = getFastNavigationGroups(container);\n\t}\n\n\tfindContainer() {\n\t\tconst htmlElement = window.document.querySelector(\"html\");\n\t\tlet element = this.deepActive(window.document);\n\n\t\twhile (element && element !== htmlElement) {\n\t\t\tconst closestScopeEl = element.closest<HTMLElement>(\"[data-sap-ui-fastnavgroup-container='true']\");\n\n\t\t\tif (closestScopeEl) {\n\t\t\t\treturn closestScopeEl;\n\t\t\t}\n\n\t\t\telement = getParentElement(element);\n\t\t}\n\n\t\treturn document.body;\n\t}\n\n\tsetSelectedGroup(root: DocumentOrShadowRoot = window.document) {\n\t\tconst htmlElement = window.document.querySelector(\"html\");\n\t\tlet element: Element | null = this.deepActive(root);\n\n\t\twhile (element && element.getAttribute(\"data-sap-ui-fastnavgroup\") !== \"true\" && element !== htmlElement) {\n\t\t\telement = getParentElement(element);\n\t\t}\n\n\t\tthis.selectedGroup = element as HTMLElement;\n\t}\n\n\tdeepActive(root: DocumentOrShadowRoot): Element | null {\n\t\tif (root?.activeElement?.shadowRoot?.activeElement) {\n\t\t\treturn this.deepActive(root.activeElement.shadowRoot);\n\t\t}\n\n\t\treturn root.activeElement;\n\t}\n\n\tdestroy() {\n\t\tthis.removeEventListeners();\n\t}\n\n\tget _ui5RuntimeIndex() {\n\t\treturn currentRuntimeINdex;\n\t}\n\n\tstatic init() {\n\t\tconst f6Registry = getSharedResource<F6Registry>(\"F6Registry\", {});\n\n\t\tif (!f6Registry.instance) {\n\t\t\tf6Registry.instance = new F6Navigation();\n\t\t} else if (shouldUpdate(f6Registry.instance?._ui5RuntimeIndex)) {\n\t\t\tf6Registry.instance?.destroy();\n\t\t\tf6Registry.instance = new F6Navigation();\n\t\t}\n\t}\n\n\tstatic destroy() {\n\t\tconst f6Registry = getSharedResource<F6Registry>(\"F6Registry\", {});\n\t\tf6Registry.instance?.destroy();\n\t}\n}\n\nregisterFeature(\"F6Navigation\", F6Navigation);\n\nexport default F6Navigation;\n"]}
@@ -0,0 +1,15 @@
1
+ import type UI5Element from "../UI5Element.js";
2
+ interface IFormInputElement extends UI5Element {
3
+ name?: string;
4
+ formFormattedValue: FormData | string | null;
5
+ formValidityMessage?: string;
6
+ formValidity?: ValidityStateFlags;
7
+ formElementAnchor?: () => HTMLElement | undefined | Promise<HTMLElement | undefined>;
8
+ }
9
+ declare const updateFormValue: (element: IFormInputElement | UI5Element) => void;
10
+ declare const setFormValue: (element: IFormInputElement) => void;
11
+ declare const setFormValidity: (element: IFormInputElement) => Promise<void>;
12
+ declare const submitForm: (element: UI5Element) => Promise<void>;
13
+ declare const resetForm: (element: UI5Element) => void;
14
+ export { updateFormValue, setFormValue, setFormValidity, submitForm, resetForm, };
15
+ export type { IFormInputElement, };
@@ -0,0 +1,43 @@
1
+ const updateFormValue = (element) => {
2
+ if (isInputElement(element)) {
3
+ setFormValue(element);
4
+ }
5
+ };
6
+ const setFormValue = (element) => {
7
+ if (!element._internals?.form) {
8
+ return;
9
+ }
10
+ setFormValidity(element);
11
+ if (!element.name) {
12
+ element._internals?.setFormValue(null);
13
+ return;
14
+ }
15
+ element._internals.setFormValue(element.formFormattedValue);
16
+ };
17
+ const setFormValidity = async (element) => {
18
+ if (!element.isUI5Element || !element._internals?.form) {
19
+ return;
20
+ }
21
+ element._internals.setValidity({ customError: true }, " "); // treat the form as invalid until CLDR and message bundles are loaded
22
+ await element.definePromise;
23
+ if (element.formValidity && Object.keys(element.formValidity).some(key => key)) {
24
+ const focusRef = await element.formElementAnchor?.();
25
+ element._internals.setValidity(element.formValidity, element.formValidityMessage, focusRef);
26
+ }
27
+ else {
28
+ element._internals.setValidity({});
29
+ }
30
+ };
31
+ const submitForm = async (element) => {
32
+ const elements = [...(element._internals?.form?.elements ?? [])];
33
+ await Promise.all(elements.map(el => { return isInputElement(el) ? setFormValidity(el) : Promise.resolve(); }));
34
+ element._internals?.form?.requestSubmit();
35
+ };
36
+ const resetForm = (element) => {
37
+ element._internals?.form?.reset();
38
+ };
39
+ const isInputElement = (element) => {
40
+ return "formFormattedValue" in element && "name" in element;
41
+ };
42
+ export { updateFormValue, setFormValue, setFormValidity, submitForm, resetForm, };
43
+ //# sourceMappingURL=InputElementsFormSupport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputElementsFormSupport.js","sourceRoot":"","sources":["../../src/features/InputElementsFormSupport.ts"],"names":[],"mappings":"AAUA,MAAM,eAAe,GAAG,CAAC,OAAuC,EAAE,EAAE;IACnE,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,YAAY,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,OAA0B,EAAE,EAAE;IACnD,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;QAC/B,OAAO;IACR,CAAC;IAED,eAAe,CAAC,OAAO,CAAC,CAAC;IAEzB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACnB,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;QACvC,OAAO;IACR,CAAC;IAED,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAC7D,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,KAAK,EAAE,OAA0B,EAAE,EAAE;IAC5D,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;QACxD,OAAO;IACR,CAAC;IAED,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,sEAAsE;IAClI,MAAM,OAAO,CAAC,aAAa,CAAC;IAE5B,IAAI,OAAO,CAAC,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;QAChF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;QACrD,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;IAC7F,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,KAAK,EAAE,OAAmB,EAAE,EAAE;IAChD,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC,CAA0C,CAAC;IAE1G,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhH,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;AAC3C,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,OAAmB,EAAE,EAAE;IACzC,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,OAAuC,EAAgC,EAAE;IAChG,OAAO,oBAAoB,IAAI,OAAO,IAAI,MAAM,IAAI,OAAO,CAAC;AAC7D,CAAC,CAAC;AAEF,OAAO,EACN,eAAe,EACf,YAAY,EACZ,eAAe,EACf,UAAU,EACV,SAAS,GACT,CAAC","sourcesContent":["import type UI5Element from \"../UI5Element.js\";\n\ninterface IFormInputElement extends UI5Element {\n\tname?: string;\n\tformFormattedValue: FormData | string | null;\n\tformValidityMessage?: string;\n\tformValidity?: ValidityStateFlags;\n\tformElementAnchor?: () => HTMLElement | undefined | Promise<HTMLElement | undefined>;\n}\n\nconst updateFormValue = (element: IFormInputElement | UI5Element) => {\n\tif (isInputElement(element)) {\n\t\tsetFormValue(element);\n\t}\n};\n\nconst setFormValue = (element: IFormInputElement) => {\n\tif (!element._internals?.form) {\n\t\treturn;\n\t}\n\n\tsetFormValidity(element);\n\n\tif (!element.name) {\n\t\telement._internals?.setFormValue(null);\n\t\treturn;\n\t}\n\n\telement._internals.setFormValue(element.formFormattedValue);\n};\n\nconst setFormValidity = async (element: IFormInputElement) => {\n\tif (!element.isUI5Element || !element._internals?.form) {\n\t\treturn;\n\t}\n\n\telement._internals.setValidity({ customError: true }, \" \"); // treat the form as invalid until CLDR and message bundles are loaded\n\tawait element.definePromise;\n\n\tif (element.formValidity && Object.keys(element.formValidity).some(key => key)) {\n\t\tconst focusRef = await element.formElementAnchor?.();\n\t\telement._internals.setValidity(element.formValidity, element.formValidityMessage, focusRef);\n\t} else {\n\t\telement._internals.setValidity({});\n\t}\n};\n\nconst submitForm = async (element: UI5Element) => {\n\tconst elements = [...(element._internals?.form?.elements ?? [])] as Array<IFormInputElement | UI5Element>;\n\n\tawait Promise.all(elements.map(el => { return isInputElement(el) ? setFormValidity(el) : Promise.resolve(); }));\n\n\telement._internals?.form?.requestSubmit();\n};\n\nconst resetForm = (element: UI5Element) => {\n\telement._internals?.form?.reset();\n};\n\nconst isInputElement = (element: IFormInputElement | UI5Element): element is IFormInputElement => {\n\treturn \"formFormattedValue\" in element && \"name\" in element;\n};\n\nexport {\n\tupdateFormValue,\n\tsetFormValue,\n\tsetFormValidity,\n\tsubmitForm,\n\tresetForm,\n};\n\nexport type {\n\tIFormInputElement,\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"LegacyDateFormats.js","sourceRoot":"","sources":["../../src/features/LegacyDateFormats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAazD,IAAI,cAA8B,CAAC;AAEnC,MAAM,iBAAiB;IACtB;;;;;OAKG;IACH,MAAM,CAAC,gCAAgC;QACtC,IAAI,cAAc,KAAK,SAAS,EAAE;YACjC,cAAc,GAAG,iBAAiB,EAAE,CAAC;SACrC;QAED,OAAO,cAAc,CAAC,6BAA6B,IAAI,EAAE,CAAC;IAC3D,CAAC;CACD;AAED,eAAe,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;AAExD,eAAe,iBAAiB,CAAC","sourcesContent":["import { getFormatSettings } from \"../InitialConfiguration.js\";\nimport type { FormatSettings } from \"../config/FormatSettings.js\";\nimport { registerFeature } from \"../FeaturesRegistry.js\";\n\n// Allows specifying the customizing data for Islamic calendar support\n// dateFormat - The date format\n// islamicMonthStart - The Islamic date in string format // 14360101\n// gregDate - Corresponding Gregorian date to the Islamic one in string format // 20141024\ntype IslamicToGregorianMapping = {\n\tdateFormat: string,\n\tislamicMonthStart: string,\n\tgregDate: string,\n};\ntype LegacyDateCalendarCustomizing = Array<IslamicToGregorianMapping>;\n\nlet formatSettings: FormatSettings;\n\nclass LegacyDateFormats {\n\t/**\n\t * Returns the currently set customizing data for Islamic calendar support\n\t *\n\t * @return {object[]} Returns an array that contains the customizing data.\n\t * @public\n\t */\n\tstatic getLegacyDateCalendarCustomizing(this: void): LegacyDateCalendarCustomizing {\n\t\tif (formatSettings === undefined) {\n\t\t\tformatSettings = getFormatSettings();\n\t\t}\n\n\t\treturn formatSettings.legacyDateCalendarCustomizing || [];\n\t}\n}\n\nregisterFeature(\"LegacyDateFormats\", LegacyDateFormats);\n\nexport default LegacyDateFormats;\nexport type {\n\tFormatSettings,\n\tLegacyDateCalendarCustomizing,\n};\n"]}
1
+ {"version":3,"file":"LegacyDateFormats.js","sourceRoot":"","sources":["../../src/features/LegacyDateFormats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAazD,IAAI,cAA8B,CAAC;AAEnC,MAAM,iBAAiB;IACtB;;;;;OAKG;IACH,MAAM,CAAC,gCAAgC;QACtC,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAClC,cAAc,GAAG,iBAAiB,EAAE,CAAC;QACtC,CAAC;QAED,OAAO,cAAc,CAAC,6BAA6B,IAAI,EAAE,CAAC;IAC3D,CAAC;CACD;AAED,eAAe,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;AAExD,eAAe,iBAAiB,CAAC","sourcesContent":["import { getFormatSettings } from \"../InitialConfiguration.js\";\nimport type { FormatSettings } from \"../config/FormatSettings.js\";\nimport { registerFeature } from \"../FeaturesRegistry.js\";\n\n// Allows specifying the customizing data for Islamic calendar support\n// dateFormat - The date format\n// islamicMonthStart - The Islamic date in string format // 14360101\n// gregDate - Corresponding Gregorian date to the Islamic one in string format // 20141024\ntype IslamicToGregorianMapping = {\n\tdateFormat: string,\n\tislamicMonthStart: string,\n\tgregDate: string,\n};\ntype LegacyDateCalendarCustomizing = Array<IslamicToGregorianMapping>;\n\nlet formatSettings: FormatSettings;\n\nclass LegacyDateFormats {\n\t/**\n\t * Returns the currently set customizing data for Islamic calendar support\n\t *\n\t * @return {object[]} Returns an array that contains the customizing data.\n\t * @public\n\t */\n\tstatic getLegacyDateCalendarCustomizing(this: void): LegacyDateCalendarCustomizing {\n\t\tif (formatSettings === undefined) {\n\t\t\tformatSettings = getFormatSettings();\n\t\t}\n\n\t\treturn formatSettings.legacyDateCalendarCustomizing || [];\n\t}\n}\n\nregisterFeature(\"LegacyDateFormats\", LegacyDateFormats);\n\nexport default LegacyDateFormats;\nexport type {\n\tFormatSettings,\n\tLegacyDateCalendarCustomizing,\n};\n"]}
@@ -1,11 +1,11 @@
1
- import { TemplateResult } from "lit-html";
1
+ import type { TemplateResult } from "lit-html";
2
2
  import type UI5Element from "../UI5Element.js";
3
3
  import type OpenUI5Element from "./OpenUI5Element.js";
4
4
  declare class OpenUI5Enablement {
5
- static wrapTemplateResultInBusyMarkup(html: (strings: TemplateStringsArray, ...values: Array<unknown>) => TemplateResult, host: OpenUI5Element, templateResult: TemplateResult): TemplateResult<1 | 2>;
5
+ static wrapTemplateResultInBusyMarkup(html: (strings: TemplateStringsArray, ...values: Array<unknown>) => TemplateResult, host: OpenUI5Element, templateResult: TemplateResult): TemplateResult;
6
6
  static enrichBusyIndicatorSettings(klass: typeof UI5Element): void;
7
7
  static enrichBusyIndicatorMetadata(klass: typeof UI5Element): void;
8
8
  static enrichBusyIndicatorMethods(UI5ElementPrototype: typeof OpenUI5Element.prototype): void;
9
- static getBusyIndicatorStyles(): import("../types.js").StyleData;
9
+ static getBusyIndicatorStyles(): string;
10
10
  }
11
11
  export default OpenUI5Enablement;
@@ -1 +1 @@
1
- {"version":3,"file":"OpenUI5Enablement.js","sourceRoot":"","sources":["../../src/features/OpenUI5Enablement.ts"],"names":[],"mappings":"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","sourcesContent":["import { TemplateResult } from \"lit-html\";\nimport { registerFeature } from \"../FeaturesRegistry.js\";\nimport BusyIndicatorStyles from \"../generated/css/BusyIndicator.css.js\";\nimport merge from \"../thirdparty/merge.js\";\nimport {\n\tisTabPrevious,\n} from \"../Keys.js\";\n\nimport type UI5Element from \"../UI5Element.js\";\nimport type OpenUI5Element from \"./OpenUI5Element.js\";\n\nconst busyIndicatorMetadata = {\n\tproperties: {\n\t\t__isBusy: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n};\n\nclass OpenUI5Enablement {\n\tstatic wrapTemplateResultInBusyMarkup(html: (strings: TemplateStringsArray, ...values: Array<unknown>) => TemplateResult, host: OpenUI5Element, templateResult: TemplateResult) {\n\t\tif (host.isOpenUI5Component && host.__isBusy) {\n\t\t\ttemplateResult = html`\n\t\t\t<div class=\"busy-indicator-wrapper\">\n\t\t\t\t<span tabindex=\"0\" busy-indicator-before-span @focusin=${host.__suppressFocusIn}></span>\n\t\t\t\t${templateResult}\n\t\t\t\t<div class=\"busy-indicator-overlay\"></div>\n\t\t\t\t<div busy-indicator\n\t\t\t\t\tclass=\"busy-indicator-busy-area\"\n\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\trole=\"progressbar\"\n\t\t\t\t\t@keydown=${host.__suppressFocusBack}\n\t\t\t\t\taria-valuemin=\"0\"\n\t\t\t\t\taria-valuemax=\"100\"\n\t\t\t\t\taria-valuetext=\"Busy\">\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"busy-indicator-circle circle-animation-0\"></div>\n\t\t\t\t\t\t<div class=\"busy-indicator-circle circle-animation-1\"></div>\n\t\t\t\t\t\t<div class=\"busy-indicator-circle circle-animation-2\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>`;\n\t\t}\n\n\t\treturn templateResult;\n\t}\n\n\tstatic enrichBusyIndicatorSettings(klass: typeof UI5Element) {\n\t\tOpenUI5Enablement.enrichBusyIndicatorMetadata(klass);\n\t\tOpenUI5Enablement.enrichBusyIndicatorMethods(klass.prototype);\n\t}\n\n\tstatic enrichBusyIndicatorMetadata(klass: typeof UI5Element) {\n\t\tklass.metadata = merge(klass.metadata, busyIndicatorMetadata);\n\t}\n\n\tstatic enrichBusyIndicatorMethods(UI5ElementPrototype: typeof OpenUI5Element.prototype) {\n\t\tObject.defineProperties(UI5ElementPrototype, {\n\t\t\t\"__redirectFocus\": { value: true, writable: true },\n\t\t\t\"__suppressFocusBack\": {\n\t\t\t\tget() {\n\t\t\t\t\treturn {\n\t\t\t\t\t\thandleEvent: (e: KeyboardEvent) => {\n\t\t\t\t\t\t\tif (isTabPrevious(e)) {\n\t\t\t\t\t\t\t\tconst beforeElem = this.shadowRoot.querySelector(\"[busy-indicator-before-span]\");\n\t\t\t\t\t\t\t\tthis.__redirectFocus = false;\n\t\t\t\t\t\t\t\tbeforeElem.focus();\n\t\t\t\t\t\t\t\tthis.__redirectFocus = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcapture: true,\n\t\t\t\t\t\tpassive: false,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"isOpenUI5Component\": { get: () => { return true; } },\n\t\t});\n\n\t\tUI5ElementPrototype.__suppressFocusIn = function handleFocusIn() {\n\t\t\tconst busyIndicator = this.shadowRoot?.querySelector(\"[busy-indicator]\") as HTMLElement;\n\t\t\tif (busyIndicator && this.__redirectFocus) {\n\t\t\t\tbusyIndicator.focus();\n\t\t\t}\n\t\t};\n\n\t\tUI5ElementPrototype.getDomRef = function getDomRef() {\n\t\t\t// If a component set _getRealDomRef to its children, use the return value of this function\n\t\t\tif (typeof this._getRealDomRef === \"function\") {\n\t\t\t\treturn this._getRealDomRef();\n\t\t\t}\n\n\t\t\tif (!this.shadowRoot || this.shadowRoot.children.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst children = [...this.shadowRoot.children].filter(child => ![\"link\", \"style\"].includes(child.localName));\n\n\t\t\tif (children.length !== 1) {\n\t\t\t\tconsole.warn(`The shadow DOM for ${(this.constructor as typeof UI5Element).getMetadata().getTag()} does not have a top level element, the getDomRef() method might not work as expected`); // eslint-disable-line\n\t\t\t}\n\n\t\t\tif (this.__isBusy) {\n\t\t\t\treturn children[0].querySelector(\".busy-indicator-wrapper > :not([busy-indicator-before-span]):not(.busy-indicator-overlay):not(.busy-indicator-busy-area)\") as HTMLElement;\n\t\t\t}\n\n\t\t\treturn children[0] as HTMLElement;\n\t\t};\n\t}\n\n\tstatic getBusyIndicatorStyles() {\n\t\treturn BusyIndicatorStyles;\n\t}\n}\n\nregisterFeature(\"OpenUI5Enablement\", OpenUI5Enablement);\n\nexport default OpenUI5Enablement;\n"]}
1
+ {"version":3,"file":"OpenUI5Enablement.js","sourceRoot":"","sources":["../../src/features/OpenUI5Enablement.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TemplateResult } from \"lit-html\";\nimport { registerFeature } from \"../FeaturesRegistry.js\";\nimport BusyIndicatorStyles from \"../generated/css/BusyIndicator.css.js\";\nimport merge from \"../thirdparty/merge.js\";\nimport {\n\tisTabPrevious,\n} from \"../Keys.js\";\n\nimport type UI5Element from \"../UI5Element.js\";\nimport type OpenUI5Element from \"./OpenUI5Element.js\";\n\nconst busyIndicatorMetadata = {\n\tproperties: {\n\t\t__isBusy: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n};\n\nclass OpenUI5Enablement {\n\tstatic wrapTemplateResultInBusyMarkup(html: (strings: TemplateStringsArray, ...values: Array<unknown>) => TemplateResult, host: OpenUI5Element, templateResult: TemplateResult) {\n\t\tif (host.isOpenUI5Component && host.__isBusy) {\n\t\t\ttemplateResult = html`\n\t\t\t<div class=\"busy-indicator-wrapper\">\n\t\t\t\t<span tabindex=\"0\" busy-indicator-before-span @focusin=${host.__suppressFocusIn}></span>\n\t\t\t\t${templateResult}\n\t\t\t\t<div class=\"busy-indicator-overlay\"></div>\n\t\t\t\t<div busy-indicator\n\t\t\t\t\tclass=\"busy-indicator-busy-area\"\n\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\trole=\"progressbar\"\n\t\t\t\t\t@keydown=${host.__suppressFocusBack}\n\t\t\t\t\taria-valuemin=\"0\"\n\t\t\t\t\taria-valuemax=\"100\"\n\t\t\t\t\taria-valuetext=\"Busy\">\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"busy-indicator-circle circle-animation-0\"></div>\n\t\t\t\t\t\t<div class=\"busy-indicator-circle circle-animation-1\"></div>\n\t\t\t\t\t\t<div class=\"busy-indicator-circle circle-animation-2\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>`;\n\t\t}\n\n\t\treturn templateResult;\n\t}\n\n\tstatic enrichBusyIndicatorSettings(klass: typeof UI5Element) {\n\t\tOpenUI5Enablement.enrichBusyIndicatorMetadata(klass);\n\t\tOpenUI5Enablement.enrichBusyIndicatorMethods(klass.prototype);\n\t}\n\n\tstatic enrichBusyIndicatorMetadata(klass: typeof UI5Element) {\n\t\tklass.metadata = merge(klass.metadata, busyIndicatorMetadata);\n\t}\n\n\tstatic enrichBusyIndicatorMethods(UI5ElementPrototype: typeof OpenUI5Element.prototype) {\n\t\tObject.defineProperties(UI5ElementPrototype, {\n\t\t\t\"__redirectFocus\": { value: true, writable: true },\n\t\t\t\"__suppressFocusBack\": {\n\t\t\t\tget() {\n\t\t\t\t\treturn {\n\t\t\t\t\t\thandleEvent: (e: KeyboardEvent) => {\n\t\t\t\t\t\t\tif (isTabPrevious(e)) {\n\t\t\t\t\t\t\t\tconst beforeElem = this.shadowRoot.querySelector(\"[busy-indicator-before-span]\");\n\t\t\t\t\t\t\t\tthis.__redirectFocus = false;\n\t\t\t\t\t\t\t\tbeforeElem.focus();\n\t\t\t\t\t\t\t\tthis.__redirectFocus = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcapture: true,\n\t\t\t\t\t\tpassive: false,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"isOpenUI5Component\": { get: () => { return true; } },\n\t\t});\n\n\t\tUI5ElementPrototype.__suppressFocusIn = function handleFocusIn() {\n\t\t\tconst busyIndicator = this.shadowRoot?.querySelector(\"[busy-indicator]\") as HTMLElement;\n\t\t\tif (busyIndicator && this.__redirectFocus) {\n\t\t\t\tbusyIndicator.focus();\n\t\t\t}\n\t\t};\n\n\t\tUI5ElementPrototype.getDomRef = function getDomRef() {\n\t\t\t// If a component set _getRealDomRef to its children, use the return value of this function\n\t\t\tif (typeof this._getRealDomRef === \"function\") {\n\t\t\t\treturn this._getRealDomRef();\n\t\t\t}\n\n\t\t\tif (!this.shadowRoot || this.shadowRoot.children.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst children = [...this.shadowRoot.children].filter(child => ![\"link\", \"style\"].includes(child.localName));\n\n\t\t\tif (children.length !== 1) {\n\t\t\t\tconsole.warn(`The shadow DOM for ${(this.constructor as typeof UI5Element).getMetadata().getTag()} does not have a top level element, the getDomRef() method might not work as expected`); // eslint-disable-line\n\t\t\t}\n\n\t\t\tif (this.__isBusy) {\n\t\t\t\treturn children[0].querySelector(\".busy-indicator-wrapper > :not([busy-indicator-before-span]):not(.busy-indicator-overlay):not(.busy-indicator-busy-area)\") as HTMLElement;\n\t\t\t}\n\n\t\t\treturn children[0] as HTMLElement;\n\t\t};\n\t}\n\n\tstatic getBusyIndicatorStyles() {\n\t\treturn BusyIndicatorStyles;\n\t}\n}\n\nregisterFeature(\"OpenUI5Enablement\", OpenUI5Enablement);\n\nexport default OpenUI5Enablement;\n"]}
@@ -1,9 +1,17 @@
1
- import { CLDRData } from "../asset-registries/LocaleData.js";
1
+ import type { PopupInfo } from "./patchPopup.js";
2
+ import type { CLDRData } from "../asset-registries/LocaleData.js";
2
3
  import type { LegacyDateCalendarCustomizing } from "../features/LegacyDateFormats.js";
3
4
  declare class OpenUI5Support {
5
+ static enablePolling: boolean;
4
6
  static isAtLeastVersion116(): boolean;
5
7
  static isOpenUI5Detected(): boolean;
6
- static init(): Promise<void>;
8
+ static initPromise?: Promise<void>;
9
+ /**
10
+ * Important - if OpenUI5 is loaded after UI5 Web Components, configuration is not synchronized and it's up to the app to initialize OpenUI5 with the same settings as UI5 Web Components for consistency.
11
+ */
12
+ static OpenUI5DelayedInit: () => Promise<void>;
13
+ static awaitForOpenUI5(): void;
14
+ static init(): void | Promise<void>;
7
15
  static getConfigurationSettingsObject(): {
8
16
  animationMode?: undefined;
9
17
  language?: undefined;
@@ -17,9 +25,9 @@ declare class OpenUI5Support {
17
25
  animationMode: string;
18
26
  language: string;
19
27
  theme: string;
20
- themeRoot: string;
28
+ themeRoot: string | undefined;
21
29
  rtl: string;
22
- timezone: string;
30
+ timezone: string | undefined;
23
31
  calendarType: string;
24
32
  formatSettings: {
25
33
  firstDayOfWeek: number | undefined;
@@ -28,9 +36,10 @@ declare class OpenUI5Support {
28
36
  };
29
37
  static getLocaleDataObject(): CLDRData | undefined;
30
38
  static _listenForThemeChange(): void;
31
- static attachListeners(): void;
39
+ static attachListeners(): boolean;
32
40
  static cssVariablesLoaded(): boolean | undefined;
33
- static getNextZIndex(): number | undefined;
34
- static setInitialZIndex(): void;
41
+ static addOpenedPopup(popupInfo: PopupInfo): void;
42
+ static removeOpenedPopup(popup: object): void;
43
+ static getTopmostPopup(): object | null;
35
44
  }
36
45
  export default OpenUI5Support;
@@ -1,8 +1,15 @@
1
+ var _a;
2
+ import patchPatcher from "./patchPatcher.js";
3
+ import { patchPopup, addOpenedPopup, removeOpenedPopup, getTopmostPopup, } from "./patchPopup.js";
1
4
  import { registerFeature } from "../FeaturesRegistry.js";
2
5
  import { setTheme } from "../config/Theme.js";
3
- import { getCurrentZIndex } from "../util/PopupUtils.js";
6
+ import { secondaryBoot } from "../Boot.js";
7
+ const OPENUI5_POLLING_INTERVAL = 100;
4
8
  class OpenUI5Support {
5
9
  static isAtLeastVersion116() {
10
+ if (!window.sap.ui.version) {
11
+ return true; // sap.ui.version will be removed in newer OpenUI5 versions
12
+ }
6
13
  const version = window.sap.ui.version;
7
14
  const parts = version.split(".");
8
15
  if (!parts || parts.length < 2) {
@@ -13,44 +20,63 @@ class OpenUI5Support {
13
20
  static isOpenUI5Detected() {
14
21
  return typeof window.sap?.ui?.require === "function";
15
22
  }
23
+ static awaitForOpenUI5() {
24
+ if (_a.enablePolling) {
25
+ const interval = setInterval(() => {
26
+ if (_a.isOpenUI5Detected()) {
27
+ clearInterval(interval);
28
+ _a.OpenUI5DelayedInit();
29
+ }
30
+ }, OPENUI5_POLLING_INTERVAL);
31
+ }
32
+ else {
33
+ document.addEventListener("sap-ui-core-ready", () => {
34
+ _a.OpenUI5DelayedInit();
35
+ });
36
+ }
37
+ }
16
38
  static init() {
17
- if (!OpenUI5Support.isOpenUI5Detected()) {
18
- return Promise.resolve();
39
+ if (!_a.isOpenUI5Detected()) {
40
+ return _a.awaitForOpenUI5();
19
41
  }
20
- return new Promise(resolve => {
21
- window.sap.ui.require(["sap/ui/core/Core"], async (Core) => {
22
- const callback = () => {
23
- let deps = ["sap/ui/core/Popup", "sap/ui/core/LocaleData"];
24
- if (OpenUI5Support.isAtLeastVersion116()) { // for versions since 1.116.0 and onward, use the modular core
25
- deps = [
26
- ...deps,
27
- "sap/base/i18n/Formatting",
28
- "sap/base/i18n/Localization",
29
- "sap/ui/core/ControlBehavior",
30
- "sap/ui/core/Theming",
31
- "sap/ui/core/date/CalendarUtils",
32
- ];
42
+ if (!_a.initPromise) {
43
+ _a.initPromise = new Promise(resolve => {
44
+ window.sap.ui.require(["sap/ui/core/Core"], async (Core) => {
45
+ const callback = () => {
46
+ let deps = ["sap/ui/core/Popup", "sap/m/Dialog", "sap/ui/core/Patcher", "sap/ui/core/LocaleData"];
47
+ if (_a.isAtLeastVersion116()) { // for versions since 1.116.0 and onward, use the modular core
48
+ deps = [
49
+ ...deps,
50
+ "sap/base/i18n/Formatting",
51
+ "sap/base/i18n/Localization",
52
+ "sap/ui/core/ControlBehavior",
53
+ "sap/ui/core/Theming",
54
+ "sap/ui/core/date/CalendarUtils",
55
+ ];
56
+ }
57
+ window.sap.ui.require(deps, (Popup, Dialog, Patcher) => {
58
+ patchPatcher(Patcher);
59
+ patchPopup(Popup, Dialog);
60
+ resolve();
61
+ });
62
+ };
63
+ if (_a.isAtLeastVersion116()) {
64
+ await Core.ready();
65
+ callback();
33
66
  }
34
- window.sap.ui.require(deps, (Popup) => {
35
- Popup.setInitialZIndex(getCurrentZIndex());
36
- resolve();
37
- });
38
- };
39
- if (OpenUI5Support.isAtLeastVersion116()) {
40
- await Core.ready();
41
- callback();
42
- }
43
- else {
44
- Core.attachInit(callback);
45
- }
67
+ else {
68
+ Core.attachInit(callback);
69
+ }
70
+ });
46
71
  });
47
- });
72
+ }
73
+ return _a.initPromise;
48
74
  }
49
75
  static getConfigurationSettingsObject() {
50
- if (!OpenUI5Support.isOpenUI5Detected()) {
76
+ if (!_a.isOpenUI5Detected()) {
51
77
  return {};
52
78
  }
53
- if (OpenUI5Support.isAtLeastVersion116()) {
79
+ if (_a.isAtLeastVersion116()) {
54
80
  const ControlBehavior = window.sap.ui.require("sap/ui/core/ControlBehavior");
55
81
  const Localization = window.sap.ui.require("sap/base/i18n/Localization");
56
82
  const Theming = window.sap.ui.require("sap/ui/core/Theming");
@@ -66,7 +92,8 @@ class OpenUI5Support {
66
92
  calendarType: Formatting.getCalendarType(),
67
93
  formatSettings: {
68
94
  firstDayOfWeek: CalendarUtils.getWeekConfigurationValues().firstDayOfWeek,
69
- legacyDateCalendarCustomizing: Formatting.getLegacyDateCalendarCustomizing(),
95
+ legacyDateCalendarCustomizing: Formatting.getCustomIslamicCalendarData?.()
96
+ ?? Formatting.getLegacyDateCalendarCustomizing?.(),
70
97
  },
71
98
  };
72
99
  }
@@ -77,9 +104,9 @@ class OpenUI5Support {
77
104
  animationMode: config.getAnimationMode(),
78
105
  language: config.getLanguage(),
79
106
  theme: config.getTheme(),
80
- themeRoot: config.getThemeRoot(),
107
+ themeRoot: typeof config.getThemeRoot === "function" ? config.getThemeRoot() : undefined,
81
108
  rtl: config.getRTL(),
82
- timezone: config.getTimezone(),
109
+ timezone: typeof config.getTimezone === "function" ? config.getTimezone() : undefined,
83
110
  calendarType: config.getCalendarType(),
84
111
  formatSettings: {
85
112
  firstDayOfWeek: LocaleData ? LocaleData.getInstance(config.getLocale()).getFirstDayOfWeek() : undefined,
@@ -88,11 +115,11 @@ class OpenUI5Support {
88
115
  };
89
116
  }
90
117
  static getLocaleDataObject() {
91
- if (!OpenUI5Support.isOpenUI5Detected()) {
118
+ if (!_a.isOpenUI5Detected()) {
92
119
  return;
93
120
  }
94
121
  const LocaleData = window.sap.ui.require("sap/ui/core/LocaleData");
95
- if (OpenUI5Support.isAtLeastVersion116()) {
122
+ if (_a.isAtLeastVersion116()) {
96
123
  const Localization = window.sap.ui.require("sap/base/i18n/Localization");
97
124
  return LocaleData.getInstance(Localization.getLanguageTag())._get();
98
125
  }
@@ -101,7 +128,7 @@ class OpenUI5Support {
101
128
  return LocaleData.getInstance(config.getLocale())._get();
102
129
  }
103
130
  static _listenForThemeChange() {
104
- if (OpenUI5Support.isAtLeastVersion116()) {
131
+ if (_a.isAtLeastVersion116()) {
105
132
  const Theming = window.sap.ui.require("sap/ui/core/Theming");
106
133
  Theming.attachApplied(() => {
107
134
  setTheme(Theming.getTheme());
@@ -116,39 +143,42 @@ class OpenUI5Support {
116
143
  }
117
144
  }
118
145
  static attachListeners() {
119
- if (!OpenUI5Support.isOpenUI5Detected()) {
120
- return;
146
+ if (!_a.isOpenUI5Detected()) {
147
+ return false;
121
148
  }
122
- OpenUI5Support._listenForThemeChange();
149
+ _a._listenForThemeChange();
150
+ return true;
123
151
  }
124
152
  static cssVariablesLoaded() {
125
- if (!OpenUI5Support.isOpenUI5Detected()) {
153
+ if (!_a.isOpenUI5Detected()) {
126
154
  return;
127
155
  }
128
156
  const link = [...document.head.children].find(el => el.id === "sap-ui-theme-sap.ui.core"); // more reliable than querySelector early
129
157
  if (!link) {
130
158
  return false;
131
159
  }
132
- return !!link.href.match(/\/css(-|_)variables\.css/);
160
+ // The file name is "css_variables.css" until 1.127 and "library.css" from 1.127 onwards
161
+ return !!link.href.match(/\/css(-|_)variables\.css/) || !!link.href.match(/\/library\.css/);
133
162
  }
134
- static getNextZIndex() {
135
- if (!OpenUI5Support.isOpenUI5Detected()) {
136
- return;
137
- }
138
- const Popup = window.sap.ui.require("sap/ui/core/Popup");
139
- if (!Popup) {
140
- console.warn(`The OpenUI5Support feature hasn't been initialized properly. Make sure you import the "@ui5/webcomponents-base/dist/features/OpenUI5Support.js" module before all components' modules.`); // eslint-disable-line
141
- }
142
- return Popup.getNextZIndex();
163
+ static addOpenedPopup(popupInfo) {
164
+ addOpenedPopup(popupInfo);
143
165
  }
144
- static setInitialZIndex() {
145
- if (!OpenUI5Support.isOpenUI5Detected()) {
146
- return;
147
- }
148
- const Popup = window.sap.ui.require("sap/ui/core/Popup");
149
- Popup.setInitialZIndex(getCurrentZIndex());
166
+ static removeOpenedPopup(popup) {
167
+ removeOpenedPopup(popup);
168
+ }
169
+ static getTopmostPopup() {
170
+ return getTopmostPopup();
150
171
  }
151
172
  }
173
+ _a = OpenUI5Support;
174
+ OpenUI5Support.enablePolling = false; // set to true for old OpenUI5 versions
175
+ /**
176
+ * Important - if OpenUI5 is loaded after UI5 Web Components, configuration is not synchronized and it's up to the app to initialize OpenUI5 with the same settings as UI5 Web Components for consistency.
177
+ */
178
+ OpenUI5Support.OpenUI5DelayedInit = async () => {
179
+ _a.init(); // This ensures patchPopover and patchPatcher are called; and from this point OpenUI5 CSS vars start being detected
180
+ await secondaryBoot(); // Re-run the parts of boot that were skipped due to OpenUI5 not having been loaded
181
+ };
152
182
  registerFeature("OpenUI5Support", OpenUI5Support);
153
183
  export default OpenUI5Support;
154
184
  //# sourceMappingURL=OpenUI5Support.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpenUI5Support.js","sourceRoot":"","sources":["../../src/features/OpenUI5Support.ts"],"names":[],"mappings":"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","sourcesContent":["import { registerFeature } from \"../FeaturesRegistry.js\";\nimport { setTheme } from \"../config/Theme.js\";\nimport { getCurrentZIndex } from \"../util/PopupUtils.js\";\nimport { CLDRData } from \"../asset-registries/LocaleData.js\";\nimport type { LegacyDateCalendarCustomizing } from \"../features/LegacyDateFormats.js\";\n\ntype OpenUI5Popup = {\n\tsetInitialZIndex: (zIndex: number) => void,\n\tgetNextZIndex: () => number,\n};\n\ntype OpenUI5Core = {\n\tattachInit: (callback: () => void) => void,\n\tready: () => Promise<void>,\n\tattachThemeChanged: (callback: () => void) => void,\n\tgetConfiguration: () => OpenUI5CoreConfiguration,\n};\n\ntype OpenUI5CoreConfiguration = {\n\tgetAnimationMode: () => string,\n\tgetLanguage: () => string,\n\tgetTheme: () => string,\n\tgetThemeRoot: () => string,\n\tgetRTL: () => string,\n\tgetTimezone: () => string,\n\tgetCalendarType: () => string,\n\tgetLocale: () => string,\n\tgetFormatSettings: () => {\n\t\tgetLegacyDateCalendarCustomizing: () => LegacyDateCalendarCustomizing;\n\t}\n};\n\ntype ControlBehavior = {\n\tgetAnimationMode: () => string,\n}\n\ntype Localization = {\n\tgetLanguage: () => string,\n\tgetLanguageTag: () => string,\n\tgetRTL: () => string,\n\tgetTimezone: () => string,\n}\n\ntype LocaleData = {\n\tgetInstance: (locale: string) => Locale,\n}\n\ntype Theming = {\n\tgetThemeRoot: () => string,\n\tgetTheme: () => string,\n\tattachApplied: (callback: () => void) => void,\n}\n\ntype Formatting = {\n\tgetCalendarType: () => string,\n\tgetLegacyDateCalendarCustomizing: () => LegacyDateCalendarCustomizing,\n}\n\ntype CalendarUtils = {\n\tgetWeekConfigurationValues: () => {\n\t\tfirstDayOfWeek: number | undefined,\n\t},\n}\n\ntype Locale = {\n\tgetFirstDayOfWeek: () => number,\n\t_get: () => CLDRData,\n};\n\nclass OpenUI5Support {\n\tstatic isAtLeastVersion116() {\n\t\tconst version = window.sap.ui!.version as string;\n\t\tconst parts = version.split(\".\");\n\t\tif (!parts || parts.length < 2) {\n\t\t\treturn false;\n\t\t}\n\t\treturn parseInt(parts[0]) > 1 || parseInt(parts[1]) >= 116;\n\t}\n\n\tstatic isOpenUI5Detected() {\n\t\treturn typeof window.sap?.ui?.require === \"function\";\n\t}\n\n\tstatic init() {\n\t\tif (!OpenUI5Support.isOpenUI5Detected()) {\n\t\t\treturn Promise.resolve();\n\t\t}\n\n\t\treturn new Promise<void>(resolve => {\n\t\t\twindow.sap.ui.require([\"sap/ui/core/Core\"], async (Core: OpenUI5Core) => {\n\t\t\t\tconst callback = () => {\n\t\t\t\t\tlet deps: Array<string> = [\"sap/ui/core/Popup\", \"sap/ui/core/LocaleData\"];\n\t\t\t\t\tif (OpenUI5Support.isAtLeastVersion116()) { // for versions since 1.116.0 and onward, use the modular core\n\t\t\t\t\t\tdeps = [\n\t\t\t\t\t\t\t...deps,\n\t\t\t\t\t\t\t\"sap/base/i18n/Formatting\",\n\t\t\t\t\t\t\t\"sap/base/i18n/Localization\",\n\t\t\t\t\t\t\t\"sap/ui/core/ControlBehavior\",\n\t\t\t\t\t\t\t\"sap/ui/core/Theming\",\n\t\t\t\t\t\t\t\"sap/ui/core/date/CalendarUtils\",\n\t\t\t\t\t\t];\n\t\t\t\t\t}\n\t\t\t\t\twindow.sap.ui.require(deps, (Popup: OpenUI5Popup) => {\n\t\t\t\t\t\tPopup.setInitialZIndex(getCurrentZIndex());\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t\tif (OpenUI5Support.isAtLeastVersion116()) {\n\t\t\t\t\tawait Core.ready();\n\t\t\t\t\tcallback();\n\t\t\t\t} else {\n\t\t\t\t\tCore.attachInit(callback);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tstatic getConfigurationSettingsObject() {\n\t\tif (!OpenUI5Support.isOpenUI5Detected()) {\n\t\t\treturn {};\n\t\t}\n\n\t\tif (OpenUI5Support.isAtLeastVersion116()) {\n\t\t\tconst ControlBehavior = window.sap.ui.require(\"sap/ui/core/ControlBehavior\") as ControlBehavior;\n\t\t\tconst Localization = window.sap.ui.require(\"sap/base/i18n/Localization\") as Localization;\n\t\t\tconst Theming = window.sap.ui.require(\"sap/ui/core/Theming\") as Theming;\n\t\t\tconst Formatting = window.sap.ui.require(\"sap/base/i18n/Formatting\") as Formatting;\n\t\t\tconst CalendarUtils = window.sap.ui.require(\"sap/ui/core/date/CalendarUtils\") as CalendarUtils;\n\n\t\t\treturn {\n\t\t\t\tanimationMode: ControlBehavior.getAnimationMode(),\n\t\t\t\tlanguage: Localization.getLanguage(),\n\t\t\t\ttheme: Theming.getTheme(),\n\t\t\t\tthemeRoot: Theming.getThemeRoot(),\n\t\t\t\trtl: Localization.getRTL(),\n\t\t\t\ttimezone: Localization.getTimezone(),\n\t\t\t\tcalendarType: Formatting.getCalendarType(),\n\t\t\t\tformatSettings: {\n\t\t\t\t\tfirstDayOfWeek: CalendarUtils.getWeekConfigurationValues().firstDayOfWeek,\n\t\t\t\t\tlegacyDateCalendarCustomizing: Formatting.getLegacyDateCalendarCustomizing(),\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tconst Core = window.sap.ui.require(\"sap/ui/core/Core\") as OpenUI5Core;\n\t\tconst config = Core.getConfiguration();\n\t\tconst LocaleData = window.sap.ui.require(\"sap/ui/core/LocaleData\") as LocaleData;\n\n\t\treturn {\n\t\t\tanimationMode: config.getAnimationMode(),\n\t\t\tlanguage: config.getLanguage(),\n\t\t\ttheme: config.getTheme(),\n\t\t\tthemeRoot: config.getThemeRoot(),\n\t\t\trtl: config.getRTL(),\n\t\t\ttimezone: config.getTimezone(),\n\t\t\tcalendarType: config.getCalendarType(),\n\t\t\tformatSettings: {\n\t\t\t\tfirstDayOfWeek: LocaleData ? LocaleData.getInstance(config.getLocale()).getFirstDayOfWeek() : undefined,\n\t\t\t\tlegacyDateCalendarCustomizing: config.getFormatSettings().getLegacyDateCalendarCustomizing(),\n\t\t\t},\n\t\t};\n\t}\n\n\tstatic getLocaleDataObject() {\n\t\tif (!OpenUI5Support.isOpenUI5Detected()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst LocaleData = window.sap.ui.require(\"sap/ui/core/LocaleData\") as LocaleData;\n\n\t\tif (OpenUI5Support.isAtLeastVersion116()) {\n\t\t\tconst Localization = window.sap.ui.require(\"sap/base/i18n/Localization\") as Localization;\n\t\t\treturn LocaleData.getInstance(Localization.getLanguageTag())._get();\n\t\t}\n\n\t\tconst Core = window.sap.ui.require(\"sap/ui/core/Core\") as OpenUI5Core;\n\t\tconst config = Core.getConfiguration();\n\t\treturn LocaleData.getInstance(config.getLocale())._get();\n\t}\n\n\tstatic _listenForThemeChange() {\n\t\tif (OpenUI5Support.isAtLeastVersion116()) {\n\t\t\tconst Theming: Theming = window.sap.ui.require(\"sap/ui/core/Theming\");\n\t\t\tTheming.attachApplied(() => {\n\t\t\t\tsetTheme(Theming.getTheme());\n\t\t\t});\n\t\t} else {\n\t\t\tconst Core = window.sap.ui.require(\"sap/ui/core/Core\") as OpenUI5Core;\n\t\t\tconst config = Core.getConfiguration();\n\t\t\tCore.attachThemeChanged(() => {\n\t\t\t\tsetTheme(config.getTheme());\n\t\t\t});\n\t\t}\n\t}\n\n\tstatic attachListeners() {\n\t\tif (!OpenUI5Support.isOpenUI5Detected()) {\n\t\t\treturn;\n\t\t}\n\n\t\tOpenUI5Support._listenForThemeChange();\n\t}\n\n\tstatic cssVariablesLoaded() {\n\t\tif (!OpenUI5Support.isOpenUI5Detected()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst link = [...document.head.children].find(el => el.id === \"sap-ui-theme-sap.ui.core\") as HTMLLinkElement; // more reliable than querySelector early\n\t\tif (!link) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn !!link.href.match(/\\/css(-|_)variables\\.css/);\n\t}\n\n\tstatic getNextZIndex() {\n\t\tif (!OpenUI5Support.isOpenUI5Detected()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst Popup = window.sap.ui.require(\"sap/ui/core/Popup\") as OpenUI5Popup;\n\n\t\tif (!Popup) {\n\t\t\tconsole.warn(`The OpenUI5Support feature hasn't been initialized properly. Make sure you import the \"@ui5/webcomponents-base/dist/features/OpenUI5Support.js\" module before all components' modules.`); // eslint-disable-line\n\t\t}\n\n\t\treturn Popup.getNextZIndex();\n\t}\n\n\tstatic setInitialZIndex() {\n\t\tif (!OpenUI5Support.isOpenUI5Detected()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst Popup = window.sap.ui.require(\"sap/ui/core/Popup\") as OpenUI5Popup;\n\t\tPopup.setInitialZIndex(getCurrentZIndex());\n\t}\n}\n\nregisterFeature(\"OpenUI5Support\", OpenUI5Support);\n\nexport default OpenUI5Support;\n"]}
1
+ {"version":3,"file":"OpenUI5Support.js","sourceRoot":"","sources":["../../src/features/OpenUI5Support.ts"],"names":[],"mappings":"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","sourcesContent":["import patchPatcher from \"./patchPatcher.js\";\nimport type { OpenUI5Patcher } from \"./patchPatcher.js\";\nimport {\n\tpatchPopup,\n\taddOpenedPopup,\n\tremoveOpenedPopup,\n\tgetTopmostPopup,\n} from \"./patchPopup.js\";\nimport type { OpenUI5PopupClass, OpenUI5DialogClass, PopupInfo } from \"./patchPopup.js\";\nimport { registerFeature } from \"../FeaturesRegistry.js\";\nimport { setTheme } from \"../config/Theme.js\";\nimport type { CLDRData } from \"../asset-registries/LocaleData.js\";\nimport type { LegacyDateCalendarCustomizing } from \"../features/LegacyDateFormats.js\";\nimport { secondaryBoot } from \"../Boot.js\";\n\ntype OpenUI5Core = {\n\tattachInit: (callback: () => void) => void,\n\tready: () => Promise<void>,\n\tattachThemeChanged: (callback: () => void) => void,\n\tgetConfiguration: () => OpenUI5CoreConfiguration,\n};\n\ntype OpenUI5CoreConfiguration = {\n\tgetAnimationMode: () => string,\n\tgetLanguage: () => string,\n\tgetTheme: () => string,\n\tgetThemeRoot: () => string,\n\tgetRTL: () => string,\n\tgetTimezone: () => string,\n\tgetCalendarType: () => string,\n\tgetLocale: () => string,\n\tgetFormatSettings: () => {\n\t\tgetLegacyDateCalendarCustomizing: () => LegacyDateCalendarCustomizing;\n\t}\n};\n\ntype ControlBehavior = {\n\tgetAnimationMode: () => string,\n}\n\ntype Localization = {\n\tgetLanguage: () => string,\n\tgetLanguageTag: () => string,\n\tgetRTL: () => string,\n\tgetTimezone: () => string,\n}\n\ntype LocaleData = {\n\tgetInstance: (locale: string) => Locale,\n}\n\ntype Theming = {\n\tgetThemeRoot: () => string,\n\tgetTheme: () => string,\n\tattachApplied: (callback: () => void) => void,\n}\n\ntype Formatting = {\n\tgetCalendarType: () => string,\n\tgetLegacyDateCalendarCustomizing: () => LegacyDateCalendarCustomizing,\n\tgetCustomIslamicCalendarData?: () => LegacyDateCalendarCustomizing,\n}\n\ntype CalendarUtils = {\n\tgetWeekConfigurationValues: () => {\n\t\tfirstDayOfWeek: number | undefined,\n\t},\n}\n\ntype Locale = {\n\tgetFirstDayOfWeek: () => number,\n\t_get: () => CLDRData,\n};\n\nconst OPENUI5_POLLING_INTERVAL = 100;\n\nclass OpenUI5Support {\n\tstatic enablePolling = false; // set to true for old OpenUI5 versions\n\n\tstatic isAtLeastVersion116() {\n\t\tif (!window.sap.ui!.version) {\n\t\t\treturn true; // sap.ui.version will be removed in newer OpenUI5 versions\n\t\t}\n\t\tconst version = window.sap.ui!.version as string;\n\t\tconst parts = version.split(\".\");\n\t\tif (!parts || parts.length < 2) {\n\t\t\treturn false;\n\t\t}\n\t\treturn parseInt(parts[0]) > 1 || parseInt(parts[1]) >= 116;\n\t}\n\n\tstatic isOpenUI5Detected() {\n\t\treturn typeof window.sap?.ui?.require === \"function\";\n\t}\n\n\tstatic initPromise?: Promise<void>;\n\n\t/**\n\t * Important - if OpenUI5 is loaded after UI5 Web Components, configuration is not synchronized and it's up to the app to initialize OpenUI5 with the same settings as UI5 Web Components for consistency.\n\t */\n\tstatic OpenUI5DelayedInit = async () => {\n\t\tOpenUI5Support.init(); // This ensures patchPopover and patchPatcher are called; and from this point OpenUI5 CSS vars start being detected\n\t\tawait secondaryBoot(); // Re-run the parts of boot that were skipped due to OpenUI5 not having been loaded\n\t}\n\n\tstatic awaitForOpenUI5() {\n\t\tif (OpenUI5Support.enablePolling) {\n\t\t\tconst interval = setInterval(() => {\n\t\t\t\tif (OpenUI5Support.isOpenUI5Detected()) {\n\t\t\t\t\tclearInterval(interval);\n\t\t\t\t\tOpenUI5Support.OpenUI5DelayedInit();\n\t\t\t\t}\n\t\t\t}, OPENUI5_POLLING_INTERVAL);\n\t\t} else {\n\t\t\tdocument.addEventListener(\"sap-ui-core-ready\", () => {\n\t\t\t\tOpenUI5Support.OpenUI5DelayedInit();\n\t\t\t});\n\t\t}\n\t}\n\n\tstatic init() {\n\t\tif (!OpenUI5Support.isOpenUI5Detected()) {\n\t\t\treturn OpenUI5Support.awaitForOpenUI5();\n\t\t}\n\n\t\tif (!OpenUI5Support.initPromise) {\n\t\t\tOpenUI5Support.initPromise = new Promise<void>(resolve => {\n\t\t\t\twindow.sap.ui.require([\"sap/ui/core/Core\"], async (Core: OpenUI5Core) => {\n\t\t\t\t\tconst callback = () => {\n\t\t\t\t\t\tlet deps: Array<string> = [\"sap/ui/core/Popup\", \"sap/m/Dialog\", \"sap/ui/core/Patcher\", \"sap/ui/core/LocaleData\"];\n\t\t\t\t\t\tif (OpenUI5Support.isAtLeastVersion116()) { // for versions since 1.116.0 and onward, use the modular core\n\t\t\t\t\t\t\tdeps = [\n\t\t\t\t\t\t\t\t...deps,\n\t\t\t\t\t\t\t\t\"sap/base/i18n/Formatting\",\n\t\t\t\t\t\t\t\t\"sap/base/i18n/Localization\",\n\t\t\t\t\t\t\t\t\"sap/ui/core/ControlBehavior\",\n\t\t\t\t\t\t\t\t\"sap/ui/core/Theming\",\n\t\t\t\t\t\t\t\t\"sap/ui/core/date/CalendarUtils\",\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t}\n\t\t\t\t\t\twindow.sap.ui.require(deps, (Popup: OpenUI5PopupClass, Dialog: OpenUI5DialogClass, Patcher: OpenUI5Patcher) => {\n\t\t\t\t\t\t\tpatchPatcher(Patcher);\n\t\t\t\t\t\t\tpatchPopup(Popup, Dialog);\n\t\t\t\t\t\t\tresolve();\n\t\t\t\t\t\t});\n\t\t\t\t\t};\n\t\t\t\t\tif (OpenUI5Support.isAtLeastVersion116()) {\n\t\t\t\t\t\tawait Core.ready();\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tCore.attachInit(callback);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\treturn OpenUI5Support.initPromise;\n\t}\n\n\tstatic getConfigurationSettingsObject() {\n\t\tif (!OpenUI5Support.isOpenUI5Detected()) {\n\t\t\treturn {};\n\t\t}\n\n\t\tif (OpenUI5Support.isAtLeastVersion116()) {\n\t\t\tconst ControlBehavior = window.sap.ui.require(\"sap/ui/core/ControlBehavior\") as ControlBehavior;\n\t\t\tconst Localization = window.sap.ui.require(\"sap/base/i18n/Localization\") as Localization;\n\t\t\tconst Theming = window.sap.ui.require(\"sap/ui/core/Theming\") as Theming;\n\t\t\tconst Formatting = window.sap.ui.require(\"sap/base/i18n/Formatting\") as Formatting;\n\t\t\tconst CalendarUtils = window.sap.ui.require(\"sap/ui/core/date/CalendarUtils\") as CalendarUtils;\n\n\t\t\treturn {\n\t\t\t\tanimationMode: ControlBehavior.getAnimationMode(),\n\t\t\t\tlanguage: Localization.getLanguage(),\n\t\t\t\ttheme: Theming.getTheme(),\n\t\t\t\tthemeRoot: Theming.getThemeRoot(),\n\t\t\t\trtl: Localization.getRTL(),\n\t\t\t\ttimezone: Localization.getTimezone(),\n\t\t\t\tcalendarType: Formatting.getCalendarType(),\n\t\t\t\tformatSettings: {\n\t\t\t\t\tfirstDayOfWeek: CalendarUtils.getWeekConfigurationValues().firstDayOfWeek,\n\t\t\t\t\tlegacyDateCalendarCustomizing: Formatting.getCustomIslamicCalendarData?.()\n\t\t\t\t\t\t?? Formatting.getLegacyDateCalendarCustomizing?.(),\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tconst Core = window.sap.ui.require(\"sap/ui/core/Core\") as OpenUI5Core;\n\t\tconst config = Core.getConfiguration();\n\t\tconst LocaleData = window.sap.ui.require(\"sap/ui/core/LocaleData\") as LocaleData;\n\n\t\treturn {\n\t\t\tanimationMode: config.getAnimationMode(),\n\t\t\tlanguage: config.getLanguage(),\n\t\t\ttheme: config.getTheme(),\n\t\t\tthemeRoot: typeof config.getThemeRoot === \"function\" ? config.getThemeRoot() : undefined,\n\t\t\trtl: config.getRTL(),\n\t\t\ttimezone: typeof config.getTimezone === \"function\" ? config.getTimezone() : undefined,\n\t\t\tcalendarType: config.getCalendarType(),\n\t\t\tformatSettings: {\n\t\t\t\tfirstDayOfWeek: LocaleData ? LocaleData.getInstance(config.getLocale()).getFirstDayOfWeek() : undefined,\n\t\t\t\tlegacyDateCalendarCustomizing: config.getFormatSettings().getLegacyDateCalendarCustomizing(),\n\t\t\t},\n\t\t};\n\t}\n\n\tstatic getLocaleDataObject() {\n\t\tif (!OpenUI5Support.isOpenUI5Detected()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst LocaleData = window.sap.ui.require(\"sap/ui/core/LocaleData\") as LocaleData;\n\n\t\tif (OpenUI5Support.isAtLeastVersion116()) {\n\t\t\tconst Localization = window.sap.ui.require(\"sap/base/i18n/Localization\") as Localization;\n\t\t\treturn LocaleData.getInstance(Localization.getLanguageTag())._get();\n\t\t}\n\n\t\tconst Core = window.sap.ui.require(\"sap/ui/core/Core\") as OpenUI5Core;\n\t\tconst config = Core.getConfiguration();\n\t\treturn LocaleData.getInstance(config.getLocale())._get();\n\t}\n\n\tstatic _listenForThemeChange() {\n\t\tif (OpenUI5Support.isAtLeastVersion116()) {\n\t\t\tconst Theming: Theming = window.sap.ui.require(\"sap/ui/core/Theming\");\n\t\t\tTheming.attachApplied(() => {\n\t\t\t\tsetTheme(Theming.getTheme());\n\t\t\t});\n\t\t} else {\n\t\t\tconst Core = window.sap.ui.require(\"sap/ui/core/Core\") as OpenUI5Core;\n\t\t\tconst config = Core.getConfiguration();\n\t\t\tCore.attachThemeChanged(() => {\n\t\t\t\tsetTheme(config.getTheme());\n\t\t\t});\n\t\t}\n\t}\n\n\tstatic attachListeners() {\n\t\tif (!OpenUI5Support.isOpenUI5Detected()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tOpenUI5Support._listenForThemeChange();\n\t\treturn true;\n\t}\n\n\tstatic cssVariablesLoaded() {\n\t\tif (!OpenUI5Support.isOpenUI5Detected()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst link = [...document.head.children].find(el => el.id === \"sap-ui-theme-sap.ui.core\") as HTMLLinkElement; // more reliable than querySelector early\n\t\tif (!link) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// The file name is \"css_variables.css\" until 1.127 and \"library.css\" from 1.127 onwards\n\t\treturn !!link.href.match(/\\/css(-|_)variables\\.css/) || !!link.href.match(/\\/library\\.css/);\n\t}\n\n\tstatic addOpenedPopup(popupInfo: PopupInfo) {\n\t\taddOpenedPopup(popupInfo);\n\t}\n\n\tstatic removeOpenedPopup(popup: object) {\n\t\tremoveOpenedPopup(popup);\n\t}\n\n\tstatic getTopmostPopup() {\n\t\treturn getTopmostPopup();\n\t}\n}\n\nregisterFeature(\"OpenUI5Support\", OpenUI5Support);\n\nexport default OpenUI5Support;\n"]}
@@ -0,0 +1,2 @@
1
+ declare const insertOpenUI5PopupStyles: () => void;
2
+ export default insertOpenUI5PopupStyles;
@@ -0,0 +1,9 @@
1
+ import { hasStyle, createStyle } from "../ManagedStyles.js";
2
+ import openUI5PopupStyles from "../generated/css/OpenUI5PopupStyles.css.js";
3
+ const insertOpenUI5PopupStyles = () => {
4
+ if (!hasStyle("data-ui5-popup-styles")) {
5
+ createStyle(openUI5PopupStyles, "data-ui5-popup-styles");
6
+ }
7
+ };
8
+ export default insertOpenUI5PopupStyles;
9
+ //# sourceMappingURL=insertOpenUI5PopupStyles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insertOpenUI5PopupStyles.js","sourceRoot":"","sources":["../../src/features/insertOpenUI5PopupStyles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,kBAAkB,MAAM,4CAA4C,CAAC;AAE5E,MAAM,wBAAwB,GAAG,GAAG,EAAE;IACrC,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;QACxC,WAAW,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,CAAC;IAC1D,CAAC;AACF,CAAC,CAAC;AAEF,eAAe,wBAAwB,CAAC","sourcesContent":["import { hasStyle, createStyle } from \"../ManagedStyles.js\";\nimport openUI5PopupStyles from \"../generated/css/OpenUI5PopupStyles.css.js\";\n\nconst insertOpenUI5PopupStyles = () => {\n\tif (!hasStyle(\"data-ui5-popup-styles\")) {\n\t\tcreateStyle(openUI5PopupStyles, \"data-ui5-popup-styles\");\n\t}\n};\n\nexport default insertOpenUI5PopupStyles;\n"]}
@@ -0,0 +1,12 @@
1
+ type PatcherTarget = {
2
+ _mAttributes: {
3
+ [key: string]: string;
4
+ };
5
+ openEnd: () => OpenUI5Patcher;
6
+ };
7
+ type OpenUI5Patcher = {
8
+ prototype: PatcherTarget;
9
+ } | PatcherTarget;
10
+ declare const patchPatcher: (Patcher: OpenUI5Patcher) => void;
11
+ export default patchPatcher;
12
+ export type { OpenUI5Patcher };
@@ -0,0 +1,21 @@
1
+ const patchOpenEnd = (target) => {
2
+ const origOpenEnd = target.openEnd;
3
+ target.openEnd = function openEnd() {
4
+ if (this._mAttributes?.popover) {
5
+ delete this._mAttributes.popover; // The "popover" attribute will be managed externally, don't let Patcher remove it
6
+ }
7
+ return origOpenEnd.apply(this);
8
+ };
9
+ };
10
+ const patchPatcher = (Patcher) => {
11
+ // Newer version: properties are on prototype
12
+ if ("prototype" in Patcher && "openEnd" in Patcher.prototype) {
13
+ patchOpenEnd(Patcher.prototype);
14
+ }
15
+ else if ("openEnd" in Patcher) {
16
+ // Older version: properties are on constructor directly
17
+ patchOpenEnd(Patcher);
18
+ }
19
+ };
20
+ export default patchPatcher;
21
+ //# sourceMappingURL=patchPatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patchPatcher.js","sourceRoot":"","sources":["../../src/features/patchPatcher.ts"],"names":[],"mappings":"AAQA,MAAM,YAAY,GAAG,CAAC,MAAqB,EAAE,EAAE;IAC9C,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC;IACnC,MAAM,CAAC,OAAO,GAAG,SAAS,OAAO;QAChC,IAAI,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,kFAAkF;QACrH,CAAC;QACD,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,OAAuB,EAAE,EAAE;IAChD,6CAA6C;IAC7C,IAAI,WAAW,IAAI,OAAO,IAAI,SAAS,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QAC9D,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;SAAM,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;QACjC,wDAAwD;QACxD,YAAY,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;AACF,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC","sourcesContent":["type PatcherTarget = {\n\t_mAttributes: { [key: string]: string },\n\topenEnd: () => OpenUI5Patcher,\n};\n\ntype OpenUI5Patcher = { prototype: PatcherTarget } // newer versions (on prototype)\n\t| PatcherTarget; // older versions (on constructor directly)\n\nconst patchOpenEnd = (target: PatcherTarget) => {\n\tconst origOpenEnd = target.openEnd;\n\ttarget.openEnd = function openEnd() {\n\t\tif (this._mAttributes?.popover) {\n\t\t\tdelete this._mAttributes.popover; // The \"popover\" attribute will be managed externally, don't let Patcher remove it\n\t\t}\n\t\treturn origOpenEnd.apply(this);\n\t};\n};\n\nconst patchPatcher = (Patcher: OpenUI5Patcher) => {\n\t// Newer version: properties are on prototype\n\tif (\"prototype\" in Patcher && \"openEnd\" in Patcher.prototype) {\n\t\tpatchOpenEnd(Patcher.prototype);\n\t} else if (\"openEnd\" in Patcher) {\n\t\t// Older version: properties are on constructor directly\n\t\tpatchOpenEnd(Patcher);\n\t}\n};\n\nexport default patchPatcher;\nexport type { OpenUI5Patcher };\n"]}