@ui5/webcomponents-base 0.0.0-2f7664755 → 0.0.0-31ad69296

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 (531) hide show
  1. package/.eslintignore +6 -4
  2. package/.eslintrc.cjs +3 -0
  3. package/.npsrc.json +3 -0
  4. package/CHANGELOG.md +895 -0
  5. package/README.md +6 -1
  6. package/bundle.esm.js +9 -3
  7. package/config/wdio.conf.cjs +400 -0
  8. package/dist/.tsbuildinfo +1 -0
  9. package/dist/AssetRegistry.d.ts +2 -2
  10. package/dist/AssetRegistry.js +2 -2
  11. package/dist/AssetRegistry.js.map +1 -1
  12. package/dist/Boot.d.ts +6 -4
  13. package/dist/Boot.js +36 -6
  14. package/dist/Boot.js.map +1 -1
  15. package/dist/CSP.d.ts +9 -6
  16. package/dist/CSP.js +9 -6
  17. package/dist/CSP.js.map +1 -1
  18. package/dist/CustomElementsRegistry.js.map +1 -1
  19. package/dist/CustomElementsScope.d.ts +4 -4
  20. package/dist/CustomElementsScope.js +2 -2
  21. package/dist/CustomElementsScope.js.map +1 -1
  22. package/dist/CustomElementsScopeUtils.d.ts +8 -1
  23. package/dist/CustomElementsScopeUtils.js +13 -1
  24. package/dist/CustomElementsScopeUtils.js.map +1 -1
  25. package/dist/DOMObserver.js.map +1 -1
  26. package/dist/Device.d.ts +2 -1
  27. package/dist/Device.js +119 -35
  28. package/dist/Device.js.map +1 -1
  29. package/dist/EventProvider.js +1 -1
  30. package/dist/EventProvider.js.map +1 -1
  31. package/dist/FeaturesRegistry.js.map +1 -1
  32. package/dist/FontFace.js +1 -1
  33. package/dist/FontFace.js.map +1 -1
  34. package/dist/IgnoreCustomElements.d.ts +25 -0
  35. package/dist/IgnoreCustomElements.js +37 -0
  36. package/dist/IgnoreCustomElements.js.map +1 -0
  37. package/dist/InitialConfiguration.d.ts +7 -2
  38. package/dist/InitialConfiguration.js +17 -7
  39. package/dist/InitialConfiguration.js.map +1 -1
  40. package/dist/Keys.d.ts +5 -1
  41. package/dist/Keys.js +109 -106
  42. package/dist/Keys.js.map +1 -1
  43. package/dist/ManagedStyles.d.ts +5 -4
  44. package/dist/ManagedStyles.js +95 -15
  45. package/dist/ManagedStyles.js.map +1 -1
  46. package/dist/MarkedEvents.js.map +1 -1
  47. package/dist/MediaRange.d.ts +6 -12
  48. package/dist/MediaRange.js +21 -31
  49. package/dist/MediaRange.js.map +1 -1
  50. package/dist/PropertiesFileFormat.js.map +1 -1
  51. package/dist/Render.js.map +1 -1
  52. package/dist/RenderQueue.js.map +1 -1
  53. package/dist/Runtimes.js.map +1 -1
  54. package/dist/StaticArea.d.ts +3 -0
  55. package/dist/StaticArea.js +4 -3
  56. package/dist/StaticArea.js.map +1 -1
  57. package/dist/StaticAreaItem.d.ts +3 -4
  58. package/dist/StaticAreaItem.js +10 -9
  59. package/dist/StaticAreaItem.js.map +1 -1
  60. package/dist/SystemCSSVars.js.map +1 -1
  61. package/dist/Theming.js.map +1 -1
  62. package/dist/UI5Element.d.ts +54 -39
  63. package/dist/UI5Element.js +119 -68
  64. package/dist/UI5Element.js.map +1 -1
  65. package/dist/UI5ElementMetadata.d.ts +6 -13
  66. package/dist/UI5ElementMetadata.js +17 -15
  67. package/dist/UI5ElementMetadata.js.map +1 -1
  68. package/dist/animations/AnimationQueue.js.map +1 -1
  69. package/dist/animations/animate.js.map +1 -1
  70. package/dist/animations/scroll.js.map +1 -1
  71. package/dist/animations/slideDown.js.map +1 -1
  72. package/dist/animations/slideUp.js.map +1 -1
  73. package/dist/asset-registries/Icons.d.ts +22 -13
  74. package/dist/asset-registries/Icons.js +63 -31
  75. package/dist/asset-registries/Icons.js.map +1 -1
  76. package/dist/asset-registries/Illustrations.d.ts +3 -1
  77. package/dist/asset-registries/Illustrations.js +51 -20
  78. package/dist/asset-registries/Illustrations.js.map +1 -1
  79. package/dist/asset-registries/LocaleData.js +1 -1
  80. package/dist/asset-registries/LocaleData.js.map +1 -1
  81. package/dist/asset-registries/Themes.d.ts +5 -3
  82. package/dist/asset-registries/Themes.js +28 -10
  83. package/dist/asset-registries/Themes.js.map +1 -1
  84. package/dist/asset-registries/i18n.d.ts +2 -2
  85. package/dist/asset-registries/i18n.js +12 -5
  86. package/dist/asset-registries/i18n.js.map +1 -1
  87. package/dist/asset-registries/util/IconCollectionsAlias.d.ts +30 -0
  88. package/dist/asset-registries/util/IconCollectionsAlias.js +37 -0
  89. package/dist/asset-registries/util/IconCollectionsAlias.js.map +1 -0
  90. package/dist/asset-registries/util/IconCollectionsByTheme.d.ts +20 -0
  91. package/dist/asset-registries/util/IconCollectionsByTheme.js +42 -0
  92. package/dist/asset-registries/util/IconCollectionsByTheme.js.map +1 -0
  93. package/dist/asset-registries/util/getIconCollectionByTheme.d.ts +13 -0
  94. package/dist/asset-registries/util/getIconCollectionByTheme.js +29 -0
  95. package/dist/asset-registries/util/getIconCollectionByTheme.js.map +1 -0
  96. package/dist/config/AnimationMode.d.ts +2 -2
  97. package/dist/config/AnimationMode.js +1 -1
  98. package/dist/config/AnimationMode.js.map +1 -1
  99. package/dist/config/CalendarType.d.ts +8 -1
  100. package/dist/config/CalendarType.js +18 -2
  101. package/dist/config/CalendarType.js.map +1 -1
  102. package/dist/config/FormatSettings.d.ts +5 -1
  103. package/dist/config/FormatSettings.js +5 -1
  104. package/dist/config/FormatSettings.js.map +1 -1
  105. package/dist/config/Icons.d.ts +31 -21
  106. package/dist/config/Icons.js +28 -32
  107. package/dist/config/Icons.js.map +1 -1
  108. package/dist/config/Language.d.ts +11 -2
  109. package/dist/config/Language.js +19 -4
  110. package/dist/config/Language.js.map +1 -1
  111. package/dist/config/NoConflict.js +1 -0
  112. package/dist/config/NoConflict.js.map +1 -1
  113. package/dist/config/Theme.d.ts +15 -5
  114. package/dist/config/Theme.js +31 -9
  115. package/dist/config/Theme.js.map +1 -1
  116. package/dist/config/ThemeRoot.d.ts +27 -0
  117. package/dist/config/ThemeRoot.js +57 -0
  118. package/dist/config/ThemeRoot.js.map +1 -0
  119. package/dist/config/Timezone.d.ts +17 -0
  120. package/dist/config/Timezone.js +30 -0
  121. package/dist/config/Timezone.js.map +1 -0
  122. package/dist/connectToComponent.d.ts +9 -0
  123. package/dist/connectToComponent.js +59 -0
  124. package/dist/connectToComponent.js.map +1 -0
  125. package/dist/css/FontFace.css +47 -17
  126. package/dist/css/SystemCSSVars.css +0 -8
  127. package/dist/custom-elements-internal.json +2863 -0
  128. package/dist/custom-elements.json +2593 -0
  129. package/dist/decorators/customElement.d.ts +17 -2
  130. package/dist/decorators/customElement.js +25 -5
  131. package/dist/decorators/customElement.js.map +1 -1
  132. package/dist/decorators/event.d.ts +5 -2
  133. package/dist/decorators/event.js +6 -6
  134. package/dist/decorators/event.js.map +1 -1
  135. package/dist/decorators/property.js +6 -6
  136. package/dist/decorators/property.js.map +1 -1
  137. package/dist/decorators/slot.js +9 -9
  138. package/dist/decorators/slot.js.map +1 -1
  139. package/dist/decorators.d.ts +5 -0
  140. package/dist/decorators.js +6 -0
  141. package/dist/decorators.js.map +1 -0
  142. package/dist/delegate/ItemNavigation.d.ts +9 -8
  143. package/dist/delegate/ItemNavigation.js +13 -14
  144. package/dist/delegate/ItemNavigation.js.map +1 -1
  145. package/dist/delegate/ResizeHandler.d.ts +6 -7
  146. package/dist/delegate/ResizeHandler.js +11 -9
  147. package/dist/delegate/ResizeHandler.js.map +1 -1
  148. package/dist/delegate/ScrollEnablement.js +2 -2
  149. package/dist/delegate/ScrollEnablement.js.map +1 -1
  150. package/dist/features/F6Navigation.d.ts +3 -0
  151. package/dist/features/F6Navigation.js +77 -38
  152. package/dist/features/F6Navigation.js.map +1 -1
  153. package/dist/features/LegacyDateFormats.d.ts +18 -0
  154. package/dist/features/LegacyDateFormats.js +20 -0
  155. package/dist/features/LegacyDateFormats.js.map +1 -0
  156. package/dist/features/OpenUI5Element.js.map +1 -1
  157. package/dist/features/OpenUI5Enablement.d.ts +1 -1
  158. package/dist/features/OpenUI5Enablement.js.map +1 -1
  159. package/dist/features/OpenUI5Support.d.ts +16 -3
  160. package/dist/features/OpenUI5Support.js +96 -33
  161. package/dist/features/OpenUI5Support.js.map +1 -1
  162. package/dist/features/patchPopup.d.ts +10 -0
  163. package/dist/features/patchPopup.js +15 -0
  164. package/dist/features/patchPopup.js.map +1 -0
  165. package/dist/generated/AssetParameters.d.ts +6 -0
  166. package/dist/generated/AssetParameters.js +4 -9
  167. package/dist/generated/AssetParameters.js.map +1 -0
  168. package/dist/generated/VersionInfo.d.ts +10 -0
  169. package/dist/generated/VersionInfo.js +9 -8
  170. package/dist/generated/VersionInfo.js.map +1 -0
  171. package/dist/generated/css/BusyIndicator.css.js.map +1 -1
  172. package/dist/generated/css/FontFace.css.js +1 -1
  173. package/dist/generated/css/FontFace.css.js.map +1 -1
  174. package/dist/generated/css/OverrideFontFace.css.js.map +1 -1
  175. package/dist/generated/css/SystemCSSVars.css.js +1 -1
  176. package/dist/generated/css/SystemCSSVars.css.js.map +1 -1
  177. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.d.ts +4 -0
  178. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +8 -10
  179. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js.map +1 -0
  180. package/dist/getSharedResource.d.ts +1 -1
  181. package/dist/getSharedResource.js +16 -2
  182. package/dist/getSharedResource.js.map +1 -1
  183. package/dist/global.d.ts +2 -0
  184. package/dist/i18nBundle.d.ts +2 -4
  185. package/dist/i18nBundle.js +3 -5
  186. package/dist/i18nBundle.js.map +1 -1
  187. package/dist/locale/Locale.js.map +1 -1
  188. package/dist/locale/RTLAwareRegistry.d.ts +1 -1
  189. package/dist/locale/RTLAwareRegistry.js.map +1 -1
  190. package/dist/locale/applyDirection.d.ts +3 -2
  191. package/dist/locale/applyDirection.js +3 -2
  192. package/dist/locale/applyDirection.js.map +1 -1
  193. package/dist/locale/directionChange.js.map +1 -1
  194. package/dist/locale/getEffectiveDir.d.ts +1 -1
  195. package/dist/locale/getEffectiveDir.js +3 -19
  196. package/dist/locale/getEffectiveDir.js.map +1 -1
  197. package/dist/locale/getLocale.js.map +1 -1
  198. package/dist/locale/languageChange.js.map +1 -1
  199. package/dist/locale/nextFallbackLocale.js.map +1 -1
  200. package/dist/locale/normalizeLocale.js.map +1 -1
  201. package/dist/renderer/LitRenderer.d.ts +5 -5
  202. package/dist/renderer/LitRenderer.js.map +1 -1
  203. package/dist/renderer/directives/style-map.d.ts +13 -0
  204. package/dist/renderer/directives/style-map.js +59 -59
  205. package/dist/renderer/directives/style-map.js.map +1 -0
  206. package/dist/renderer/executeTemplate.js +1 -1
  207. package/dist/renderer/executeTemplate.js.map +1 -1
  208. package/dist/sap/base/Log.js +698 -188
  209. package/dist/sap/base/assert.js +28 -1
  210. package/dist/sap/base/config/MemoryConfigurationProvider.js +20 -0
  211. package/dist/sap/base/security/URLListValidator.js +253 -6
  212. package/dist/sap/base/security/encodeCSS.js +34 -8
  213. package/dist/sap/base/security/encodeXML.js +47 -17
  214. package/dist/sap/base/security/sanitizeHTML.js +35 -13
  215. package/dist/sap/base/strings/toHex.js +27 -2
  216. package/dist/sap/base/util/now.js +24 -3
  217. package/dist/sap/base/util/uid.js +27 -0
  218. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +113 -98
  219. package/dist/ssr-dom-shim.d.ts +1 -0
  220. package/dist/ssr-dom-shim.js +12 -0
  221. package/dist/ssr-dom-shim.js.map +1 -0
  222. package/dist/ssr-dom.d.ts +0 -0
  223. package/dist/ssr-dom.js +3 -0
  224. package/dist/ssr-dom.js.map +1 -0
  225. package/dist/theming/CustomStyle.js +7 -5
  226. package/dist/theming/CustomStyle.js.map +1 -1
  227. package/dist/theming/ThemeLoaded.js.map +1 -1
  228. package/dist/theming/ThemeRegistered.d.ts +4 -0
  229. package/dist/theming/ThemeRegistered.js +11 -0
  230. package/dist/theming/ThemeRegistered.js.map +1 -0
  231. package/dist/theming/applyTheme.js +8 -7
  232. package/dist/theming/applyTheme.js.map +1 -1
  233. package/dist/theming/getConstructableStyle.js.map +1 -1
  234. package/dist/theming/getEffectiveLinksHrefs.js.map +1 -1
  235. package/dist/theming/getEffectiveStyle.js.map +1 -1
  236. package/dist/theming/getStylesString.d.ts +1 -1
  237. package/dist/theming/getStylesString.js.map +1 -1
  238. package/dist/theming/getThemeDesignerTheme.js.map +1 -1
  239. package/dist/theming/preloadLinks.js.map +1 -1
  240. package/dist/thirdparty/_merge.js.map +1 -1
  241. package/dist/thirdparty/isPlainObject.js.map +1 -1
  242. package/dist/thirdparty/merge.js.map +1 -1
  243. package/dist/types/AnimationMode.d.ts +0 -8
  244. package/dist/types/AnimationMode.js +0 -8
  245. package/dist/types/AnimationMode.js.map +1 -1
  246. package/dist/types/CSSColor.d.ts +0 -5
  247. package/dist/types/CSSColor.js +0 -5
  248. package/dist/types/CSSColor.js.map +1 -1
  249. package/dist/types/CSSSize.d.ts +11 -0
  250. package/dist/types/CSSSize.js +14 -0
  251. package/dist/types/CSSSize.js.map +1 -0
  252. package/dist/types/CalendarType.d.ts +0 -9
  253. package/dist/types/CalendarType.js +0 -9
  254. package/dist/types/CalendarType.js.map +1 -1
  255. package/dist/types/DOMReference.d.ts +1 -5
  256. package/dist/types/DOMReference.js +1 -5
  257. package/dist/types/DOMReference.js.map +1 -1
  258. package/dist/types/DataType.d.ts +1 -6
  259. package/dist/types/DataType.js +1 -6
  260. package/dist/types/DataType.js.map +1 -1
  261. package/dist/types/Float.d.ts +0 -4
  262. package/dist/types/Float.js +0 -4
  263. package/dist/types/Float.js.map +1 -1
  264. package/dist/types/Integer.d.ts +0 -4
  265. package/dist/types/Integer.js +0 -4
  266. package/dist/types/Integer.js.map +1 -1
  267. package/dist/types/InvisibleMessageMode.d.ts +5 -10
  268. package/dist/types/InvisibleMessageMode.js +4 -11
  269. package/dist/types/InvisibleMessageMode.js.map +1 -1
  270. package/dist/types/ItemNavigationBehavior.d.ts +0 -6
  271. package/dist/types/ItemNavigationBehavior.js +0 -6
  272. package/dist/types/ItemNavigationBehavior.js.map +1 -1
  273. package/dist/types/MovePlacement.d.ts +20 -0
  274. package/dist/types/MovePlacement.js +22 -0
  275. package/dist/types/MovePlacement.js.map +1 -0
  276. package/dist/types/NavigationMode.d.ts +0 -8
  277. package/dist/types/NavigationMode.js +0 -8
  278. package/dist/types/NavigationMode.js.map +1 -1
  279. package/dist/types/Orientation.d.ts +16 -0
  280. package/dist/types/Orientation.js +18 -0
  281. package/dist/types/Orientation.js.map +1 -0
  282. package/dist/types/ValueState.d.ts +0 -14
  283. package/dist/types/ValueState.js +0 -14
  284. package/dist/types/ValueState.js.map +1 -1
  285. package/dist/types.d.ts +11 -1
  286. package/dist/types.js.map +1 -1
  287. package/dist/updateShadowRoot.js +13 -5
  288. package/dist/updateShadowRoot.js.map +1 -1
  289. package/dist/util/AriaLabelHelper.d.ts +10 -1
  290. package/dist/util/AriaLabelHelper.js +135 -8
  291. package/dist/util/AriaLabelHelper.js.map +1 -1
  292. package/dist/util/Caret.js.map +1 -1
  293. package/dist/util/ColorConversion.js +200 -195
  294. package/dist/util/ColorConversion.js.map +1 -1
  295. package/dist/util/FetchHelper.js.map +1 -1
  296. package/dist/util/FocusableElements.js +4 -3
  297. package/dist/util/FocusableElements.js.map +1 -1
  298. package/dist/util/HTMLSanitizer.js.map +1 -1
  299. package/dist/util/InvisibleMessage.js.map +1 -1
  300. package/dist/util/PopupUtils.js +1 -1
  301. package/dist/util/PopupUtils.js.map +1 -1
  302. package/dist/util/SlotsHelper.js.map +1 -1
  303. package/dist/util/StringHelper.js.map +1 -1
  304. package/dist/util/TabbableElements.js.map +1 -1
  305. package/dist/util/arraysAreEqual.js.map +1 -1
  306. package/dist/util/clamp.js +2 -1
  307. package/dist/util/clamp.js.map +1 -1
  308. package/dist/util/createLinkInHead.d.ts +1 -1
  309. package/dist/util/createLinkInHead.js +1 -1
  310. package/dist/util/createLinkInHead.js.map +1 -1
  311. package/dist/util/createStyleInHead.d.ts +1 -1
  312. package/dist/util/createStyleInHead.js +1 -1
  313. package/dist/util/createStyleInHead.js.map +1 -1
  314. package/dist/util/debounce.js.map +1 -1
  315. package/dist/util/detectNavigatorLanguage.d.ts +2 -2
  316. package/dist/util/detectNavigatorLanguage.js +6 -1
  317. package/dist/util/detectNavigatorLanguage.js.map +1 -1
  318. package/dist/util/dragAndDrop/DragRegistry.d.ts +12 -0
  319. package/dist/util/dragAndDrop/DragRegistry.js +66 -0
  320. package/dist/util/dragAndDrop/DragRegistry.js.map +1 -0
  321. package/dist/util/dragAndDrop/findClosestPosition.d.ts +7 -0
  322. package/dist/util/dragAndDrop/findClosestPosition.js +59 -0
  323. package/dist/util/dragAndDrop/findClosestPosition.js.map +1 -0
  324. package/dist/util/dragAndDrop/longDragOverHandler.d.ts +2 -0
  325. package/dist/util/dragAndDrop/longDragOverHandler.js +25 -0
  326. package/dist/util/dragAndDrop/longDragOverHandler.js.map +1 -0
  327. package/dist/util/escapeRegex.js.map +1 -1
  328. package/dist/util/formatMessage.js.map +1 -1
  329. package/dist/util/generateHighlightedMarkup.js.map +1 -1
  330. package/dist/util/getActiveElement.js.map +1 -1
  331. package/dist/util/getClassCopy.d.ts +63 -43
  332. package/dist/util/getClassCopy.js.map +1 -1
  333. package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -2
  334. package/dist/util/getDesigntimePropertyAsArray.js +2 -1
  335. package/dist/util/getDesigntimePropertyAsArray.js.map +1 -1
  336. package/dist/util/getEffectiveContentDensity.js.map +1 -1
  337. package/dist/util/getEffectiveScrollbarStyle.js.map +1 -1
  338. package/dist/util/getFastNavigationGroups.js.map +1 -1
  339. package/dist/util/getFileExtension.js.map +1 -1
  340. package/dist/util/getNormalizedTarget.js.map +1 -1
  341. package/dist/util/getParentElement.d.ts +2 -0
  342. package/dist/util/getParentElement.js +5 -0
  343. package/dist/util/getParentElement.js.map +1 -0
  344. package/dist/util/getSingletonElementInstance.d.ts +10 -1
  345. package/dist/util/getSingletonElementInstance.js +11 -2
  346. package/dist/util/getSingletonElementInstance.js.map +1 -1
  347. package/dist/util/isElementClickable.js.map +1 -1
  348. package/dist/util/isElementContainingBlock.d.ts +2 -0
  349. package/dist/util/isElementContainingBlock.js +11 -0
  350. package/dist/util/isElementContainingBlock.js.map +1 -0
  351. package/dist/util/isElementHidden.js.map +1 -1
  352. package/dist/util/isElementInView.js.map +1 -1
  353. package/dist/util/isElementTabbable.js.map +1 -1
  354. package/dist/util/isValidPropertyName.js.map +1 -1
  355. package/dist/util/whenDOMReady.js.map +1 -1
  356. package/dist/util/willShowContent.js.map +1 -1
  357. package/dist/validateThemeRoot.js +14 -13
  358. package/dist/validateThemeRoot.js.map +1 -1
  359. package/dist/vscode.html-custom-data.json +22 -0
  360. package/index.js +225 -1
  361. package/lib/generate-asset-parameters/index.js +6 -4
  362. package/lib/generate-styles/index.js +3 -3
  363. package/lib/generate-version-info/index.js +3 -3
  364. package/{package-scripts.js → package-scripts.cjs} +22 -22
  365. package/package.json +15 -6
  366. package/src/css/FontFace.css +47 -17
  367. package/src/css/SystemCSSVars.css +0 -8
  368. package/tsconfig.json +7 -0
  369. package/used-modules.txt +4 -0
  370. package/config/wdio.conf.js +0 -1
  371. package/dist/api.json +0 -1
  372. package/dist/assets/bundle.esm.8fc86dc4.js +0 -56
  373. package/dist/assets-meta/IconCollectionsAlias.d.ts +0 -17
  374. package/dist/assets-meta/IconCollectionsAlias.js +0 -18
  375. package/dist/assets-meta/IconCollectionsAlias.js.map +0 -1
  376. package/dist/config/RTL.d.ts +0 -7
  377. package/dist/config/RTL.js +0 -34
  378. package/dist/config/RTL.js.map +0 -1
  379. package/dist/config/ThemeRoots.d.ts +0 -4
  380. package/dist/config/ThemeRoots.js +0 -28
  381. package/dist/config/ThemeRoots.js.map +0 -1
  382. package/dist/decorators/fastNavigation.d.ts +0 -7
  383. package/dist/decorators/fastNavigation.js +0 -13
  384. package/dist/decorators/fastNavigation.js.map +0 -1
  385. package/dist/decorators/languageAware.d.ts +0 -7
  386. package/dist/decorators/languageAware.js +0 -13
  387. package/dist/decorators/languageAware.js.map +0 -1
  388. package/dist/decorators/themeAware.d.ts +0 -7
  389. package/dist/decorators/themeAware.js +0 -13
  390. package/dist/decorators/themeAware.js.map +0 -1
  391. package/src/AssetRegistry.ts +0 -11
  392. package/src/Boot.ts +0 -61
  393. package/src/CSP.ts +0 -66
  394. package/src/CustomElementsRegistry.ts +0 -98
  395. package/src/CustomElementsScope.ts +0 -33
  396. package/src/CustomElementsScopeUtils.ts +0 -115
  397. package/src/DOMObserver.ts +0 -28
  398. package/src/Device.ts +0 -124
  399. package/src/EventProvider.ts +0 -87
  400. package/src/FeaturesRegistry.ts +0 -14
  401. package/src/FontFace.ts +0 -31
  402. package/src/InitialConfiguration.ts +0 -207
  403. package/src/Keys.ts +0 -295
  404. package/src/ManagedStyles.ts +0 -92
  405. package/src/MarkedEvents.ts +0 -20
  406. package/src/MediaRange.ts +0 -110
  407. package/src/PropertiesFileFormat.ts +0 -95
  408. package/src/Render.ts +0 -180
  409. package/src/RenderQueue.ts +0 -71
  410. package/src/Runtimes.ts +0 -114
  411. package/src/StaticArea.ts +0 -3
  412. package/src/StaticAreaItem.ts +0 -113
  413. package/src/SystemCSSVars.ts +0 -10
  414. package/src/Theming.ts +0 -4
  415. package/src/UI5Element.ts +0 -1156
  416. package/src/UI5ElementMetadata.ts +0 -389
  417. package/src/animations/AnimationQueue.ts +0 -43
  418. package/src/animations/animate.ts +0 -64
  419. package/src/animations/scroll.ts +0 -21
  420. package/src/animations/slideDown.ts +0 -72
  421. package/src/animations/slideUp.ts +0 -67
  422. package/src/asset-registries/Icons.ts +0 -162
  423. package/src/asset-registries/Illustrations.ts +0 -75
  424. package/src/asset-registries/LocaleData.ts +0 -172
  425. package/src/asset-registries/Themes.ts +0 -67
  426. package/src/asset-registries/i18n.ts +0 -118
  427. package/src/assets-meta/IconCollectionsAlias.ts +0 -18
  428. package/src/config/AnimationMode.ts +0 -33
  429. package/src/config/CalendarType.ts +0 -23
  430. package/src/config/FormatSettings.ts +0 -21
  431. package/src/config/Icons.ts +0 -59
  432. package/src/config/Language.ts +0 -72
  433. package/src/config/NoConflict.ts +0 -67
  434. package/src/config/RTL.ts +0 -41
  435. package/src/config/Theme.ts +0 -64
  436. package/src/config/ThemeRoots.ts +0 -41
  437. package/src/decorators/customElement.ts +0 -17
  438. package/src/decorators/event.ts +0 -28
  439. package/src/decorators/fastNavigation.ts +0 -14
  440. package/src/decorators/languageAware.ts +0 -14
  441. package/src/decorators/property.ts +0 -30
  442. package/src/decorators/slot.ts +0 -49
  443. package/src/decorators/themeAware.ts +0 -14
  444. package/src/delegate/ItemNavigation.ts +0 -393
  445. package/src/delegate/ResizeHandler.ts +0 -95
  446. package/src/delegate/ScrollEnablement.ts +0 -224
  447. package/src/features/F6Navigation.ts +0 -141
  448. package/src/features/OpenUI5Element.ts +0 -11
  449. package/src/features/OpenUI5Enablement.ts +0 -117
  450. package/src/features/OpenUI5Support.ts +0 -148
  451. package/src/generated/css/BusyIndicator.css.ts +0 -9
  452. package/src/generated/css/FontFace.css.ts +0 -9
  453. package/src/generated/css/OverrideFontFace.css.ts +0 -9
  454. package/src/generated/css/SystemCSSVars.css.ts +0 -9
  455. package/src/getSharedResource.ts +0 -30
  456. package/src/global.d.ts +0 -38
  457. package/src/i18nBundle.ts +0 -108
  458. package/src/locale/Locale.ts +0 -101
  459. package/src/locale/RTLAwareRegistry.ts +0 -16
  460. package/src/locale/applyDirection.ts +0 -18
  461. package/src/locale/directionChange.ts +0 -34
  462. package/src/locale/getEffectiveDir.ts +0 -28
  463. package/src/locale/getLocale.ts +0 -46
  464. package/src/locale/languageChange.ts +0 -24
  465. package/src/locale/nextFallbackLocale.ts +0 -28
  466. package/src/locale/normalizeLocale.ts +0 -56
  467. package/src/renderer/LitRenderer.ts +0 -60
  468. package/src/renderer/directives/style-map.js +0 -72
  469. package/src/renderer/executeTemplate.ts +0 -40
  470. package/src/theming/CustomStyle.ts +0 -62
  471. package/src/theming/ThemeLoaded.ts +0 -24
  472. package/src/theming/applyTheme.ts +0 -90
  473. package/src/theming/getConstructableStyle.ts +0 -31
  474. package/src/theming/getEffectiveLinksHrefs.ts +0 -26
  475. package/src/theming/getEffectiveStyle.ts +0 -41
  476. package/src/theming/getStylesString.ts +0 -15
  477. package/src/theming/getThemeDesignerTheme.ts +0 -101
  478. package/src/theming/preloadLinks.ts +0 -24
  479. package/src/thirdparty/_merge.ts +0 -32
  480. package/src/thirdparty/isPlainObject.ts +0 -18
  481. package/src/thirdparty/merge.ts +0 -5
  482. package/src/types/AnimationMode.ts +0 -33
  483. package/src/types/CSSColor.ts +0 -20
  484. package/src/types/CalendarType.ts +0 -38
  485. package/src/types/DOMReference.ts +0 -28
  486. package/src/types/DataType.ts +0 -51
  487. package/src/types/Float.ts +0 -25
  488. package/src/types/Integer.ts +0 -25
  489. package/src/types/InvisibleMessageMode.ts +0 -27
  490. package/src/types/ItemNavigationBehavior.ts +0 -26
  491. package/src/types/NavigationMode.ts +0 -33
  492. package/src/types/ValueState.ts +0 -47
  493. package/src/types.ts +0 -30
  494. package/src/updateShadowRoot.ts +0 -37
  495. package/src/util/AriaLabelHelper.ts +0 -63
  496. package/src/util/Caret.ts +0 -28
  497. package/src/util/ColorConversion.ts +0 -399
  498. package/src/util/FetchHelper.ts +0 -31
  499. package/src/util/FocusableElements.ts +0 -92
  500. package/src/util/HTMLSanitizer.ts +0 -9
  501. package/src/util/InvisibleMessage.ts +0 -69
  502. package/src/util/PopupUtils.ts +0 -112
  503. package/src/util/SlotsHelper.ts +0 -39
  504. package/src/util/StringHelper.ts +0 -26
  505. package/src/util/TabbableElements.ts +0 -70
  506. package/src/util/arraysAreEqual.ts +0 -15
  507. package/src/util/clamp.ts +0 -12
  508. package/src/util/createLinkInHead.ts +0 -25
  509. package/src/util/createStyleInHead.ts +0 -20
  510. package/src/util/debounce.ts +0 -18
  511. package/src/util/detectNavigatorLanguage.ts +0 -13
  512. package/src/util/escapeRegex.ts +0 -11
  513. package/src/util/formatMessage.ts +0 -24
  514. package/src/util/generateHighlightedMarkup.ts +0 -43
  515. package/src/util/getActiveElement.ts +0 -11
  516. package/src/util/getClassCopy.ts +0 -12
  517. package/src/util/getDesigntimePropertyAsArray.ts +0 -4
  518. package/src/util/getEffectiveContentDensity.ts +0 -5
  519. package/src/util/getEffectiveScrollbarStyle.ts +0 -5
  520. package/src/util/getFastNavigationGroups.ts +0 -63
  521. package/src/util/getFileExtension.ts +0 -21
  522. package/src/util/getNormalizedTarget.ts +0 -16
  523. package/src/util/getSingletonElementInstance.ts +0 -13
  524. package/src/util/isElementClickable.ts +0 -19
  525. package/src/util/isElementHidden.ts +0 -9
  526. package/src/util/isElementInView.ts +0 -15
  527. package/src/util/isElementTabbable.ts +0 -37
  528. package/src/util/isValidPropertyName.ts +0 -29
  529. package/src/util/whenDOMReady.ts +0 -13
  530. package/src/util/willShowContent.ts +0 -7
  531. package/src/validateThemeRoot.ts +0 -58
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Determines the orientation of an operation.
3
+ *
4
+ * @private
5
+ */
6
+ var Orientation;
7
+ (function (Orientation) {
8
+ /**
9
+ * @private
10
+ */
11
+ Orientation["Vertical"] = "Vertical";
12
+ /**
13
+ * @private
14
+ */
15
+ Orientation["Horizontal"] = "Horizontal";
16
+ })(Orientation || (Orientation = {}));
17
+ export default Orientation;
18
+ //# sourceMappingURL=Orientation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Orientation.js","sourceRoot":"","sources":["../../src/types/Orientation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,IAAK,WAUJ;AAVD,WAAK,WAAW;IACf;;OAEG;IACH,oCAAqB,CAAA;IAErB;;OAEG;IACH,wCAAyB,CAAA;AAC1B,CAAC,EAVI,WAAW,KAAX,WAAW,QAUf;AAED,eAAe,WAAW,CAAC","sourcesContent":["/**\n * Determines the orientation of an operation.\n *\n * @private\n */\nenum Orientation {\n\t/**\n\t * @private\n\t */\n\tVertical = \"Vertical\",\n\n\t/**\n\t * @private\n\t */\n\tHorizontal = \"Horizontal\",\n}\n\nexport default Orientation;\n"]}
@@ -1,41 +1,27 @@
1
1
  /**
2
2
  * Different types of ValueStates.
3
3
  *
4
- * @class
5
- * @enum {string}
6
4
  * @public
7
- * @author SAP SE
8
- * @alias sap.ui.webc.base.types.ValueState
9
5
  */
