@ui5/webcomponents-base 0.0.0-e7dd012d7 → 0.0.0-e818f286e

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 (353) hide show
  1. package/.eslintignore +3 -0
  2. package/CHANGELOG.md +314 -0
  3. package/README.md +53 -7
  4. package/bundle.esm.js +20 -20
  5. package/dist/AssetRegistry.js +8 -9
  6. package/dist/Boot.js +59 -0
  7. package/dist/CSP.js +59 -0
  8. package/dist/CustomElementsRegistry.js +60 -4
  9. package/dist/CustomElementsScope.js +20 -98
  10. package/dist/CustomElementsScopeUtils.js +108 -0
  11. package/dist/DOMObserver.js +65 -0
  12. package/dist/Device.js +71 -773
  13. package/dist/EventProvider.js +30 -26
  14. package/dist/FeaturesRegistry.js +4 -1
  15. package/dist/FontFace.js +7 -95
  16. package/dist/InitialConfiguration.js +37 -21
  17. package/dist/Keys.js +98 -0
  18. package/dist/ManagedStyles.js +83 -0
  19. package/dist/MediaRange.js +109 -0
  20. package/dist/{util/parseProperties.js → PropertiesFileFormat.js} +6 -0
  21. package/dist/Render.js +175 -0
  22. package/dist/RenderScheduler.js +16 -138
  23. package/dist/Runtimes.js +107 -0
  24. package/dist/StaticArea.js +1 -29
  25. package/dist/StaticAreaItem.js +58 -65
  26. package/dist/SystemCSSVars.js +4 -25
  27. package/dist/UI5Element.js +315 -382
  28. package/dist/UI5ElementMetadata.js +132 -17
  29. package/dist/asset-registries/Icons.js +117 -14
  30. package/dist/asset-registries/Illustrations.js +30 -0
  31. package/dist/asset-registries/LocaleData.js +97 -68
  32. package/dist/asset-registries/Themes.js +29 -35
  33. package/dist/asset-registries/i18n.js +62 -49
  34. package/dist/assets/bundle.esm.81ba431e.js +43 -0
  35. package/dist/assets-meta/IconCollectionsAlias.js +18 -0
  36. package/dist/config/Icons.js +52 -0
  37. package/dist/config/Language.js +18 -20
  38. package/dist/config/Theme.js +25 -0
  39. package/dist/css/BusyIndicator.css +80 -0
  40. package/dist/css/FontFace.css +75 -0
  41. package/dist/css/OverrideFontFace.css +32 -0
  42. package/dist/css/SystemCSSVars.css +17 -0
  43. package/dist/delegate/ItemNavigation.js +238 -201
  44. package/dist/delegate/ResizeHandler.js +78 -37
  45. package/dist/delegate/ScrollEnablement.js +49 -20
  46. package/dist/features/F6Navigation.js +110 -0
  47. package/dist/features/OpenUI5Enablement.js +119 -0
  48. package/dist/features/OpenUI5Support.js +41 -6
  49. package/dist/generated/AssetParameters.js +1 -1
  50. package/dist/generated/VersionInfo.js +10 -0
  51. package/dist/generated/css/BusyIndicator.css.js +5 -0
  52. package/dist/generated/css/FontFace.css.js +5 -0
  53. package/dist/generated/css/OverrideFontFace.css.js +5 -0
  54. package/dist/generated/css/SystemCSSVars.css.js +5 -0
  55. package/dist/i18nBundle.js +38 -4
  56. package/dist/locale/applyDirection.js +6 -4
  57. package/dist/locale/directionChange.js +32 -0
  58. package/dist/locale/getEffectiveDir.js +28 -0
  59. package/dist/locale/languageChange.js +1 -1
  60. package/dist/renderer/LitRenderer.js +39 -18
  61. package/dist/renderer/directives/style-map.js +72 -0
  62. package/dist/renderer/executeTemplate.js +19 -2
  63. package/dist/sap/base/Log.js +241 -0
  64. package/dist/sap/base/assert.js +8 -0
  65. package/dist/sap/base/security/URLListValidator.js +148 -0
  66. package/dist/sap/base/security/encodeCSS.js +14 -0
  67. package/dist/sap/base/security/encodeXML.js +23 -0
  68. package/dist/sap/base/security/sanitizeHTML.js +16 -0
  69. package/dist/sap/base/strings/toHex.js +8 -0
  70. package/dist/sap/base/util/now.js +7 -0
  71. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +3585 -0
  72. package/dist/theming/CustomStyle.js +25 -5
  73. package/dist/theming/applyTheme.js +11 -16
  74. package/dist/theming/getConstructableStyle.js +7 -6
  75. package/dist/theming/getEffectiveLinksHrefs.js +27 -0
  76. package/dist/theming/getEffectiveStyle.js +24 -8
  77. package/dist/theming/getStylesString.js +4 -2
  78. package/dist/theming/getThemeDesignerTheme.js +25 -5
  79. package/dist/theming/preloadLinks.js +23 -0
  80. package/dist/types/CSSColor.js +9 -0
  81. package/dist/types/CalendarType.js +1 -1
  82. package/dist/types/DataType.js +13 -1
  83. package/dist/types/Float.js +4 -0
  84. package/dist/types/Integer.js +4 -0
  85. package/dist/types/InvisibleMessageMode.js +30 -0
  86. package/dist/types/ItemNavigationBehavior.js +2 -7
  87. package/dist/types/PopupState.js +1 -1
  88. package/dist/types/ValueState.js +1 -1
  89. package/dist/updateShadowRoot.js +29 -0
  90. package/dist/util/AriaLabelHelper.js +6 -8
  91. package/dist/util/Caret.js +32 -0
  92. package/dist/util/ColorConversion.js +398 -0
  93. package/dist/util/FocusableElements.js +22 -9
  94. package/dist/util/HTMLSanitizer.js +7 -0
  95. package/dist/util/InvisibleMessage.js +69 -0
  96. package/dist/util/PopupUtils.js +93 -0
  97. package/dist/util/SlotsHelper.js +43 -0
  98. package/dist/util/TabbableElements.js +5 -1
  99. package/dist/util/arraysAreEqual.js +15 -0
  100. package/dist/util/clamp.js +12 -0
  101. package/dist/util/createLinkInHead.js +19 -0
  102. package/dist/util/debounce.js +17 -0
  103. package/dist/util/escapeRegex.js +10 -0
  104. package/dist/util/generateHighlightedMarkup.js +42 -0
  105. package/dist/util/getActiveElement.js +11 -0
  106. package/dist/util/getClassCopy.js +10 -0
  107. package/dist/util/getEffectiveContentDensity.js +5 -0
  108. package/dist/util/getNormalizedTarget.js +16 -0
  109. package/dist/util/isDefaultSlotProvided.js +11 -0
  110. package/dist/util/isElementInView.js +15 -0
  111. package/dist/util/isNodeHidden.js +1 -1
  112. package/dist/util/isNodeTabbable.js +4 -4
  113. package/hash.txt +1 -0
  114. package/index.js +1 -1
  115. package/lib/generate-asset-parameters/index.js +8 -5
  116. package/lib/generate-styles/index.js +26 -0
  117. package/lib/generate-version-info/index.js +32 -0
  118. package/package-scripts.js +37 -28
  119. package/package.json +20 -13
  120. package/src/AssetRegistry.js +8 -9
  121. package/src/Boot.js +59 -0
  122. package/src/CSP.js +59 -0
  123. package/src/CustomElementsRegistry.js +60 -4
  124. package/src/CustomElementsScope.js +20 -98
  125. package/src/CustomElementsScopeUtils.js +108 -0
  126. package/src/DOMObserver.js +65 -0
  127. package/src/Device.js +71 -773
  128. package/src/EventProvider.js +30 -26
  129. package/src/FeaturesRegistry.js +4 -1
  130. package/src/FontFace.js +7 -95
  131. package/src/InitialConfiguration.js +37 -21
  132. package/src/Keys.js +98 -0
  133. package/src/ManagedStyles.js +83 -0
  134. package/src/MediaRange.js +109 -0
  135. package/src/{util/parseProperties.js → PropertiesFileFormat.js} +6 -0
  136. package/src/Render.js +175 -0
  137. package/src/RenderScheduler.js +16 -138
  138. package/src/Runtimes.js +107 -0
  139. package/src/StaticArea.js +1 -29
  140. package/src/StaticAreaItem.js +58 -65
  141. package/src/SystemCSSVars.js +4 -25
  142. package/src/UI5Element.js +315 -382
  143. package/src/UI5ElementMetadata.js +132 -17
  144. package/src/asset-registries/Icons.js +117 -14
  145. package/src/asset-registries/Illustrations.js +30 -0
  146. package/src/asset-registries/LocaleData.js +97 -68
  147. package/src/asset-registries/Themes.js +29 -35
  148. package/src/asset-registries/i18n.js +62 -49
  149. package/src/assets-meta/IconCollectionsAlias.js +18 -0
  150. package/src/config/Icons.js +52 -0
  151. package/src/config/Language.js +18 -20
  152. package/src/config/Theme.js +25 -0
  153. package/src/css/BusyIndicator.css +80 -0
  154. package/src/css/FontFace.css +75 -0
  155. package/src/css/OverrideFontFace.css +32 -0
  156. package/src/css/SystemCSSVars.css +17 -0
  157. package/src/delegate/ItemNavigation.js +238 -201
  158. package/src/delegate/ResizeHandler.js +78 -37
  159. package/src/delegate/ScrollEnablement.js +49 -20
  160. package/src/features/F6Navigation.js +110 -0
  161. package/src/features/OpenUI5Enablement.js +119 -0
  162. package/src/features/OpenUI5Support.js +41 -6
  163. package/src/i18nBundle.js +38 -4
  164. package/src/locale/applyDirection.js +6 -4
  165. package/src/locale/directionChange.js +32 -0
  166. package/src/locale/getEffectiveDir.js +28 -0
  167. package/src/locale/languageChange.js +1 -1
  168. package/src/renderer/LitRenderer.js +39 -18
  169. package/src/renderer/directives/style-map.js +72 -0
  170. package/src/renderer/executeTemplate.js +19 -2
  171. package/src/theming/CustomStyle.js +25 -5
  172. package/src/theming/applyTheme.js +11 -16
  173. package/src/theming/getConstructableStyle.js +7 -6
  174. package/src/theming/getEffectiveLinksHrefs.js +27 -0
  175. package/src/theming/getEffectiveStyle.js +24 -8
  176. package/src/theming/getStylesString.js +4 -2
  177. package/src/theming/getThemeDesignerTheme.js +25 -5
  178. package/src/theming/preloadLinks.js +23 -0
  179. package/src/types/CSSColor.js +9 -0
  180. package/src/types/CalendarType.js +1 -1
  181. package/src/types/DataType.js +13 -1
  182. package/src/types/Float.js +4 -0
  183. package/src/types/Integer.js +4 -0
  184. package/src/types/InvisibleMessageMode.js +30 -0
  185. package/src/types/ItemNavigationBehavior.js +2 -7
  186. package/src/types/PopupState.js +1 -1
  187. package/src/types/ValueState.js +1 -1
  188. package/src/updateShadowRoot.js +29 -0
  189. package/src/util/AriaLabelHelper.js +6 -8
  190. package/src/util/Caret.js +32 -0
  191. package/src/util/ColorConversion.js +398 -0
  192. package/src/util/FocusableElements.js +22 -9
  193. package/src/util/HTMLSanitizer.js +7 -0
  194. package/src/util/InvisibleMessage.js +69 -0
  195. package/src/util/PopupUtils.js +93 -0
  196. package/src/util/SlotsHelper.js +43 -0
  197. package/src/util/TabbableElements.js +5 -1
  198. package/src/util/arraysAreEqual.js +15 -0
  199. package/src/util/clamp.js +12 -0
  200. package/src/util/createLinkInHead.js +19 -0
  201. package/src/util/debounce.js +17 -0
  202. package/src/util/escapeRegex.js +10 -0
  203. package/src/util/generateHighlightedMarkup.js +42 -0
  204. package/src/util/getActiveElement.js +11 -0
  205. package/src/util/getClassCopy.js +10 -0
  206. package/src/util/getEffectiveContentDensity.js +5 -0
  207. package/src/util/getNormalizedTarget.js +16 -0
  208. package/src/util/isDefaultSlotProvided.js +11 -0
  209. package/src/util/isElementInView.js +15 -0
  210. package/src/util/isNodeHidden.js +1 -1
  211. package/src/util/isNodeTabbable.js +4 -4
  212. package/used-modules.txt +10 -0
  213. package/bundle.es5.js +0 -28
  214. package/config/.eslintrc.js +0 -3
  215. package/config/rollup.config.js +0 -1
  216. package/dist/SVGIconRegistry.js +0 -73
  217. package/dist/boot.js +0 -34
  218. package/dist/compatibility/DOMObserver.js +0 -62
  219. package/dist/compatibility/patchNodeValue.js +0 -24
  220. package/dist/compatibility/whenPolyfillLoaded.js +0 -26
  221. package/dist/config/AssetsPath.js +0 -17
  222. package/dist/delegate/CustomResize.js +0 -78
  223. package/dist/delegate/NativeResize.js +0 -45
  224. package/dist/features/PropertiesFormatSupport.js +0 -8
  225. package/dist/features/browsersupport/Edge.js +0 -6
  226. package/dist/features/browsersupport/IE11.js +0 -42
  227. package/dist/features/browsersupport/IE11WithWebComponentsPolyfill.js +0 -5
  228. package/dist/renderer/ifDefined.js +0 -21
  229. package/dist/renderer/scopeHTML.js +0 -32
  230. package/dist/resources/bundle.es5.js +0 -212
  231. package/dist/resources/bundle.es5.js.map +0 -1
  232. package/dist/resources/bundle.esm.js +0 -129
  233. package/dist/resources/bundle.esm.js.map +0 -1
  234. package/dist/test-resources/assets/Themes.js +0 -17
  235. package/dist/test-resources/elements/Child.js +0 -35
  236. package/dist/test-resources/elements/Generic.js +0 -84
  237. package/dist/test-resources/elements/GenericExt.js +0 -26
  238. package/dist/test-resources/elements/NoShadowDOM.js +0 -13
  239. package/dist/test-resources/elements/Parent.js +0 -37
  240. package/dist/test-resources/elements/WithStaticArea.js +0 -76
  241. package/dist/test-resources/pages/AllTestElements.html +0 -42
  242. package/dist/test-resources/pages/Configuration.html +0 -20
  243. package/dist/test-resources/pages/ConfigurationScript.html +0 -36
  244. package/dist/test-resources/pages/assets/messagebundle_de.properties +0 -1
  245. package/dist/test-resources/pages/assets/messagebundle_en.properties +0 -1
  246. package/dist/test-resources/pages/assets/messagebundle_es.properties +0 -1
  247. package/dist/test-resources/pages/assets/messagebundle_fr.properties +0 -1
  248. package/dist/test-resources/pages/i18n.html +0 -40
  249. package/dist/test-resources/specs/ConfigurationChange.spec.js +0 -25
  250. package/dist/test-resources/specs/ConfigurationScript.spec.js +0 -61
  251. package/dist/test-resources/specs/ConfigurationURL.spec.js +0 -45
  252. package/dist/test-resources/specs/CustomTheme.spec.js +0 -25
  253. package/dist/test-resources/specs/StaticArea.spec.js +0 -34
  254. package/dist/test-resources/specs/Theming.spec.js +0 -31
  255. package/dist/test-resources/specs/UI5ElementInvalidation.js +0 -258
  256. package/dist/test-resources/specs/UI5ElementLifecycle.js +0 -96
  257. package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +0 -101
  258. package/dist/test-resources/specs/UI5ElementMetadataExt.js +0 -40
  259. package/dist/test-resources/specs/UI5ElementPropertyValidation.js +0 -12
  260. package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +0 -65
  261. package/dist/test-resources/specs/UI5ElementShadowDOM.js +0 -22
  262. package/dist/test-resources/specs/UI5ElementSlots.js +0 -34
  263. package/dist/theming/CSSVarsPonyfill.js +0 -68
  264. package/dist/theming/adaptCSSForIE.js +0 -95
  265. package/dist/theming/createComponentStyleTag.js +0 -54
  266. package/dist/theming/createThemePropertiesStyleTag.js +0 -20
  267. package/dist/thirdparty/Array.from.js +0 -16
  268. package/dist/thirdparty/Array.prototype.fill.js +0 -44
  269. package/dist/thirdparty/Array.prototype.find.js +0 -46
  270. package/dist/thirdparty/Array.prototype.includes.js +0 -51
  271. package/dist/thirdparty/Element.prototype.closest.js +0 -11
  272. package/dist/thirdparty/Element.prototype.matches.js +0 -6
  273. package/dist/thirdparty/Map.prototype.keys.js +0 -9
  274. package/dist/thirdparty/Number.isInteger.js +0 -5
  275. package/dist/thirdparty/Number.isNaN.js +0 -1
  276. package/dist/thirdparty/Number.parseFloat.js +0 -1
  277. package/dist/thirdparty/Number.parseInt.js +0 -1
  278. package/dist/thirdparty/Object.assign.js +0 -31
  279. package/dist/thirdparty/Object.entries.js +0 -11
  280. package/dist/thirdparty/Symbol.js +0 -2
  281. package/dist/thirdparty/WeakSet.js +0 -27
  282. package/dist/thirdparty/es6-string-methods.js +0 -182
  283. package/dist/thirdparty/events-polyfills.js +0 -89
  284. package/dist/thirdparty/fetch.js +0 -1
  285. package/dist/thirdparty/template.js +0 -600
  286. package/dist/thirdparty/webcomponents-sd-ce-pf.js +0 -318
  287. package/dist/util/EffectiveAssetPath.js +0 -27
  288. package/dist/util/encodeCSS.js +0 -24
  289. package/dist/util/findNodeOwner.js +0 -35
  290. package/dist/util/isSlot.js +0 -3
  291. package/dist/webcomponentsjs/LICENSE.md +0 -19
  292. package/dist/webcomponentsjs/README.md +0 -229
  293. package/dist/webcomponentsjs/bundles/webcomponents-ce.js +0 -63
  294. package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
  295. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -297
  296. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
  297. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -208
  298. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
  299. package/dist/webcomponentsjs/bundles/webcomponents-sd.js +0 -166
  300. package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
  301. package/dist/webcomponentsjs/custom-elements-es5-adapter.js +0 -15
  302. package/dist/webcomponentsjs/package.json +0 -46
  303. package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
  304. package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
  305. package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
  306. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
  307. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
  308. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
  309. package/dist/webcomponentsjs/webcomponents-bundle.js +0 -298
  310. package/dist/webcomponentsjs/webcomponents-bundle.js.map +0 -1
  311. package/dist/webcomponentsjs/webcomponents-loader.js +0 -185
  312. package/src/SVGIconRegistry.js +0 -73
  313. package/src/boot.js +0 -34
  314. package/src/compatibility/DOMObserver.js +0 -62
  315. package/src/compatibility/patchNodeValue.js +0 -24
  316. package/src/compatibility/whenPolyfillLoaded.js +0 -26
  317. package/src/config/AssetsPath.js +0 -17
  318. package/src/delegate/CustomResize.js +0 -78
  319. package/src/delegate/NativeResize.js +0 -45
  320. package/src/features/PropertiesFormatSupport.js +0 -8
  321. package/src/features/browsersupport/Edge.js +0 -6
  322. package/src/features/browsersupport/IE11.js +0 -42
  323. package/src/features/browsersupport/IE11WithWebComponentsPolyfill.js +0 -5
  324. package/src/renderer/ifDefined.js +0 -21
  325. package/src/renderer/scopeHTML.js +0 -32
  326. package/src/theming/CSSVarsPonyfill.js +0 -68
  327. package/src/theming/adaptCSSForIE.js +0 -95
  328. package/src/theming/createComponentStyleTag.js +0 -54
  329. package/src/theming/createThemePropertiesStyleTag.js +0 -20
  330. package/src/thirdparty/Array.from.js +0 -16
  331. package/src/thirdparty/Array.prototype.fill.js +0 -44
  332. package/src/thirdparty/Array.prototype.find.js +0 -46
  333. package/src/thirdparty/Array.prototype.includes.js +0 -51
  334. package/src/thirdparty/Element.prototype.closest.js +0 -11
  335. package/src/thirdparty/Element.prototype.matches.js +0 -6
  336. package/src/thirdparty/Map.prototype.keys.js +0 -9
  337. package/src/thirdparty/Number.isInteger.js +0 -5
  338. package/src/thirdparty/Number.isNaN.js +0 -1
  339. package/src/thirdparty/Number.parseFloat.js +0 -1
  340. package/src/thirdparty/Number.parseInt.js +0 -1
  341. package/src/thirdparty/Object.assign.js +0 -31
  342. package/src/thirdparty/Object.entries.js +0 -11
  343. package/src/thirdparty/Symbol.js +0 -2
  344. package/src/thirdparty/WeakSet.js +0 -27
  345. package/src/thirdparty/es6-string-methods.js +0 -182
  346. package/src/thirdparty/events-polyfills.js +0 -89
  347. package/src/thirdparty/fetch.js +0 -1
  348. package/src/thirdparty/template.js +0 -600
  349. package/src/thirdparty/webcomponents-sd-ce-pf.js +0 -318
  350. package/src/util/EffectiveAssetPath.js +0 -27
  351. package/src/util/encodeCSS.js +0 -24
  352. package/src/util/findNodeOwner.js +0 -35
  353. package/src/util/isSlot.js +0 -3
@@ -0,0 +1,9 @@
1
+ import DataType from "./DataType.js";
2
+
3
+ class CSSColor extends DataType {
4
+ static isValid(value) {
5
+ return /^(#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})|rgb\(\s*((1?[0-9]?[0-9]|2([0-4][0-9]|5[0-5]))|([0-9]?[0-9](\.[0-9]+)?|100(\.0+)?)%)\s*(,\s*((1?[0-9]?[0-9]|2([0-4][0-9]|5[0-5]))|([0-9]?[0-9](\.[0-9]+)?|100(\.0+)?)%)\s*){2}\)|rgba\((\s*((1?[0-9]?[0-9]|2([0-4][0-9]|5[0-5]))|([0-9]?[0-9](\.[0-9]+)?|100(\.0+)?)%)\s*,){3}\s*(0(\.[0-9]+)?|1(\.0+)?)\s*\)|hsl\(\s*([0-2]?[0-9]?[0-9]|3([0-5][0-9]|60))\s*(,\s*(([0-9]?[0-9](\.[0-9]+)?|100(\.0+)?)%)\s*){2}\)|hsla\(\s*([0-2]?[0-9]?[0-9]|3([0-5][0-9]|60))\s*,(\s*(([0-9]?[0-9](\.[0-9]+)?|100(\.0+)?)%)\s*,){2}\s*(0(\.[0-9]+)?|1(\.0+)?)\s*\)|aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgrey|darkgreen|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|grey|green|greenyellow|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgrey|lightgreen|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silverskyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen|transparent|inherit|)$/.test(value ); // eslint-disable-line
6
+ }
7
+ }
8
+
9
+ export default CSSColor;
@@ -17,6 +17,6 @@ class CalendarType extends DataType {
17
17
  }
18
18
  }