10
6
  declare enum ValueState {
11
7
  /**
12
- *
13
8
  * @public
14
- * @type {None}
15
9
  */
16
10
  None = "None",
17
11
  /**
18
- *
19
12
  * @public
20
- * @type {Success}
21
13
  */
22
14
  Success = "Success",
23
15
  /**
24
- *
25
16
  * @public
26
- * @type {Warning}
27
17
  */
28
18
  Warning = "Warning",
29
19
  /**
30
- *
31
20
  * @public
32
- * @type {Error}
33
21
  */
34
22
  Error = "Error",
35
23
  /**
36
- *
37
24
  * @public
38
- * @type {Information}
39
25
  */
40
26
  Information = "Information"
41
27
  }
@@ -1,42 +1,28 @@
1
1
  /**
2
2
  * Different types of ValueStates.
3
3
  *
4
- * @class
5
- * @enum {string}
6
4
  * @public
7
- * @author SAP SE
8
- * @alias sap.ui.webc.base.types.ValueState
9
5
  */
10
6
  var ValueState;
11
7
  (function (ValueState) {
12
8
  /**
13
- *
14
9
  * @public
15
- * @type {None}
16
10
  */
17
11
  ValueState["None"] = "None";
18
12
  /**
19
- *
20
13
  * @public
21
- * @type {Success}
22
14
  */
23
15
  ValueState["Success"] = "Success";
24
16
  /**
25
- *
26
17
  * @public
27
- * @type {Warning}
28
18
  */
29
19
  ValueState["Warning"] = "Warning";
30
20
  /**
31
- *
32
21
  * @public
33
- * @type {Error}
34
22
  */
35
23
  ValueState["Error"] = "Error";
36
24
  /**
37
- *
38
25
  * @public
39
- * @type {Information}
40
26
  */
41
27
  ValueState["Information"] = "Information";
42
28
  })(ValueState || (ValueState = {}));