19
19
 
20
- CalendarType.generateTypeAcessors(CalendarTypes);
20
+ CalendarType.generateTypeAccessors(CalendarTypes);
21
21
 
22
22
  export default CalendarType;
@@ -11,7 +11,19 @@ class DataType {
11
11
  static isValid(value) {
12
12
  }
13
13
 
14
- static generateTypeAcessors(types) {
14
+ static attributeToProperty(attributeValue) {
15
+ return attributeValue;
16
+ }
17
+
18
+ static propertyToAttribute(propertyValue) {
19
+ return `${propertyValue}`;
20
+ }
21
+
22
+ static valuesAreEqual(value1, value2) {
23
+ return value1 === value2;
24
+ }
25
+
26
+ static generateTypeAccessors(types) {
15
27
  Object.keys(types).forEach(type => {
16
28
  Object.defineProperty(this, type, {
17
29
  get() {
@@ -5,6 +5,10 @@ class Float extends DataType {
5
5
  // Assuming that integers are floats as well!
6
6
  return Number(value) === value;
7
7
  }
8
+
9
+ static attributeToProperty(attributeValue) {
10
+ return parseFloat(attributeValue);
11
+ }
8
12
  }
9
13
 
10
14
  export default Float;
@@ -4,6 +4,10 @@ class Integer extends DataType {
4
4
  static isValid(value) {
5
5
  return Number.isInteger(value);
6
6
  }
7
+
8
+ static attributeToProperty(attributeValue) {
9
+ return parseInt(attributeValue);
10
+ }
7
11
  }
8
12
 
9
13
  export default Integer;
@@ -0,0 +1,30 @@
1
+ import DataType from "./DataType.js";
2
+
3
+ /**
4
+ * Enumeration for different mode behaviors of the <code>InvisibleMessage</code>.
5
+ * @private
6
+ */
7
+ const InvisibleMessageModes = {
8
+
9
+ /**
10
+ * Indicates that updates to the region should be presented at the next graceful opportunity,
11
+ * such as at the end of reading the current sentence, or when the user pauses typing.
12
+ */
13
+ Polite: "Polite",
14
+
15
+ /**
16
+ * Indicates that updates to the region have the highest priority and should be presented to the user immediately.
17
+ */
18
+ Assertive: "Assertive",
19
+
20
+ };
21
+
22
+ class InvisibleMessageMode extends DataType {
23
+ static isValid(value) {
24
+ return !!InvisibleMessageModes[value];
25
+ }
26
+ }
27
+
28
+ InvisibleMessageMode.generateTypeAccessors(InvisibleMessageModes);
29
+
30
+ export default InvisibleMessageModes;
@@ -4,18 +4,13 @@
4
4
  */
5
5
  const ItemNavigationBehavior = {
6
6
  /**
7
- * Static behavior: when border of the items is reached, you can't go out of the cage.
7
+ * Static behavior: navigations stops at the first or last item.
8
8
  */
9
9
  Static: "Static",
10
10
 
11
11
  /**
12
- * Cycling behavior: when border of the items is reached, you can cycle through the items.
12
+ * Cycling behavior: navigating past the last item continues with the first and vice versa.
13
13
  */
14
14
  Cyclic: "Cyclic",
15
-
16
- /**
17
- * Paging behavior: when border of the items is reached, tou can go up/down based on the rowsize(e.g. DayPicker)
18
- */
19
- Paging: "Paging",
20
15
  };
21
16
  export default ItemNavigationBehavior;
@@ -32,6 +32,6 @@ class PopupState extends DataType {
32
32
  }
33
33
  }
34
34
 
35
- PopupState.generateTypeAcessors(PopupStates);
35
+ PopupState.generateTypeAccessors(PopupStates);
36
36
 
37
37
  export default PopupState;
@@ -17,6 +17,6 @@ class ValueState extends DataType {
17
17
  }
18
18
  }
19
19
 
20
- ValueState.generateTypeAcessors(ValueStates);
20
+ ValueState.generateTypeAccessors(ValueStates);
21
21
 
22
22
  export default ValueState;
@@ -0,0 +1,29 @@
1
+ import executeTemplate from "./renderer/executeTemplate.js";
2
+ import getConstructableStyle from "./theming/getConstructableStyle.js";
3
+ import getEffectiveStyle from "./theming/getEffectiveStyle.js";
4
+ import getEffectiveLinksHrefs from "./theming/getEffectiveLinksHrefs.js";
5
+ import { shouldUseLinks } from "./CSP.js";
6
+
7
+ /**
8
+ * Updates the shadow root of a UI5Element or its static area item
9
+ * @param element
10
+ * @param forStaticArea
11
+ */
12
+ const updateShadowRoot = (element, forStaticArea = false) => {
13
+ let styleStrOrHrefsArr;
14
+ const template = forStaticArea ? "staticAreaTemplate" : "template";
15
+ const shadowRoot = forStaticArea ? element.staticAreaItem.shadowRoot : element.shadowRoot;
16
+ const renderResult = executeTemplate(element.constructor[template], element);
17
+
18
+ if (shouldUseLinks()) {
19
+ styleStrOrHrefsArr = getEffectiveLinksHrefs(element.constructor, forStaticArea);
20
+ } else if (document.adoptedStyleSheets) { // Chrome
21
+ shadowRoot.adoptedStyleSheets = getConstructableStyle(element.constructor, forStaticArea);
22
+ } else { // FF, Safari
23
+ styleStrOrHrefsArr = getEffectiveStyle(element.constructor, forStaticArea);
24
+ }
25
+
26
+ element.constructor.render(renderResult, shadowRoot, styleStrOrHrefsArr, forStaticArea, { host: element });
27
+ };
28
+
29
+ export default updateShadowRoot;
@@ -1,9 +1,7 @@
1
- import findNodeOwner from "./findNodeOwner.js";
2
-
3
1
  const getEffectiveAriaLabelText = el => {
4
- if (!el.ariaLabelledby) {
5
- if (el.ariaLabel) {
6
- return el.ariaLabel;
2
+ if (!el.accessibleNameRef) {
3
+ if (el.accessibleName) {
4
+ return el.accessibleName;
7
5
  }
8
6
 
9
7
  return undefined;
@@ -15,12 +13,12 @@ const getEffectiveAriaLabelText = el => {
15
13
  /**
16
14
  *
17
15
  * @param {HTMLElement} el Defines the HTMLElement, for which you need to get all related texts
18
- * @param {HTMLElement} ownerDocument (Optional) Defines the HTMLElement(might document or custom element) where the you want to search for the texts.
16
+ * @param {Document|HTMLElement} ownerDocument (Optional) Defines the document or element where you want to search for the texts
19
17
  * @param {String} readyIds (Optional) Defines a string of elements ids. The text of these elements will be returned. If used you should provide either el or ownerDocument
20
18
  */
21
19
  const getAriaLabelledByTexts = (el, ownerDocument, readyIds = "") => {
22
- const ids = (readyIds && readyIds.split(" ")) || el.ariaLabelledby.split(" ");
23
- const owner = ownerDocument || findNodeOwner(el);
20
+ const ids = (readyIds && readyIds.split(" ")) || el.accessibleNameRef.split(" ");
21
+ const owner = ownerDocument || el.getRootNode();
24
22
  let result = "";
25
23
 
26
24
  ids.forEach((elementId, index) => {
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Returns the caret (cursor) position of the specified text field (field).
3
+ * Return value range is 0-field.value.length.
4
+ */
5
+ const getCaretPosition = field => {
6
+ // Initialize
7
+ let caretPos = 0;
8
+
9
+ if (field.selectionStart || field.selectionStart === "0") { // Firefox support
10
+ caretPos = field.selectionDirection === "backward" ? field.selectionStart : field.selectionEnd;
11
+ }
12
+
13
+ return caretPos;
14
+ };
15
+
16
+ const setCaretPosition = (field, caretPos) => {
17
+ if (field.createTextRange) {
18
+ const range = field.createTextRange();
19
+ range.move("character", caretPos);
20
+ range.select();
21
+ } else if (field.selectionStart) {
22
+ field.focus();
23
+ field.setSelectionRange(caretPos, caretPos);
24
+ } else {
25
+ field.focus();
26
+ }
27
+ };
28
+
29
+ export {
30
+ getCaretPosition,
31
+ setCaretPosition,
32
+ };
@@ -0,0 +1,398 @@
1
+ /**
2
+ *
3
+ * @param {String} color Color in one of the following formats: RGBA or HEX
4
+ */
5
+
6
+ /**
7
+ * Map of CSS colors to hex representation
8
+ */
9
+ const CSSColors = {
10
+ aliceblue: "f0f8ff",
11
+ antiquewhite: "faebd7",
12
+ aqua: "00ffff",
13
+ aquamarine: "7fffd4",
14
+ azure: "f0ffff",
15
+ beige: "f5f5dc",
16
+ bisque: "ffe4c4",
17
+ black: "000000",
18
+ blanchedalmond: "ffebcd",
19
+ blue: "0000ff",
20
+ blueviolet: "8a2be2",
21
+ brown: "a52a2a",
22
+ burlywood: "deb887",
23
+ cadetblue: "5f9ea0",
24
+ chartreuse: "7fff00",
25
+ chocolate: "d2691e",
26
+ coral: "ff7f50",
27
+ cornflowerblue: "6495ed",
28
+ cornsilk: "fff8dc",
29
+ crimson: "dc143c",
30
+ cyan: "00ffff",
31
+ darkblue: "00008b",
32
+ darkcyan: "008b8b",
33
+ darkgoldenrod: "b8860b",
34
+ darkgray: "a9a9a9",
35
+ darkgrey: "a9a9a9",
36
+ darkgreen: "006400",
37
+ darkkhaki: "bdb76b",
38
+ darkmagenta: "8b008b",
39
+ darkolivegreen: "556b2f",
40
+ darkorange: "ff8c00",
41
+ darkorchid: "9932cc",
42
+ darkred: "8b0000",
43
+ darksalmon: "e9967a",
44
+ darkseagreen: "8fbc8f",
45
+ darkslateblue: "483d8b",
46
+ darkslategray: "2f4f4f",
47
+ darkslategrey: "2f4f4f",
48
+ darkturquoise: "00ced1",
49
+ darkviolet: "9400d3",
50
+ deeppink: "ff1493",
51
+ deepskyblue: "00bfff",
52
+ dimgray: "696969",
53
+ dimgrey: "696969",
54
+ dodgerblue: "1e90ff",
55
+ firebrick: "b22222",
56
+ floralwhite: "fffaf0",
57
+ forestgreen: "228b22",
58
+ fuchsia: "ff00ff",
59
+ gainsboro: "dcdcdc",
60
+ ghostwhite: "f8f8ff",
61
+ gold: "ffd700",
62
+ goldenrod: "daa520",
63
+ gray: "808080",
64
+ grey: "808080",
65
+ green: "008000",
66
+ greenyellow: "adff2f",
67
+ honeydew: "f0fff0",
68
+ hotpink: "ff69b4",
69
+ indianred: "cd5c5c",
70
+ indigo: "4b0082",
71
+ ivory: "fffff0",
72
+ khaki: "f0e68c",
73
+ lavender: "e6e6fa",
74
+ lavenderblush: "fff0f5",
75
+ lawngreen: "7cfc00",
76
+ lemonchiffon: "fffacd",
77
+ lightblue: "add8e6",
78
+ lightcoral: "f08080",
79
+ lightcyan: "e0ffff",
80
+ lightgoldenrodyellow: "fafad2",
81
+ lightgray: "d3d3d3",
82
+ lightgrey: "d3d3d3",
83
+ lightgreen: "90ee90",
84
+ lightpink: "ffb6c1",
85
+ lightsalmon: "ffa07a",
86
+ lightseagreen: "20b2aa",
87
+ lightskyblue: "87cefa",
88
+ lightslategray: "778899",
89
+ lightslategrey: "778899",
90
+ lightsteelblue: "b0c4de",
91
+ lightyellow: "ffffe0",
92
+ lime: "00ff00",
93
+ limegreen: "32cd32",
94
+ linen: "faf0e6",
95
+ magenta: "ff00ff",
96
+ maroon: "800000",
97
+ mediumaquamarine: "66cdaa",
98
+ mediumblue: "0000cd",
99
+ mediumorchid: "ba55d3",
100
+ mediumpurple: "9370db",
101
+ mediumseagreen: "3cb371",
102
+ mediumslateblue: "7b68ee",
103
+ mediumspringgreen: "00fa9a",
104
+ mediumturquoise: "48d1cc",
105
+ mediumvioletred: "c71585",
106
+ midnightblue: "191970",
107
+ mintcream: "f5fffa",
108
+ mistyrose: "ffe4e1",
109
+ moccasin: "ffe4b5",
110
+ navajowhite: "ffdead",
111
+ navy: "000080",
112
+ oldlace: "fdf5e6",
113
+ olive: "808000",
114
+ olivedrab: "6b8e23",
115
+ orange: "ffa500",
116
+ orangered: "ff4500",
117
+ orchid: "da70d6",
118
+ palegoldenrod: "eee8aa",
119
+ palegreen: "98fb98",
120
+ paleturquoise: "afeeee",
121
+ palevioletred: "db7093",
122
+ papayawhip: "ffefd5",
123
+ peachpuff: "ffdab9",
124
+ peru: "cd853f",
125
+ pink: "ffc0cb",
126
+ plum: "dda0dd",
127
+ powderblue: "b0e0e6",
128
+ purple: "800080",
129
+ red: "ff0000",
130
+ rosybrown: "bc8f8f",
131
+ royalblue: "4169e1",
132
+ saddlebrown: "8b4513",
133
+ salmon: "fa8072",
134
+ sandybrown: "f4a460",
135
+ seagreen: "2e8b57",
136
+ seashell: "fff5ee",
137
+ sienna: "a0522d",
138
+ silver: "c0c0c0",
139
+ skyblue: "87ceeb",
140
+ slateblue: "6a5acd",
141
+ slategray: "708090",
142
+ slategrey: "708090",
143
+ snow: "fffafa",
144
+ springgreen: "00ff7f",
145
+ steelblue: "4682b4",
146
+ tan: "d2b48c",
147
+ teal: "008080",
148
+ thistle: "d8bfd8",
149
+ tomato: "ff6347",
150
+ turquoise: "40e0d0",
151
+ violet: "ee82ee",
152
+ wheat: "f5deb3",
153
+ white: "ffffff",
154
+ whitesmoke: "f5f5f5",
155
+ yellow: "ffff00",
156
+ yellowgreen: "9acd32",
157
+ transparent: "00000000",
158
+ };
159
+
160
+ const getRGBColor = color => {
161
+ if (color.startsWith("rgba")) {
162
+ return RGBAToRGB(color);
163
+ }
164
+
165
+ if (color.startsWith("rgb")) {
166
+ return RGBStringToRGBObject(color);
167
+ }
168
+
169
+ // HEX
170
+ if (color.indexOf("#") === 0) {
171
+ // Shorthand Syntax
172
+ if (color.length === 4) {
173
+ color = `${color[1]}${color[1]}${color[2]}${color[2]}${color[3]}${color[3]}`;
174
+ } else {
175
+ color = color.slice(1, color.length);
176
+ }
177
+ }
178
+
179
+ // Css Color
180
+ if (Object.keys(CSSColors).includes(color)) {
181
+ color = CSSColors[color];
182
+ }
183
+
184
+ return HEXToRGB(color);
185
+ };
186
+
187
+ /**
188
+ * Return an object with the properties for each of the main colors(red, green, blue)
189
+ * @param {String} color Receives a color in the following format: "rgba(0, 0, 0, 1)
190
+ */
191
+ const RGBAToRGB = color => {
192
+ const openingBracketIndex = color.indexOf("("),
193
+ commasIndexes = [];
194
+
195
+ for (let i = 0; i < color.length; i++) {
196
+ if (color[i] === ",") {
197
+ commasIndexes.push(i);
198
+ }
199
+ }
200
+
201
+ return {
202
+ r: parseInt(color.slice(openingBracketIndex + 1, commasIndexes[0]).trim()),
203
+ g: parseInt(color.slice(commasIndexes[0] + 1, commasIndexes[1]).trim()),
204
+ b: parseInt(color.slice(commasIndexes[1] + 1, commasIndexes[2]).trim()),
205
+ };
206
+ };
207
+
208
+ /**
209
+ * Return an object with the properties for each of the main colors(red, green, blue)
210
+ * @param {String} color Receives a color in the following format: "rgb(0, 0, 0)
211
+ */
212
+ const RGBStringToRGBObject = color => {
213
+ const openingBracketIndex = color.indexOf("("),
214
+ closingBraketIndex = color.indexOf(")"),
215
+ commasIndexes = [];
216
+
217
+ for (let i = 0; i < color.length; i++) {
218
+ if (color[i] === ",") {
219
+ commasIndexes.push(i);
220
+ }
221
+ }
222
+
223
+ return {
224
+ r: parseInt(color.slice(openingBracketIndex + 1, commasIndexes[0]).trim()),
225
+ g: parseInt(color.slice(commasIndexes[0] + 1, commasIndexes[1]).trim()),
226
+ b: parseInt(color.slice(commasIndexes[1] + 1, closingBraketIndex).trim()),
227
+ };
228
+ };
229
+
230
+ const HSLToRGB = (color = {
231
+ h: undefined,
232
+ s: undefined,
233
+ l: undefined,
234
+ }) => {
235
+ // Formula taken from https://www.rapidtables.com/convert/color/hsl-to-rgb.html
236
+ const C = (1 - Math.abs((2 * color.l) - 1)) * color.s,
237
+ X = C * (1 - Math.abs(((color.h / 60) % 2) - 1)),
238
+ m = color.l - C / 2;
239
+
240
+ let tempColor = {};
241
+ switch (Math.round(color.h / 60)) {
242
+ // 0 ≤ H < 60
243
+ case 0:
244
+ tempColor = {
245
+ r: C,
246
+ g: X,
247
+ b: 0,
248
+ };
249
+ break;
250
+
251
+ // 60 ≤ H < 120
252
+ case 1:
253
+ tempColor = {
254
+ r: X,
255
+ g: C,
256
+ b: 0,
257
+ };
258
+ break;
259
+
260
+ // 120 ≤ H < 180
261
+ case 2:
262
+ tempColor = {
263
+ r: 0,
264
+ g: C,
265
+ b: X,
266
+ };
267
+ break;
268
+
269
+ // 180 ≤ H < 240
270
+ case 3:
271
+ tempColor = {
272
+ r: 0,
273
+ g: X,
274
+ b: C,
275
+ };
276
+ break;
277
+
278
+ // 240 ≤ H < 300
279
+ case 4:
280
+ tempColor = {
281
+ r: X,
282
+ g: 0,
283
+ b: C,
284
+ };
285
+ break;
286
+
287
+ // 300 ≤ H < 360
288
+ default:
289
+ tempColor = {
290
+ r: C,
291
+ g: 0,
292
+ b: X,
293
+ };
294
+ }
295
+
296
+ return {
297
+ r: Math.floor((tempColor.r + m) * 255),
298
+ g: Math.floor((tempColor.g + m) * 255),
299
+ b: Math.floor((tempColor.b + m) * 255),
300
+ };
301
+ };
302
+
303
+ const HEXToRGB = hex => {
304
+ // Please make sure you pass a valid 6 digit hex color
305
+ // In the implementation of this method we assume that the hex argument is a 6 digit valid hex color
306
+
307
+ const rgbValues = {
308
+ r: hex.substr(0, 2),
309
+ g: hex.substr(2, 2),
310
+ b: hex.substr(4, 2),
311
+ };
312
+
313
+ const rgbKeys = Object.keys(rgbValues);
314
+
315
+ rgbKeys.forEach(key => {
316
+ rgbValues[key] = parseInt(rgbValues[key], 16);
317
+ });
318
+
319
+ return rgbValues;
320
+ };
321
+
322
+ /**
323
+ * Returns the hex value of the color as string
324
+ * @param {Object} color Receives an object with the properties for each of the main colors(r, g, b)
325
+ */
326
+ const RGBtoHEX = color => {
327
+ const hexMap = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E"];
328
+ let hexValue = "#";
329
+
330
+ let divisionNumber = color.r / 16;
331
+ let remainder = color.r % 16;
332
+ hexValue += String(hexMap[Math.floor(divisionNumber)]);
333
+ hexValue += String(hexMap[remainder]);
334
+
335
+ divisionNumber = color.g / 16;
336
+ remainder = color.g % 16;
337
+ hexValue += String(hexMap[Math.floor(divisionNumber)]);
338
+ hexValue += String(hexMap[remainder]);
339
+
340
+ divisionNumber = color.b / 16;
341
+ remainder = color.b % 16;
342
+ hexValue += String(hexMap[Math.floor(divisionNumber)]);
343
+ hexValue += String(hexMap[remainder]);
344
+
345
+ return hexValue;
346
+ };
347
+
348
+ const RGBToHSL = (color = {
349
+ r: undefined,
350
+ g: undefined,
351
+ b: undefined,
352
+ }) => {
353
+ const R = color.r / 255,
354
+ G = color.g / 255,
355
+ B = color.b / 255,
356
+ max = Math.max(R, G, B),
357
+ min = Math.min(R, G, B),
358
+ delta = max - min;
359
+
360
+ let h,
361
+ s;
362
+
363
+ // Hue calculation
364
+ if (delta === 0) {
365
+ h = 0;
366
+ } else if (max === R) {
367
+ h = 60 * (((G - B) / delta) % 6);
368
+ } else if (max === G) {
369
+ h = 60 * (((B - R) / delta) + 2);
370
+ } else if (max === B) {
371
+ h = 60 * (((R - G) / delta) + 4);
372
+ }
373
+
374
+ // Lightness calculation
375
+ const l = (max + min) / 2;
376
+
377
+ // Saturation calculation
378
+ if (delta === 0) {
379
+ s = 0;
380
+ } else {
381
+ s = delta / (1 - Math.abs(2 * l - 1));
382
+ }
383
+
384
+ return {
385
+ h,
386
+ s,
387
+ l,
388
+ };
389
+ };
390
+
391
+ export {
392
+ getRGBColor,
393
+ HSLToRGB,
394
+ HEXToRGB,
395
+ RGBToHSL,
396
+ RGBStringToRGBObject,
397
+ RGBtoHEX,
398
+ };