@@ -1 +1 @@
1
- {"version":3,"file":"ValueState.js","sourceRoot":"","sources":["../../src/types/ValueState.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,IAAK,UAmCJ;AAnCD,WAAK,UAAU;IACd;;;;OAIG;IACH,2BAAa,CAAA;IAEb;;;;OAIG;IACH,iCAAmB,CAAA;IAEnB;;;;OAIG;IACH,iCAAmB,CAAA;IAEnB;;;;OAIG;IACH,6BAAe,CAAA;IAEf;;;;OAIG;IACH,yCAA2B,CAAA;AAC5B,CAAC,EAnCI,UAAU,KAAV,UAAU,QAmCd;AAED,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"ValueState.js","sourceRoot":"","sources":["../../src/types/ValueState.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,IAAK,UAyBJ;AAzBD,WAAK,UAAU;IACd;;OAEG;IACH,2BAAa,CAAA;IAEb;;OAEG;IACH,iCAAmB,CAAA;IAEnB;;OAEG;IACH,iCAAmB,CAAA;IAEnB;;OAEG;IACH,6BAAe,CAAA;IAEf;;OAEG;IACH,yCAA2B,CAAA;AAC5B,CAAC,EAzBI,UAAU,KAAV,UAAU,QAyBd;AAED,eAAe,UAAU,CAAC","sourcesContent":["/**\n * Different types of ValueStates.\n *\n * @public\n */\nenum ValueState {\n\t/**\n\t * @public\n\t */\n\tNone = \"None\",\n\n\t/**\n\t * @public\n\t */\n\tSuccess = \"Success\",\n\n\t/**\n\t * @public\n\t */\n\tWarning = \"Warning\",\n\n\t/**\n\t * @public\n\t */\n\tError = \"Error\",\n\n\t/**\n\t * @public\n\t */\n\tInformation = \"Information\",\n}\n\nexport default ValueState;\n"]}
package/dist/types.d.ts CHANGED
@@ -15,4 +15,14 @@ type ClassMap = {
15
15
  type PassiveEventListenerObject = EventListenerObject & {
16
16
  passive: boolean;
17
17
  };
18
- export type { PromiseResolve, Timeout, Interval, StyleData, StyleDataCSP, ComponentStylesData, ClassMap, PassiveEventListenerObject, };
18
+ type LowercaseString<T> = T extends string ? Lowercase<T> : never;
19
+ type AccessibilityInfo = {
20
+ role?: LowercaseString<string>;
21
+ type?: LowercaseString<string>;
22
+ description?: string;
23
+ disabled?: boolean;
24
+ readonly?: boolean;
25
+ required?: boolean;
26
+ children?: Array<HTMLElement>;
27
+ };
28
+ export type { AccessibilityInfo, PromiseResolve, Timeout, Interval, StyleData, StyleDataCSP, ComponentStylesData, ClassMap, ClassMapValue, PassiveEventListenerObject, };
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["type PromiseResolve = (value: void | PromiseLike<void>) => void;\ntype Timeout = ReturnType<typeof setTimeout>;\ntype Interval = ReturnType<typeof setInterval>;\n\ntype StyleDataCSP = {\n\tcontent: string,\n\tpackageName: string,\n\tfileName: string,\n};\n\ntype StyleData = StyleDataCSP | string;\n\ntype ComponentStylesData = Array<ComponentStylesData> | Array<StyleData> | StyleData;\n\ntype ClassMapValue = Record<string, boolean>\n\ntype ClassMap = { [x: string] : ClassMapValue | ClassMap };\n\ntype PassiveEventListenerObject = EventListenerObject & { passive: boolean };\n\ntype LowercaseString<T> = T extends string ? Lowercase<T> : never;\n\ntype AccessibilityInfo = {\n\t// The WAI-ARIA role of the component.\n\trole?: LowercaseString<string>,\n\n\t// A translated text that represents the component type. Used when several components share same role,\n\t// f.e. Select and ComboBox both have role=\"combobox\".\n\ttype?: LowercaseString<string>,\n\n\t// A translated text that represents relevant component description/state - value, placeholder, label, etc.\n\tdescription?: string,\n\n\t // The component disabled state.\n\tdisabled?: boolean,\n\n\t// The component readonly state.\n\treadonly?: boolean,\n\n\t// The component required state.\n\trequired?: boolean,\n\n\t// An array of elements, aggregated by the component\n\t// <b>Note:</b> Children should only be provided when it is helpful to understand the accessibility context.\n\tchildren?: Array<HTMLElement>,\n}\n\nexport type {\n\tAccessibilityInfo,\n\tPromiseResolve,\n\tTimeout,\n\tInterval,\n\tStyleData,\n\tStyleDataCSP,\n\tComponentStylesData,\n\tClassMap,\n\tClassMapValue,\n\tPassiveEventListenerObject,\n};\n"]}
@@ -1,8 +1,8 @@
1
- import executeTemplate from "./renderer/executeTemplate.js";
2
1
  import getConstructableStyle from "./theming/getConstructableStyle.js";
3
2
  import getEffectiveStyle from "./theming/getEffectiveStyle.js";
4
3
  import getEffectiveLinksHrefs from "./theming/getEffectiveLinksHrefs.js";
5
4
  import { shouldUseLinks } from "./CSP.js";
5
+ import { isSafari } from "./Device.js";
6
6
  /**
7
7
  * Updates the shadow root of a UI5Element or its static area item
8
8
  * @param element
@@ -11,10 +11,14 @@ import { shouldUseLinks } from "./CSP.js";
11
11
  const updateShadowRoot = (element, forStaticArea = false) => {
12
12
  let styleStrOrHrefsArr;
13
13
  const ctor = element.constructor;
14
- const propertyName = forStaticArea ? "staticAreaTemplate" : "template";
15
- const template = ctor[propertyName];
16
14
  const shadowRoot = forStaticArea ? element.staticAreaItem.shadowRoot : element.shadowRoot;
17
- const renderResult = executeTemplate(template, element); // this is checked before calling updateShadowRoot
15
+ let renderResult;
16
+ if (forStaticArea) {
17
+ renderResult = element.renderStatic(); // this is checked before calling updateShadowRoot
18
+ }
19
+ else {
20
+ renderResult = element.render(); // this is checked before calling updateShadowRoot
21
+ }
18
22
  if (!shadowRoot) {
19
23
  console.warn(`There is no shadow root to update`); // eslint-disable-line
20
24
  return;
@@ -22,12 +26,16 @@ const updateShadowRoot = (element, forStaticArea = false) => {
22
26
  if (shouldUseLinks()) {
23
27
  styleStrOrHrefsArr = getEffectiveLinksHrefs(ctor, forStaticArea);
24
28
  }
25
- else if (document.adoptedStyleSheets) { // Chrome
29
+ else if (document.adoptedStyleSheets && !isSafari()) { // Chrome
26
30
  shadowRoot.adoptedStyleSheets = getConstructableStyle(ctor, forStaticArea);
27
31
  }
28
32
  else { // FF, Safari
29
33
  styleStrOrHrefsArr = getEffectiveStyle(ctor, forStaticArea);
30
34
  }
35
+ if (ctor.renderer) {
36
+ ctor.renderer(renderResult, shadowRoot, styleStrOrHrefsArr, forStaticArea, { host: element });
37
+ return;
38
+ }
31
39
  ctor.render(renderResult, shadowRoot, styleStrOrHrefsArr, forStaticArea, { host: element });
32
40
  };
33
41
  export default updateShadowRoot;
@@ -1 +1 @@
1
- {"version":3,"file":"updateShadowRoot.js","sourceRoot":"","sources":["../src/updateShadowRoot.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAC5D,OAAO,qBAAqB,MAAM,oCAAoC,CAAC;AACvE,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAC/D,OAAO,sBAAsB,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG1C;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,CAAC,OAAmB,EAAE,aAAa,GAAG,KAAK,EAAE,EAAE;IACvE,IAAI,kBAAkB,CAAC;IACvB,MAAM,IAAI,GAAG,OAAO,CAAC,WAAgC,CAAC;IACtD,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,UAAU,CAAC;IACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,cAAe,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAC3F,MAAM,YAAY,GAAG,eAAe,CAAC,QAAS,EAAE,OAAO,CAAC,CAAC,CAAC,kDAAkD;IAE5G,IAAI,CAAC,UAAU,EAAE;QAChB,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC,sBAAsB;QACzE,OAAO;KACP;IAED,IAAI,cAAc,EAAE,EAAE;QACrB,kBAAkB,GAAG,sBAAsB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;KACjE;SAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,EAAE,SAAS;QAClD,UAAU,CAAC,kBAAkB,GAAG,qBAAqB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;KAC3E;SAAM,EAAE,aAAa;QACrB,kBAAkB,GAAG,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;KAC5D;IAED,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAC7F,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"updateShadowRoot.js","sourceRoot":"","sources":["../src/updateShadowRoot.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,oCAAoC,CAAC;AACvE,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAC/D,OAAO,sBAAsB,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,CAAC,OAAmB,EAAE,aAAa,GAAG,KAAK,EAAE,EAAE;IACvE,IAAI,kBAAkB,CAAC;IACvB,MAAM,IAAI,GAAG,OAAO,CAAC,WAAgC,CAAC;IACtD,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,cAAe,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAC3F,IAAI,YAAY,CAAC;IACjB,IAAI,aAAa,EAAE;QAClB,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,kDAAkD;KACzF;SAAM;QACN,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,kDAAkD;KACnF;IAED,IAAI,CAAC,UAAU,EAAE;QAChB,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC,sBAAsB;QACzE,OAAO;KACP;IAED,IAAI,cAAc,EAAE,EAAE;QACrB,kBAAkB,GAAG,sBAAsB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;KACjE;SAAM,IAAI,QAAQ,CAAC,kBAAkB,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,SAAS;QACjE,UAAU,CAAC,kBAAkB,GAAG,qBAAqB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;KAC3E;SAAM,EAAE,aAAa;QACrB,kBAAkB,GAAG,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;KAC5D;IAED,IAAI,IAAI,CAAC,QAAQ,EAAE;QAClB,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9F,OAAO;KACP;IAED,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAC7F,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC","sourcesContent":["import getConstructableStyle from \"./theming/getConstructableStyle.js\";\nimport getEffectiveStyle from \"./theming/getEffectiveStyle.js\";\nimport getEffectiveLinksHrefs from \"./theming/getEffectiveLinksHrefs.js\";\nimport { shouldUseLinks } from \"./CSP.js\";\nimport type UI5Element from \"./UI5Element.js\";\nimport { isSafari } from \"./Device.js\";\n\n/**\n * Updates the shadow root of a UI5Element or its static area item\n * @param element\n * @param forStaticArea\n */\nconst updateShadowRoot = (element: UI5Element, forStaticArea = false) => {\n\tlet styleStrOrHrefsArr;\n\tconst ctor = element.constructor as typeof UI5Element;\n\tconst shadowRoot = forStaticArea ? element.staticAreaItem!.shadowRoot : element.shadowRoot;\n\tlet renderResult;\n\tif (forStaticArea) {\n\t\trenderResult = element.renderStatic(); // this is checked before calling updateShadowRoot\n\t} else {\n\t\trenderResult = element.render(); // this is checked before calling updateShadowRoot\n\t}\n\n\tif (!shadowRoot) {\n\t\tconsole.warn(`There is no shadow root to update`); // eslint-disable-line\n\t\treturn;\n\t}\n\n\tif (shouldUseLinks()) {\n\t\tstyleStrOrHrefsArr = getEffectiveLinksHrefs(ctor, forStaticArea);\n\t} else if (document.adoptedStyleSheets && !isSafari()) { // Chrome\n\t\tshadowRoot.adoptedStyleSheets = getConstructableStyle(ctor, forStaticArea);\n\t} else { // FF, Safari\n\t\tstyleStrOrHrefsArr = getEffectiveStyle(ctor, forStaticArea);\n\t}\n\n\tif (ctor.renderer) {\n\t\tctor.renderer(renderResult, shadowRoot, styleStrOrHrefsArr, forStaticArea, { host: element });\n\t\treturn;\n\t}\n\n\tctor.render(renderResult, shadowRoot, styleStrOrHrefsArr, forStaticArea, { host: element });\n};\n\nexport default updateShadowRoot;\n"]}
@@ -1,6 +1,15 @@
1
+ import UI5Element from "../UI5Element.js";
2
+ type MutationCallback = () => void;
1
3
  declare const getEffectiveAriaLabelText: (el: HTMLElement) => string | undefined;
4
+ /**
5
+ *
6
+ * @param {HTMLElement} el Defines the HTMLElement, for which you need to get all related texts
7
+ */
8
+ declare const getAllAccessibleNameRefTexts: (el: HTMLElement) => string;
2
9
  /**
3
10
  * @param {HTMLElement} el Defines the HTMLElement, for which you need to get all related "label for" texts
4
11
  */
5
12
  declare const getAssociatedLabelForTexts: (el: HTMLElement) => string | undefined;
6
- export { getEffectiveAriaLabelText, getAssociatedLabelForTexts, };
13
+ declare const registerUI5Element: (el: UI5Element, callback: MutationCallback) => void;
14
+ declare const deregisterUI5Element: (el: UI5Element) => void;
15
+ export { getEffectiveAriaLabelText, getAssociatedLabelForTexts, registerUI5Element, deregisterUI5Element, getAllAccessibleNameRefTexts, };
@@ -1,3 +1,11 @@
1
+ const associatedElements = new WeakMap();
2
+ const registeredElements = new WeakMap();
3
+ const observerOptions = {
4
+ attributes: true,
5
+ childList: true,
6
+ characterData: true,
7
+ subtree: true,
8
+ };
1
9
  const getEffectiveAriaLabelText = (el) => {
2
10
  const accessibleEl = el;
3
11
  if (!accessibleEl.accessibleNameRef) {
@@ -6,31 +14,59 @@ const getEffectiveAriaLabelText = (el) => {
6
14
  }
7
15
  return undefined;
8
16
  }
9
- return _getAriaLabelledByTexts(el);
17
+ return getAllAccessibleNameRefTexts(el);
10
18
  };
11
19
  /**
12
20
  *
13
21
  * @param {HTMLElement} el Defines the HTMLElement, for which you need to get all related texts
14
22
  */
15
- const _getAriaLabelledByTexts = (el) => {
16
- const ids = el.accessibleNameRef.split(" ");
23
+ const getAllAccessibleNameRefTexts = (el) => {
24
+ const ids = el.accessibleNameRef?.split(" ") ?? [];
17
25
  const owner = el.getRootNode();
18
26
  let result = "";
19
27
  ids.forEach((elementId, index) => {
20
28
  const element = owner.querySelector(`[id='${elementId}']`);
21
- result += `${element && element.textContent ? element.textContent : ""}`;
22
- if (index < ids.length - 1) {
23
- result += " ";
29
+ const text = `${element && element.textContent ? element.textContent : ""}`;
30
+ if (text) {
31
+ result += text;
32
+ if (index < ids.length - 1) {
33
+ result += " ";
34
+ }
24
35
  }
25
36
  });
26
37
  return result;
27
38
  };
39
+ const _getAllAssociatedElementsFromDOM = (el) => {
40
+ const set = new Set();
41
+ // adding labels with attribute for matching the el.id
42
+ const labelsForAssociated = _getAssociatedLabels(el);
43
+ labelsForAssociated.forEach(itm => {
44
+ set.add(itm);
45
+ });
46
+ // adding other elements that id is the same as accessibleNameRef value
47
+ const value = el["accessibleNameRef"];
48
+ const ids = value?.split(" ") ?? [];
49
+ ids.forEach(id => {
50
+ const refEl = _getReferencedElementById(el, id);
51
+ if (refEl) {
52
+ set.add(refEl);
53
+ }
54
+ });
55
+ return Array.from(set);
56
+ };
57
+ const _getAssociatedLabels = (el) => {
58
+ const labels = el.getRootNode().querySelectorAll(`[for="${el.id}"]`);
59
+ return Array.from(labels);
60
+ };
61
+ const _getReferencedElementById = (el, elementId) => {
62
+ return el.getRootNode().querySelector(`[id='${elementId}']`);
63
+ };
28
64
  /**
29
65
  * @param {HTMLElement} el Defines the HTMLElement, for which you need to get all related "label for" texts
30
66
  */
31
67
  const getAssociatedLabelForTexts = (el) => {
32
68
  const results = [];
33
- const labels = el.getRootNode().querySelectorAll(`[ui5-label][for="${el.id}"],label[for="${el.id}"]`);
69
+ const labels = _getAssociatedLabels(el);
34
70
  labels.forEach((label) => {
35
71
  const labelText = label.textContent;
36
72
  labelText && results.push(labelText);
@@ -40,5 +76,96 @@ const getAssociatedLabelForTexts = (el) => {
40
76
  }
41
77
  return undefined;
42
78
  };
43
- export { getEffectiveAriaLabelText, getAssociatedLabelForTexts, };
79
+ const _createInvalidationCallback = (el) => {
80
+ const invalidationCallback = (changeInfo) => {
81
+ if (!(changeInfo && changeInfo.type === "property" && changeInfo.name === "accessibleNameRef")) {
82
+ return;
83
+ }
84
+ const registeredElement = registeredElements.get(el);
85
+ if (!registeredElement) {
86
+ return;
87
+ }
88
+ const oldAssociatedElements = registeredElement.observedElements;
89
+ const newAssociatedElements = _getAllAssociatedElementsFromDOM(el);
90
+ oldAssociatedElements.forEach(oldElement => {
91
+ if (!newAssociatedElements.includes(oldElement)) {
92
+ _removeObservedElementFromRegisteredElement(registeredElement, oldElement);
93
+ }
94
+ });
95
+ newAssociatedElements.forEach(newElement => {
96
+ if (!oldAssociatedElements.includes(newElement)) {
97
+ _addObservedElementToRegisteredElement(registeredElement, newElement);
98
+ registeredElement.observedElements.push(newElement);
99
+ }
100
+ });
101
+ registeredElement?.callback();
102
+ };
103
+ return invalidationCallback;
104
+ };
105
+ const registerUI5Element = (el, callback) => {
106
+ if (registeredElements.has(el)) {
107
+ return;
108
+ }
109
+ const allAssociatedElements = _getAllAssociatedElementsFromDOM(el);
110
+ const invalidationCallback = _createInvalidationCallback(el);
111
+ const registeredElement = {
112
+ host: el,
113
+ observedElements: allAssociatedElements,
114
+ callback,
115
+ invalidationCallback,
116
+ };
117
+ registeredElements.set(el, registeredElement);
118
+ el.attachInvalidate(invalidationCallback);
119
+ allAssociatedElements.forEach((element) => {
120
+ _addObservedElementToRegisteredElement(registeredElement, element);
121
+ });
122
+ callback();
123
+ };
124
+ const _addObservedElementToRegisteredElement = (registeredElement, element) => {
125
+ let associatedElement = associatedElements.get(element);
126
+ if (!associatedElement) {
127
+ associatedElement = { observer: null, callbacks: [] };
128
+ const observer = new MutationObserver(() => {
129
+ const callbacks = associatedElement.callbacks;
130
+ callbacks.forEach(callback => {
131
+ callback();
132
+ });
133
+ const domEl = document.getElementById(element.id);
134
+ // if no longer should be observed from this registeredElement, remove it
135
+ if (!(registeredElement.host.id === element.getAttribute("for") || domEl)) {
136
+ _removeObservedElementFromRegisteredElement(registeredElement, element);
137
+ }
138
+ });
139
+ associatedElement.observer = observer;
140
+ observer.observe(element, observerOptions);
141
+ associatedElements.set(element, associatedElement);
142
+ }
143
+ if (!associatedElement.callbacks.includes(registeredElement.callback)) {
144
+ associatedElement.callbacks.push(registeredElement.callback);
145
+ }
146
+ };
147
+ const _removeObservedElementFromRegisteredElement = (registeredElement, element) => {
148
+ const associatedElement = associatedElements.get(element);
149
+ if (associatedElement) {
150
+ associatedElement.callbacks = associatedElement.callbacks.filter(itm => itm !== registeredElement.callback);
151
+ if (!associatedElement.callbacks.length) {
152
+ associatedElement.observer?.disconnect();
153
+ associatedElements.delete(element);
154
+ }
155
+ }
156
+ registeredElement.observedElements = registeredElement.observedElements.filter(itm => itm !== element);
157
+ };
158
+ const deregisterUI5Element = (el) => {
159
+ const registeredElement = registeredElements.get(el);
160
+ if (!registeredElement) {
161
+ return;
162
+ }
163
+ const oldObservedElements = [...registeredElement.observedElements];
164
+ oldObservedElements.forEach(observedElement => {
165
+ _removeObservedElementFromRegisteredElement(registeredElement, observedElement);
166
+ });
167
+ el.detachInvalidate(registeredElement.invalidationCallback);
168
+ registeredElements.delete(el);
169
+ };
170
+ export { getEffectiveAriaLabelText, getAssociatedLabelForTexts, registerUI5Element, deregisterUI5Element, getAllAccessibleNameRefTexts, };
44
171
  //# sourceMappingURL=AriaLabelHelper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AriaLabelHelper.js","sourceRoot":"","sources":["../../src/util/AriaLabelHelper.ts"],"names":[],"mappings":"AAKA,MAAM,yBAAyB,GAAG,CAAC,EAAe,EAAE,EAAE;IACrD,MAAM,YAAY,GAAG,EAAuB,CAAC;IAE7C,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE;QACpC,IAAI,YAAY,CAAC,cAAc,EAAE;YAChC,OAAO,YAAY,CAAC,cAAc,CAAC;SACnC;QAED,OAAO,SAAS,CAAC;KACjB;IAED,OAAO,uBAAuB,CAAC,EAAE,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,uBAAuB,GAAG,CAAC,EAAe,EAAE,EAAE;IACnD,MAAM,GAAG,GAAI,EAAwB,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,EAAiB,CAAC;IAC9C,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,GAAG,CAAC,OAAO,CAAC,CAAC,SAAiB,EAAE,KAAa,EAAE,EAAE;QAChD,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,QAAQ,SAAS,IAAI,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAEzE,IAAI,KAAK,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3B,MAAM,IAAI,GAAG,CAAC;SACd;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,0BAA0B,GAAG,CAAC,EAAe,EAAE,EAAE;IACtD,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,MAAM,MAAM,GAAI,EAAE,CAAC,WAAW,EAAkB,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAEvH,MAAM,CAAC,OAAO,CAAC,CAAC,KAAW,EAAE,EAAE;QAC9B,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC;QACpC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,MAAM,EAAE;QACnB,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACzB;IAED,OAAO,SAAS,CAAC;AAClB,CAAC,CAAC;AAEF,OAAO,EACN,yBAAyB,EACzB,0BAA0B,GAC1B,CAAC"}
1
+ {"version":3,"file":"AriaLabelHelper.js","sourceRoot":"","sources":["../../src/util/AriaLabelHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element, { ChangeInfo } from \"../UI5Element.js\";\n\ntype InvalidateCallback = (changeInfo: ChangeInfo) => void;\ntype MutationCallback = () => void;\ntype AssociatedElement = {\n\tobserver: MutationObserver | null;\n\tcallbacks: Array<MutationCallback>;\n};\ntype RegisteredElement = {\n\thost: UI5Element;\n\tobservedElements: Array<HTMLElement>;\n\tcallback: MutationCallback;\n\tinvalidationCallback: InvalidateCallback;\n};\n\nconst associatedElements = new WeakMap<HTMLElement, AssociatedElement>();\nconst registeredElements = new WeakMap<UI5Element, RegisteredElement>();\n\ntype AccessibleElement = HTMLElement & {\n\taccessibleNameRef: string;\n\taccessibleName: string;\n};\n\nconst observerOptions = {\n\tattributes: true,\n\tchildList: true,\n\tcharacterData: true,\n\tsubtree: true,\n};\n\nconst getEffectiveAriaLabelText = (el: HTMLElement) => {\n\tconst accessibleEl = el as AccessibleElement;\n\n\tif (!accessibleEl.accessibleNameRef) {\n\t\tif (accessibleEl.accessibleName) {\n\t\t\treturn accessibleEl.accessibleName;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\treturn getAllAccessibleNameRefTexts(el);\n};\n\n/**\n *\n * @param {HTMLElement} el Defines the HTMLElement, for which you need to get all related texts\n */\nconst getAllAccessibleNameRefTexts = (el: HTMLElement) => {\n\tconst ids = (el as AccessibleElement).accessibleNameRef?.split(\" \") ?? [];\n\tconst owner = el.getRootNode() as HTMLElement;\n\tlet result = \"\";\n\n\tids.forEach((elementId: string, index: number) => {\n\t\tconst element = owner.querySelector(`[id='${elementId}']`);\n\t\tconst text = `${element && element.textContent ? element.textContent : \"\"}`;\n\t\tif (text) {\n\t\t\tresult += text;\n\t\t\tif (index < ids.length - 1) {\n\t\t\t\tresult += \" \";\n\t\t\t}\n\t\t}\n\t});\n\n\treturn result;\n};\n\nconst _getAllAssociatedElementsFromDOM = (el: UI5Element): Array<HTMLElement> => {\n\tconst set = new Set<HTMLElement>();\n\t// adding labels with attribute for matching the el.id\n\tconst labelsForAssociated = _getAssociatedLabels(el);\n\tlabelsForAssociated.forEach(itm => {\n\t\tset.add(itm);\n\t});\n\t// adding other elements that id is the same as accessibleNameRef value\n\tconst value = el[\"accessibleNameRef\" as keyof typeof el] as string;\n\tconst ids = value?.split(\" \") ?? [];\n\tids.forEach(id => {\n\t\tconst refEl = _getReferencedElementById(el, id);\n\t\tif (refEl) {\n\t\t\tset.add(refEl);\n\t\t}\n\t});\n\treturn Array.from(set);\n};\n\nconst _getAssociatedLabels = (el: HTMLElement): Array<HTMLElement> => {\n\tconst labels = (el.getRootNode() as HTMLElement).querySelectorAll<HTMLElement>(`[for=\"${el.id}\"]`);\n\treturn Array.from(labels);\n};\n\nconst _getReferencedElementById = (el: HTMLElement, elementId: string): HTMLElement | null => {\n\treturn (el.getRootNode() as HTMLElement).querySelector<HTMLElement>(`[id='${elementId}']`);\n};\n\n/**\n * @param {HTMLElement} el Defines the HTMLElement, for which you need to get all related \"label for\" texts\n */\nconst getAssociatedLabelForTexts = (el: HTMLElement) => {\n\tconst results: Array<string> = [];\n\tconst labels = _getAssociatedLabels(el);\n\n\tlabels.forEach((label: HTMLElement) => {\n\t\tconst labelText = label.textContent;\n\t\tlabelText && results.push(labelText);\n\t});\n\n\tif (results.length) {\n\t\treturn results.join(\" \");\n\t}\n\n\treturn undefined;\n};\n\nconst _createInvalidationCallback = (el: UI5Element) => {\n\tconst invalidationCallback = (changeInfo: ChangeInfo) => {\n\t\tif (!(changeInfo && changeInfo.type === \"property\" && changeInfo.name === \"accessibleNameRef\")) {\n\t\t\treturn;\n\t\t}\n\t\tconst registeredElement = registeredElements.get(el);\n\t\tif (!registeredElement) {\n\t\t\treturn;\n\t\t}\n\t\tconst oldAssociatedElements = registeredElement.observedElements;\n\t\tconst newAssociatedElements = _getAllAssociatedElementsFromDOM(el);\n\t\toldAssociatedElements.forEach(oldElement => {\n\t\t\tif (!newAssociatedElements.includes(oldElement)) {\n\t\t\t\t_removeObservedElementFromRegisteredElement(registeredElement, oldElement);\n\t\t\t}\n\t\t});\n\t\tnewAssociatedElements.forEach(newElement => {\n\t\t\tif (!oldAssociatedElements.includes(newElement)) {\n\t\t\t\t_addObservedElementToRegisteredElement(registeredElement, newElement);\n\t\t\t\tregisteredElement.observedElements.push(newElement);\n\t\t\t}\n\t\t});\n\t\tregisteredElement?.callback();\n\t};\n\treturn invalidationCallback;\n};\n\nconst registerUI5Element = (el: UI5Element, callback: MutationCallback) => {\n\tif (registeredElements.has(el)) {\n\t\treturn;\n\t}\n\tconst allAssociatedElements = _getAllAssociatedElementsFromDOM(el);\n\tconst invalidationCallback = _createInvalidationCallback(el);\n\tconst registeredElement = {\n\t\thost: el,\n\t\tobservedElements: allAssociatedElements,\n\t\tcallback,\n\t\tinvalidationCallback,\n\t};\n\tregisteredElements.set(el, registeredElement);\n\tel.attachInvalidate(invalidationCallback);\n\n\tallAssociatedElements.forEach((element: HTMLElement) => {\n\t\t_addObservedElementToRegisteredElement(registeredElement, element);\n\t});\n\tcallback();\n};\n\nconst _addObservedElementToRegisteredElement = (registeredElement: RegisteredElement, element: HTMLElement) => {\n\tlet associatedElement = associatedElements.get(element);\n\tif (!associatedElement) {\n\t\tassociatedElement = { observer: null, callbacks: [] };\n\t\tconst observer = new MutationObserver(() => {\n\t\t\tconst callbacks = (associatedElement as AssociatedElement).callbacks;\n\t\t\tcallbacks.forEach(callback => {\n\t\t\t\tcallback();\n\t\t\t});\n\t\t\tconst domEl = document.getElementById(element.id);\n\t\t\t// if no longer should be observed from this registeredElement, remove it\n\t\t\tif (!(registeredElement.host.id === element.getAttribute(\"for\") || domEl)) {\n\t\t\t\t_removeObservedElementFromRegisteredElement(registeredElement, element);\n\t\t\t}\n\t\t});\n\t\tassociatedElement.observer = observer;\n\t\tobserver.observe(element, observerOptions);\n\t\tassociatedElements.set(element, associatedElement);\n\t}\n\tif (!associatedElement.callbacks.includes(registeredElement.callback)) {\n\t\tassociatedElement.callbacks.push(registeredElement.callback);\n\t}\n};\n\nconst _removeObservedElementFromRegisteredElement = (registeredElement: RegisteredElement, element: HTMLElement) => {\n\tconst associatedElement = associatedElements.get(element);\n\tif (associatedElement) {\n\t\tassociatedElement.callbacks = associatedElement.callbacks.filter(itm => itm !== registeredElement.callback);\n\t\tif (!associatedElement.callbacks.length) {\n\t\t\tassociatedElement.observer?.disconnect();\n\t\t\tassociatedElements.delete(element);\n\t\t}\n\t}\n\tregisteredElement.observedElements = registeredElement.observedElements.filter(itm => itm !== element);\n};\n\nconst deregisterUI5Element = (el: UI5Element) => {\n\tconst registeredElement = registeredElements.get(el);\n\tif (!registeredElement) {\n\t\treturn;\n\t}\n\tconst oldObservedElements = [...registeredElement.observedElements];\n\toldObservedElements.forEach(observedElement => {\n\t\t_removeObservedElementFromRegisteredElement(registeredElement, observedElement);\n\t});\n\tel.detachInvalidate(registeredElement.invalidationCallback);\n\tregisteredElements.delete(el);\n};\n\nexport {\n\tgetEffectiveAriaLabelText,\n\tgetAssociatedLabelForTexts,\n\tregisterUI5Element,\n\tderegisterUI5Element,\n\tgetAllAccessibleNameRefTexts,\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Caret.js","sourceRoot":"","sources":["../../src/util/Caret.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,gBAAgB,GAAG,CAAC,KAAuB,EAAiB,EAAE;IACnE,aAAa;IACb,IAAI,QAAQ,GAAkB,CAAC,CAAC;IAEhC,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,cAAc,KAAK,CAAC,EAAE,EAAE,kBAAkB;QAC3E,QAAQ,GAAG,KAAK,CAAC,kBAAkB,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;KAC/F;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,KAAuB,EAAE,QAAuB,EAAE,EAAE;IAC7E,IAAI,KAAK,CAAC,cAAc,EAAE;QACzB,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,KAAK,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;KAC5C;SAAM;QACN,KAAK,CAAC,KAAK,EAAE,CAAC;KACd;AACF,CAAC,CAAC;AAEF,OAAO,EACN,gBAAgB,EAChB,gBAAgB,GAChB,CAAC"}
1
+ {"version":3,"file":"Caret.js","sourceRoot":"","sources":["../../src/util/Caret.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,gBAAgB,GAAG,CAAC,KAAuB,EAAiB,EAAE;IACnE,aAAa;IACb,IAAI,QAAQ,GAAkB,CAAC,CAAC;IAEhC,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,cAAc,KAAK,CAAC,EAAE,EAAE,kBAAkB;QAC3E,QAAQ,GAAG,KAAK,CAAC,kBAAkB,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;KAC/F;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,KAAuB,EAAE,QAAuB,EAAE,EAAE;IAC7E,IAAI,KAAK,CAAC,cAAc,EAAE;QACzB,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,KAAK,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;KAC5C;SAAM;QACN,KAAK,CAAC,KAAK,EAAE,CAAC;KACd;AACF,CAAC,CAAC;AAEF,OAAO,EACN,gBAAgB,EAChB,gBAAgB,GAChB,CAAC","sourcesContent":["/**\n * Returns the caret (cursor) position of the specified text field (field).\n * Return value range is 0-field.value.length.\n */\nconst getCaretPosition = (field: HTMLInputElement): number | null => {\n\t// Initialize\n\tlet caretPos: number | null = 0;\n\n\tif (field.selectionStart || field.selectionStart === 0) { // Firefox support\n\t\tcaretPos = field.selectionDirection === \"backward\" ? field.selectionStart : field.selectionEnd;\n\t}\n\n\treturn caretPos;\n};\n\nconst setCaretPosition = (field: HTMLInputElement, caretPos: number | null) => {\n\tif (field.selectionStart) {\n\t\tfield.focus();\n\t\tfield.setSelectionRange(caretPos, caretPos);\n\t} else {\n\t\tfield.focus();\n\t}\n};\n\nexport {\n\tgetCaretPosition,\n\tsetCaretPosition,\n};\n"]}