@ui5/webcomponents-base 0.0.0-0fcda382e → 0.0.0-11d529e8a

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 (298) hide show
  1. package/.eslintignore +2 -0
  2. package/CHANGELOG.md +137 -0
  3. package/README.md +26 -1
  4. package/bundle.esm.js +17 -7
  5. package/dist/AssetRegistry.js +8 -6
  6. package/dist/Boot.js +43 -0
  7. package/dist/CustomElementsRegistry.js +24 -8
  8. package/dist/CustomElementsScope.js +108 -0
  9. package/dist/DOMObserver.js +65 -0
  10. package/dist/Device.js +58 -779
  11. package/dist/EventProvider.js +38 -26
  12. package/dist/FontFace.js +52 -7
  13. package/dist/InitialConfiguration.js +32 -8
  14. package/dist/Keys.js +89 -2
  15. package/dist/MediaRange.js +109 -0
  16. package/dist/PropertiesFileFormat.js +95 -0
  17. package/dist/Render.js +173 -0
  18. package/dist/RenderQueue.js +41 -17
  19. package/dist/RenderScheduler.js +24 -126
  20. package/dist/StaticArea.js +1 -39
  21. package/dist/StaticAreaItem.js +64 -62
  22. package/dist/SystemCSSVars.js +31 -0
  23. package/dist/Theming.js +2 -1
  24. package/dist/UI5Element.js +427 -299
  25. package/dist/UI5ElementMetadata.js +157 -19
  26. package/dist/asset-registries/Icons.js +118 -14
  27. package/dist/asset-registries/Illustrations.js +30 -0
  28. package/dist/asset-registries/LocaleData.js +90 -65
  29. package/dist/asset-registries/Themes.js +23 -32
  30. package/dist/asset-registries/i18n.js +72 -30
  31. package/dist/config/AnimationMode.js +11 -1
  32. package/dist/config/Language.js +58 -2
  33. package/dist/delegate/ItemNavigation.js +244 -171
  34. package/dist/delegate/ResizeHandler.js +78 -38
  35. package/dist/delegate/ScrollEnablement.js +49 -20
  36. package/dist/features/OpenUI5Support.js +42 -7
  37. package/dist/generated/AssetParameters.js +1 -1
  38. package/dist/getSharedResource.js +30 -0
  39. package/dist/i18nBundle.js +27 -4
  40. package/dist/isLegacyBrowser.js +3 -0
  41. package/dist/locale/RTLAwareRegistry.js +14 -0
  42. package/dist/locale/applyDirection.js +17 -0
  43. package/dist/locale/directionChange.js +32 -0
  44. package/dist/locale/getEffectiveDir.js +28 -0
  45. package/dist/locale/getLocale.js +12 -2
  46. package/dist/locale/languageChange.js +22 -0
  47. package/dist/renderer/LitRenderer.js +21 -4
  48. package/dist/renderer/executeTemplate.js +17 -0
  49. package/dist/resources/bundle.esm.js +17 -109
  50. package/dist/resources/bundle.esm.js.map +1 -1
  51. package/dist/sap/base/Log.js +241 -0
  52. package/dist/sap/base/assert.js +8 -0
  53. package/dist/sap/base/security/URLListValidator.js +148 -0
  54. package/dist/sap/base/security/sanitizeHTML.js +16 -0
  55. package/dist/sap/base/util/now.js +7 -0
  56. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +3585 -0
  57. package/dist/test-resources/assets/Themes.js +10 -6
  58. package/dist/test-resources/elements/Parent.js +6 -2
  59. package/dist/test-resources/elements/WithStaticArea.js +2 -1
  60. package/dist/test-resources/pages/AllTestElements.html +3 -3
  61. package/dist/test-resources/pages/Configuration.html +0 -2
  62. package/dist/test-resources/pages/ConfigurationScript.html +1 -3
  63. package/dist/test-resources/pages/assets/messagebundle_de.properties +1 -0
  64. package/dist/test-resources/pages/assets/messagebundle_en.properties +1 -0
  65. package/dist/test-resources/pages/assets/messagebundle_es.properties +1 -0
  66. package/dist/test-resources/pages/assets/messagebundle_fr.properties +1 -0
  67. package/dist/test-resources/pages/i18n.html +35 -0
  68. package/dist/test-resources/specs/ConfigurationChange.spec.js +11 -9
  69. package/dist/test-resources/specs/ConfigurationScript.spec.js +25 -23
  70. package/dist/test-resources/specs/ConfigurationURL.spec.js +65 -17
  71. package/dist/test-resources/specs/CustomTheme.spec.js +7 -5
  72. package/dist/test-resources/specs/EventProvider.spec.js +63 -0
  73. package/dist/test-resources/specs/StaticArea.spec.js +56 -12
  74. package/dist/test-resources/specs/Theming.spec.js +9 -7
  75. package/dist/test-resources/specs/UI5ElementInvalidation.js +54 -70
  76. package/dist/test-resources/specs/UI5ElementLifecycle.js +19 -14
  77. package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +25 -51
  78. package/dist/test-resources/specs/UI5ElementMetadataExt.js +9 -7
  79. package/dist/test-resources/specs/UI5ElementPropertyValidation.js +7 -5
  80. package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +37 -35
  81. package/dist/test-resources/specs/UI5ElementShadowDOM.js +10 -8
  82. package/dist/test-resources/specs/UI5ElementSlots.js +10 -8
  83. package/dist/theming/CustomStyle.js +28 -7
  84. package/dist/theming/ThemeLoaded.js +22 -0
  85. package/dist/theming/applyTheme.js +2 -5
  86. package/dist/theming/getConstructableStyle.js +15 -10
  87. package/dist/theming/getEffectiveStyle.js +23 -8
  88. package/dist/theming/getStylesString.js +13 -0
  89. package/dist/types/CSSColor.js +9 -0
  90. package/dist/types/CalendarType.js +1 -1
  91. package/dist/types/DataType.js +13 -1
  92. package/dist/types/Float.js +14 -0
  93. package/dist/types/Integer.js +4 -0
  94. package/dist/types/InvisibleMessageMode.js +30 -0
  95. package/dist/types/ItemNavigationBehavior.js +2 -7
  96. package/dist/types/NavigationMode.js +1 -0
  97. package/dist/types/PopupState.js +1 -1
  98. package/dist/types/ValueState.js +1 -1
  99. package/dist/updateShadowRoot.js +26 -0
  100. package/dist/util/AriaLabelHelper.js +41 -0
  101. package/dist/util/Caret.js +45 -0
  102. package/dist/util/ColorConversion.js +370 -0
  103. package/dist/util/FocusableElements.js +25 -8
  104. package/dist/util/HTMLSanitizer.js +7 -0
  105. package/dist/util/InvisibleMessage.js +58 -0
  106. package/dist/util/PopupUtils.js +93 -0
  107. package/dist/util/SlotsHelper.js +43 -0
  108. package/dist/util/TabbableElements.js +1 -1
  109. package/dist/util/arraysAreEqual.js +15 -0
  110. package/dist/util/clamp.js +12 -0
  111. package/dist/util/debounce.js +17 -0
  112. package/dist/util/encodeCSS.js +24 -0
  113. package/dist/util/getActiveElement.js +11 -0
  114. package/dist/util/getClassCopy.js +10 -0
  115. package/dist/util/getEffectiveContentDensity.js +5 -0
  116. package/dist/util/getSingletonElementInstance.js +13 -0
  117. package/dist/util/isElementInView.js +15 -0
  118. package/dist/util/isNodeHidden.js +1 -5
  119. package/dist/util/isNodeTabbable.js +4 -4
  120. package/dist/util/isValidPropertyName.js +9 -3
  121. package/dist/util/setToArray.js +10 -0
  122. package/hash.txt +1 -0
  123. package/index.js +1 -1
  124. package/package-scripts.js +33 -18
  125. package/package.json +20 -11
  126. package/src/AssetRegistry.js +8 -6
  127. package/src/Boot.js +43 -0
  128. package/src/CustomElementsRegistry.js +24 -8
  129. package/src/CustomElementsScope.js +108 -0
  130. package/src/DOMObserver.js +65 -0
  131. package/src/Device.js +58 -779
  132. package/src/EventProvider.js +38 -26
  133. package/src/FontFace.js +52 -7
  134. package/src/InitialConfiguration.js +32 -8
  135. package/src/Keys.js +89 -2
  136. package/src/MediaRange.js +109 -0
  137. package/src/PropertiesFileFormat.js +95 -0
  138. package/src/Render.js +173 -0
  139. package/src/RenderQueue.js +41 -17
  140. package/src/RenderScheduler.js +24 -126
  141. package/src/StaticArea.js +1 -39
  142. package/src/StaticAreaItem.js +64 -62
  143. package/src/SystemCSSVars.js +31 -0
  144. package/src/Theming.js +2 -1
  145. package/src/UI5Element.js +427 -299
  146. package/src/UI5ElementMetadata.js +157 -19
  147. package/src/asset-registries/Icons.js +118 -14
  148. package/src/asset-registries/Illustrations.js +30 -0
  149. package/src/asset-registries/LocaleData.js +90 -65
  150. package/src/asset-registries/Themes.js +23 -32
  151. package/src/asset-registries/i18n.js +72 -30
  152. package/src/config/AnimationMode.js +11 -1
  153. package/src/config/Language.js +58 -2
  154. package/src/delegate/ItemNavigation.js +244 -171
  155. package/src/delegate/ResizeHandler.js +78 -38
  156. package/src/delegate/ScrollEnablement.js +49 -20
  157. package/src/features/OpenUI5Support.js +42 -7
  158. package/src/getSharedResource.js +30 -0
  159. package/src/i18nBundle.js +27 -4
  160. package/src/isLegacyBrowser.js +3 -0
  161. package/src/locale/RTLAwareRegistry.js +14 -0
  162. package/src/locale/applyDirection.js +17 -0
  163. package/src/locale/directionChange.js +32 -0
  164. package/src/locale/getEffectiveDir.js +28 -0
  165. package/src/locale/getLocale.js +12 -2
  166. package/src/locale/languageChange.js +22 -0
  167. package/src/renderer/LitRenderer.js +21 -4
  168. package/src/renderer/executeTemplate.js +17 -0
  169. package/src/theming/CustomStyle.js +28 -7
  170. package/src/theming/ThemeLoaded.js +22 -0
  171. package/src/theming/applyTheme.js +2 -5
  172. package/src/theming/getConstructableStyle.js +15 -10
  173. package/src/theming/getEffectiveStyle.js +23 -8
  174. package/src/theming/getStylesString.js +13 -0
  175. package/src/types/CSSColor.js +9 -0
  176. package/src/types/CalendarType.js +1 -1
  177. package/src/types/DataType.js +13 -1
  178. package/src/types/Float.js +14 -0
  179. package/src/types/Integer.js +4 -0
  180. package/src/types/InvisibleMessageMode.js +30 -0
  181. package/src/types/ItemNavigationBehavior.js +2 -7
  182. package/src/types/NavigationMode.js +1 -0
  183. package/src/types/PopupState.js +1 -1
  184. package/src/types/ValueState.js +1 -1
  185. package/src/updateShadowRoot.js +26 -0
  186. package/src/util/AriaLabelHelper.js +41 -0
  187. package/src/util/Caret.js +45 -0
  188. package/src/util/ColorConversion.js +370 -0
  189. package/src/util/FocusableElements.js +25 -8
  190. package/src/util/HTMLSanitizer.js +7 -0
  191. package/src/util/InvisibleMessage.js +58 -0
  192. package/src/util/PopupUtils.js +93 -0
  193. package/src/util/SlotsHelper.js +43 -0
  194. package/src/util/TabbableElements.js +1 -1
  195. package/src/util/arraysAreEqual.js +15 -0
  196. package/src/util/clamp.js +12 -0
  197. package/src/util/debounce.js +17 -0
  198. package/src/util/encodeCSS.js +24 -0
  199. package/src/util/getActiveElement.js +11 -0
  200. package/src/util/getClassCopy.js +10 -0
  201. package/src/util/getEffectiveContentDensity.js +5 -0
  202. package/src/util/getSingletonElementInstance.js +13 -0
  203. package/src/util/isElementInView.js +15 -0
  204. package/src/util/isNodeHidden.js +1 -5
  205. package/src/util/isNodeTabbable.js +4 -4
  206. package/src/util/isValidPropertyName.js +9 -3
  207. package/src/util/setToArray.js +10 -0
  208. package/used-modules.txt +7 -0
  209. package/bundle.es5.js +0 -28
  210. package/dist/SVGIconRegistry.js +0 -60
  211. package/dist/boot.js +0 -32
  212. package/dist/compatibility/DOMObserver.js +0 -62
  213. package/dist/compatibility/patchNodeValue.js +0 -24
  214. package/dist/compatibility/whenPolyfillLoaded.js +0 -26
  215. package/dist/delegate/CustomResize.js +0 -78
  216. package/dist/delegate/NativeResize.js +0 -44
  217. package/dist/features/browsersupport/Edge.js +0 -6
  218. package/dist/features/browsersupport/IE11.js +0 -41
  219. package/dist/features/browsersupport/IE11WithWebComponentsPolyfill.js +0 -5
  220. package/dist/renderer/ifDefined.js +0 -21
  221. package/dist/resources/bundle.es5.js +0 -212
  222. package/dist/resources/bundle.es5.js.map +0 -1
  223. package/dist/theming/CSSVarsPonyfill.js +0 -24
  224. package/dist/theming/adaptCSSForIE.js +0 -90
  225. package/dist/theming/createComponentStyleTag.js +0 -49
  226. package/dist/thirdparty/Array.from.js +0 -16
  227. package/dist/thirdparty/Array.prototype.fill.js +0 -44
  228. package/dist/thirdparty/Array.prototype.find.js +0 -46
  229. package/dist/thirdparty/Array.prototype.includes.js +0 -51
  230. package/dist/thirdparty/Element.prototype.closest.js +0 -11
  231. package/dist/thirdparty/Element.prototype.matches.js +0 -6
  232. package/dist/thirdparty/Map.prototype.keys.js +0 -9
  233. package/dist/thirdparty/Number.isInteger.js +0 -5
  234. package/dist/thirdparty/Number.isNaN.js +0 -1
  235. package/dist/thirdparty/Number.parseInt.js +0 -1
  236. package/dist/thirdparty/Object.assign.js +0 -31
  237. package/dist/thirdparty/Object.entries.js +0 -11
  238. package/dist/thirdparty/Symbol.js +0 -2
  239. package/dist/thirdparty/WeakSet.js +0 -27
  240. package/dist/thirdparty/es6-string-methods.js +0 -182
  241. package/dist/thirdparty/events-polyfills.js +0 -89
  242. package/dist/thirdparty/fetch.js +0 -1
  243. package/dist/thirdparty/template.js +0 -600
  244. package/dist/thirdparty/webcomponents-sd-ce-pf.js +0 -318
  245. package/dist/webcomponentsjs/LICENSE.md +0 -19
  246. package/dist/webcomponentsjs/README.md +0 -229
  247. package/dist/webcomponentsjs/bundles/webcomponents-ce.js +0 -63
  248. package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
  249. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -297
  250. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
  251. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -208
  252. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
  253. package/dist/webcomponentsjs/bundles/webcomponents-sd.js +0 -166
  254. package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
  255. package/dist/webcomponentsjs/custom-elements-es5-adapter.js +0 -15
  256. package/dist/webcomponentsjs/package.json +0 -46
  257. package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
  258. package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
  259. package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
  260. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
  261. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
  262. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
  263. package/dist/webcomponentsjs/webcomponents-bundle.js +0 -298
  264. package/dist/webcomponentsjs/webcomponents-bundle.js.map +0 -1
  265. package/dist/webcomponentsjs/webcomponents-loader.js +0 -185
  266. package/src/SVGIconRegistry.js +0 -60
  267. package/src/boot.js +0 -32
  268. package/src/compatibility/DOMObserver.js +0 -62
  269. package/src/compatibility/patchNodeValue.js +0 -24
  270. package/src/compatibility/whenPolyfillLoaded.js +0 -26
  271. package/src/delegate/CustomResize.js +0 -78
  272. package/src/delegate/NativeResize.js +0 -44
  273. package/src/features/browsersupport/Edge.js +0 -6
  274. package/src/features/browsersupport/IE11.js +0 -41
  275. package/src/features/browsersupport/IE11WithWebComponentsPolyfill.js +0 -5
  276. package/src/renderer/ifDefined.js +0 -21
  277. package/src/theming/CSSVarsPonyfill.js +0 -24
  278. package/src/theming/adaptCSSForIE.js +0 -90
  279. package/src/theming/createComponentStyleTag.js +0 -49
  280. package/src/thirdparty/Array.from.js +0 -16
  281. package/src/thirdparty/Array.prototype.fill.js +0 -44
  282. package/src/thirdparty/Array.prototype.find.js +0 -46
  283. package/src/thirdparty/Array.prototype.includes.js +0 -51
  284. package/src/thirdparty/Element.prototype.closest.js +0 -11
  285. package/src/thirdparty/Element.prototype.matches.js +0 -6
  286. package/src/thirdparty/Map.prototype.keys.js +0 -9
  287. package/src/thirdparty/Number.isInteger.js +0 -5
  288. package/src/thirdparty/Number.isNaN.js +0 -1
  289. package/src/thirdparty/Number.parseInt.js +0 -1
  290. package/src/thirdparty/Object.assign.js +0 -31
  291. package/src/thirdparty/Object.entries.js +0 -11
  292. package/src/thirdparty/Symbol.js +0 -2
  293. package/src/thirdparty/WeakSet.js +0 -27
  294. package/src/thirdparty/es6-string-methods.js +0 -182
  295. package/src/thirdparty/events-polyfills.js +0 -89
  296. package/src/thirdparty/fetch.js +0 -1
  297. package/src/thirdparty/template.js +0 -600
  298. package/src/thirdparty/webcomponents-sd-ce-pf.js +0 -318
package/.eslintignore CHANGED
@@ -1,6 +1,7 @@
1
1
  # Note: Changes to this file also must be applied to the top level .eslintignore file.
2
2
  test
3
3
  lib
4
+ overlay
4
5
  dist
5
6
  src/thirdparty
6
7
  bundle.esm.js
@@ -9,3 +10,4 @@ rollup.config*.js
9
10
  wdio.conf.js
10
11
  postcss.config.js
11
12
  package-scripts.js
13
+ .eslintrc.js
package/CHANGELOG.md CHANGED
@@ -3,6 +3,143 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.0.0-rc.15](https://github.com/SAP/ui5-webcomponents/compare/v1.0.0-rc.14...v1.0.0-rc.15) (2021-07-23)
7
+
8
+
9
+ ### Features
10
+
11
+ * **framework:** expose dist paths as root paths via package.json export field ([#3274](https://github.com/SAP/ui5-webcomponents/issues/3274)) ([bd34a5e](https://github.com/SAP/ui5-webcomponents/commit/bd34a5e))
12
+ * **framework:** support sap-* config URL params ([#3138](https://github.com/SAP/ui5-webcomponents/issues/3138)) ([5d9cdb9](https://github.com/SAP/ui5-webcomponents/commit/5d9cdb9)), closes [#3114](https://github.com/SAP/ui5-webcomponents/issues/3114)
13
+ * **framework:** introduce InvisibleMessage util ([#3192](https://github.com/SAP/ui5-webcomponents/issues/3192)) ([0a33c40](https://github.com/SAP/ui5-webcomponents/commit/0a33c40))
14
+
15
+
16
+ # [1.0.0-rc.13](https://github.com/SAP/ui5-webcomponents/compare/v1.0.0-rc.12...v1.0.0-rc.13) (2021-03-26)
17
+
18
+
19
+ ### Bug Fixes
20
+
21
+ * **framework:** adapt ie11 package for usage in modern browsers ([#2878](https://github.com/SAP/ui5-webcomponents/issues/2878)) ([70bbfbb](https://github.com/SAP/ui5-webcomponents/commit/70bbfbb))
22
+ * **framework:** add fallback for CLDR dev use case ([#2844](https://github.com/SAP/ui5-webcomponents/issues/2844)) ([deb173a](https://github.com/SAP/ui5-webcomponents/commit/deb173a))
23
+
24
+
25
+ ### Features
26
+
27
+ * **framework:** Create attachDirectionChange function ([#2646](https://github.com/SAP/ui5-webcomponents/issues/2646)) ([b4f836a](https://github.com/SAP/ui5-webcomponents/commit/b4f836a))
28
+ * **framework:** ItemNavigation cyclic behavior implemented for multiple rows ([#2780](https://github.com/SAP/ui5-webcomponents/issues/2780)) ([b7ad1ea](https://github.com/SAP/ui5-webcomponents/commit/b7ad1ea))
29
+ * **framework:** Maintain a common z-index for all UI5 Web Components instances and OpenUI5 ([#2980](https://github.com/SAP/ui5-webcomponents/issues/2980)) ([13bdc02](https://github.com/SAP/ui5-webcomponents/commit/13bdc02))
30
+ * **ui5-color-palette:** initial implementation ([#2731](https://github.com/SAP/ui5-webcomponents/issues/2731)) ([772424e](https://github.com/SAP/ui5-webcomponents/commit/772424e))
31
+ * **ui5-color-picker:** initial implementation ([#2769](https://github.com/SAP/ui5-webcomponents/issues/2769)) ([6a70e5a](https://github.com/SAP/ui5-webcomponents/commit/6a70e5a))
32
+ * **ui5-list:** introduce "growing" property ([#2950](https://github.com/SAP/ui5-webcomponents/issues/2950)) ([6fbbb21](https://github.com/SAP/ui5-webcomponents/commit/6fbbb21)), closes [#2882](https://github.com/SAP/ui5-webcomponents/issues/2882) [#2882](https://github.com/SAP/ui5-webcomponents/issues/2882)
33
+ * **ui5-step-input:** inintial implementation ([#2804](https://github.com/SAP/ui5-webcomponents/issues/2804)) ([d80420e](https://github.com/SAP/ui5-webcomponents/commit/d80420e)), closes [#2640](https://github.com/SAP/ui5-webcomponents/issues/2640)
34
+ * **ui5-tabcontainer:** support responsive paddings ([#2775](https://github.com/SAP/ui5-webcomponents/issues/2775)) ([19392ff](https://github.com/SAP/ui5-webcomponents/commit/19392ff)), closes [#2539](https://github.com/SAP/ui5-webcomponents/issues/2539)
35
+ * add dynamic imports for .json assets ([#2740](https://github.com/SAP/ui5-webcomponents/issues/2740)) ([46e38fb](https://github.com/SAP/ui5-webcomponents/commit/46e38fb))
36
+ * **ui5-table:** add growing on scroll ([#2593](https://github.com/SAP/ui5-webcomponents/issues/2593)) ([87520c2](https://github.com/SAP/ui5-webcomponents/commit/87520c2)), closes [#2589](https://github.com/SAP/ui5-webcomponents/issues/2589) [#2570](https://github.com/SAP/ui5-webcomponents/issues/2570)
37
+ * create @ui5/webcomponents-ie11 package ([#2686](https://github.com/SAP/ui5-webcomponents/issues/2686)) ([1d3b37e](https://github.com/SAP/ui5-webcomponents/commit/1d3b37e))
38
+ * **ui5-slider:** focus and keyboard handling implementation ([#2614](https://github.com/SAP/ui5-webcomponents/issues/2614)) ([7b78c16](https://github.com/SAP/ui5-webcomponents/commit/7b78c16))
39
+ * refactoring and new features for pickers ([#2598](https://github.com/SAP/ui5-webcomponents/issues/2598)) ([3e684b4](https://github.com/SAP/ui5-webcomponents/commit/3e684b4))
40
+
41
+
42
+
43
+
44
+
45
+ # [1.0.0-rc.12](https://github.com/SAP/ui5-webcomponents/compare/v1.0.0-rc.11...v1.0.0-rc.12) (2021-02-18)
46
+
47
+
48
+ ### Bug Fixes
49
+
50
+ * **theming:** fix error message ([#2818](https://github.com/SAP/ui5-webcomponents/issues/2818)) ([7a0732a](https://github.com/SAP/ui5-webcomponents/commit/7a0732a))
51
+ * **i18n:** ui5-icon i18n works for all packages ([#2816](https://github.com/SAP/ui5-webcomponents/issues/2816)) ([91e16a1](https://github.com/SAP/ui5-webcomponents/commit/91e16a1))
52
+
53
+ ### Features
54
+
55
+ * **framework:** add dynamic imports for .json assets ([#2740](https://github.com/SAP/ui5-webcomponents/issues/2740)) ([46e38fb](https://github.com/SAP/ui5-webcomponents/commit/46e38fb))
56
+ * **framework:** Create attachDirectionChange function ([#2646](https://github.com/SAP/ui5-webcomponents/issues/2646)) ([b4f836a](https://github.com/SAP/ui5-webcomponents/commit/b4f836a))
57
+ * **framework:** ItemNavigation cyclic behavior implemented for multiple rows ([#2780](https://github.com/SAP/ui5-webcomponents/issues/2780)) ([b7ad1ea](https://github.com/SAP/ui5-webcomponents/commit/b7ad1ea))
58
+
59
+
60
+
61
+
62
+ # [1.0.0-rc.11](https://github.com/SAP/ui5-webcomponents/compare/v1.0.0-rc.10...v1.0.0-rc.11) (2020-12-21)
63
+
64
+
65
+ ### Bug Fixes
66
+
67
+ * **ui5-dialog:** apply initial focus after rendering ([#2551](https://github.com/SAP/ui5-webcomponents/issues/2551)) ([dba0265](https://github.com/SAP/ui5-webcomponents/commit/dba0265)), closes [#2537](https://github.com/SAP/ui5-webcomponents/issues/2537)
68
+
69
+
70
+ ### Features
71
+
72
+ * **framework:** Change child-parent invalidation API ([#2541](https://github.com/SAP/ui5-webcomponents/issues/2541)) ([a1a3f80](https://github.com/SAP/ui5-webcomponents/commit/a1a3f80))
73
+ * **ui5-calendar:** introduce new component. ([#2424](https://github.com/SAP/ui5-webcomponents/issues/2424)) ([5470e23](https://github.com/SAP/ui5-webcomponents/commit/5470e23)), closes [#1730](https://github.com/SAP/ui5-webcomponents/issues/1730)
74
+
75
+
76
+
77
+
78
+
79
+ # [1.0.0-rc.10](https://github.com/SAP/ui5-webcomponents/compare/v1.0.0-rc.9...v1.0.0-rc.10) (2020-11-12)
80
+
81
+
82
+ ### Bug Fixes
83
+
84
+ * **framework:** fix JS error on setLanguage call ([#2328](https://github.com/SAP/ui5-webcomponents/issues/2328)) ([f9b9ead](https://github.com/SAP/ui5-webcomponents/commit/f9b9ead))
85
+
86
+ ### Features
87
+
88
+ * **framework:** make getStableDomRef search in the static area item … ([#2363](https://github.com/SAP/ui5-webcomponents/issues/2363)) ([a68dfbb](https://github.com/SAP/ui5-webcomponents/commit/a68dfbb))
89
+
90
+ # [1.0.0-rc.9](https://github.com/SAP/ui5-webcomponents/compare/v1.0.0-rc.8...v1.0.0-rc.9) (2020-10-08)
91
+
92
+
93
+ ### Bug Fixes
94
+
95
+ * **components:** fix setting contentDensity styles ([#2094](https://github.com/SAP/ui5-webcomponents/issues/2094)) ([9454ab7](https://github.com/SAP/ui5-webcomponents/commit/9454ab7)), closes [#2093](https://github.com/SAP/ui5-webcomponents/issues/2093)
96
+ * **framework:** Allow role as a property name ([#2290](https://github.com/SAP/ui5-webcomponents/issues/2290)) ([a816cef](https://github.com/SAP/ui5-webcomponents/commit/a816cef))
97
+ * **framework:** Do not create IE styles with disabled ([#2284](https://github.com/SAP/ui5-webcomponents/issues/2284)) ([5ecc51e](https://github.com/SAP/ui5-webcomponents/commit/5ecc51e))
98
+
99
+
100
+ ### Features
101
+
102
+ * **framework:** Add API to subscribe/unsubscribe for theme loaded ([#2303](https://github.com/SAP/ui5-webcomponents/issues/2303)) ([c8ffb38](https://github.com/SAP/ui5-webcomponents/commit/c8ffb38))
103
+ * **framework:** dynamic custom elements scoping ([#2091](https://github.com/SAP/ui5-webcomponents/issues/2091)) ([3588542](https://github.com/SAP/ui5-webcomponents/commit/3588542))
104
+ * **framework:** Limited support for campact size on IE ([#2230](https://github.com/SAP/ui5-webcomponents/issues/2230)) ([4128216](https://github.com/SAP/ui5-webcomponents/commit/4128216))
105
+ * **framework:** Make _property-change publicly available ([#2201](https://github.com/SAP/ui5-webcomponents/issues/2201)) ([0be4e10](https://github.com/SAP/ui5-webcomponents/commit/0be4e10))
106
+ * **framework:** Make addCustomCSS dynamic ([#2083](https://github.com/SAP/ui5-webcomponents/issues/2083)) ([7b54b9b](https://github.com/SAP/ui5-webcomponents/commit/7b54b9b))
107
+ * **framework:** make assets path configurable ([#2214](https://github.com/SAP/ui5-webcomponents/issues/2214)) ([16c46da](https://github.com/SAP/ui5-webcomponents/commit/16c46da))
108
+ * **framework:** styles and staticAreaStyles may now be nested arrays ([#2058](https://github.com/SAP/ui5-webcomponents/issues/2058)) ([bb87e65](https://github.com/SAP/ui5-webcomponents/commit/bb87e65))
109
+ * **framework:** Support custom dynamic asset paths ([#2305](https://github.com/SAP/ui5-webcomponents/issues/2305)) ([ff245fa](https://github.com/SAP/ui5-webcomponents/commit/ff245fa))
110
+
111
+
112
+
113
+
114
+
115
+ # [1.0.0-rc.8](https://github.com/SAP/ui5-webcomponents/compare/v1.0.0-rc.7...v1.0.0-rc.8) (2020-07-30)
116
+
117
+
118
+ ### Bug Fixes
119
+
120
+ * **framework:** Allow for empty theme files ([#1639](https://github.com/SAP/ui5-webcomponents/issues/1639)) ([0cef140](https://github.com/SAP/ui5-webcomponents/commit/0cef140))
121
+ * **framework:** Allow users to override default language translations ([#1716](https://github.com/SAP/ui5-webcomponents/issues/1716)) ([4b10f4f](https://github.com/SAP/ui5-webcomponents/commit/4b10f4f))
122
+ * **framework:** Slotted children now invalidate parent upon slotchange ([#1649](https://github.com/SAP/ui5-webcomponents/issues/1649)) ([3ca4ae1](https://github.com/SAP/ui5-webcomponents/commit/3ca4ae1))
123
+ * **framework:** Fix openui5 css varaibles detection ([#1933](https://github.com/SAP/ui5-webcomponents/issues/1933)) ([bb5b724](https://github.com/SAP/ui5-webcomponents/commit/bb5b724)), closes [#1932](https://github.com/SAP/ui5-webcomponents/issues/1932)
124
+ * **framework:** Make renderImmediately sync ([#1929](https://github.com/SAP/ui5-webcomponents/issues/1929)) ([9141300](https://github.com/SAP/ui5-webcomponents/commit/9141300))
125
+ * **framework:** Update managedSlots effect ([#1952](https://github.com/SAP/ui5-webcomponents/issues/1952)) ([4a1be70](https://github.com/SAP/ui5-webcomponents/commit/4a1be70))
126
+ * **framework:** Remove ES6 code in IE polyfill ([#1923](https://github.com/SAP/ui5-webcomponents/issues/1923)) ([0a2ff88](https://github.com/SAP/ui5-webcomponents/commit/0a2ff88))
127
+ * **framework:** Take region into account for i18n assets ([#1985](https://github.com/SAP/ui5-webcomponents/issues/1985)) ([3b614ad](https://github.com/SAP/ui5-webcomponents/commit/3b614ad))
128
+ * **ui5-button:** Apply aria-expanded to inner button tag ([#1781](https://github.com/SAP/ui5-webcomponents/issues/1781)) ([df9e4e9](https://github.com/SAP/ui5-webcomponents/commit/df9e4e9))
129
+
130
+
131
+ ### Features
132
+
133
+ * **framework:** Add dynamic language change and on-demand rerendering ([#1746](https://github.com/SAP/ui5-webcomponents/issues/1746)) ([1b568f2](https://github.com/SAP/ui5-webcomponents/commit/1b568f2))
134
+ * **framework:** CLDR location can now be specified ([#1687](https://github.com/SAP/ui5-webcomponents/issues/1687)) ([168e505](https://github.com/SAP/ui5-webcomponents/commit/168e505))
135
+ * **framework:** Create a global shared resources repo, share SVG Icons ([#1869](https://github.com/SAP/ui5-webcomponents/issues/1869)) ([7f5a198](https://github.com/SAP/ui5-webcomponents/commit/7f5a198))
136
+ * **framework:** Implement invalidateParent ([#1964](https://github.com/SAP/ui5-webcomponents/issues/1964)) ([104abcc](https://github.com/SAP/ui5-webcomponents/commit/104abcc))
137
+ * **framework:** Implement stable DOM Ref functionality ([#1868](https://github.com/SAP/ui5-webcomponents/issues/1868)) ([cfd4fa3](https://github.com/SAP/ui5-webcomponents/commit/cfd4fa3))
138
+ * **framework:** Make icons RTL aware ([#1833](https://github.com/SAP/ui5-webcomponents/issues/1833)) ([29a991f](https://github.com/SAP/ui5-webcomponents/commit/29a991f)), closes [#1831](https://github.com/SAP/ui5-webcomponents/issues/1831)
139
+ * **framework:** Support properties message bundles for i18n ([#1728](https://github.com/SAP/ui5-webcomponents/issues/1728)) ([d78d136](https://github.com/SAP/ui5-webcomponents/commit/d78d136))
140
+ * **framework:** Support several runtimes simultaneously ([#1691](https://github.com/SAP/ui5-webcomponents/issues/1691)) ([7a3261c](https://github.com/SAP/ui5-webcomponents/commit/7a3261c))
141
+
142
+
6
143
  # [0.20.0](https://github.com/SAP/ui5-webcomponents/compare/v0.19.0...v0.20.0) (2020-04-30)
7
144
 
8
145
 
package/README.md CHANGED
@@ -7,7 +7,32 @@
7
7
 
8
8
  Contains the base files for all Web Components, most notably `@ui5/webcomponents-base/dist/UI5Element.js`.
9
9
 
10
- For a complete list of all app development related public module imports from the `base` package, click [here](../../docs/Public%20Module%20Imports.md#base):
10
+ ## Provided APIs for applications
11
+
12
+ ### `Boot.js`
13
+
14
+ - `attachBoot`
15
+
16
+ ### `CustomElementsScope.js`
17
+
18
+ - `setCustomElementsScopingSuffix`
19
+ - `getCustomElementsScopingSuffix`
20
+ - `setCustomElementsScopingRules`
21
+ - `getCustomElementsScopingRules`
22
+
23
+ ### `i18nBundle.js`
24
+
25
+ - `registerI18nLoader`
26
+ - `fetchI18nBundle`
27
+ - `getI18nBundleData`
28
+
29
+ ### `PropertiesFileFormat.js`
30
+
31
+ - `parseProperties`
32
+
33
+ ### `Render.js`
34
+
35
+ - `renderFinished`
11
36
 
12
37
  ## Resources
13
38
  - [UI5 Web Components - README.md](https://github.com/SAP/ui5-webcomponents/blob/master/README.md)
package/bundle.esm.js CHANGED
@@ -1,7 +1,7 @@
1
- import { registerThemeProperties } from "./dist/AssetRegistry.js";
1
+ import { registerThemePropertiesLoader } from "./dist/AssetRegistry.js";
2
+ import EventProvider from "./dist/EventProvider.js";
2
3
 
3
- // ESM bundle targets Edge + browsers with native support
4
- import "./dist/features/browsersupport/Edge.js";
4
+ // ESM bundle targets browsers with native support
5
5
  import "./dist/features/OpenUI5Support.js";
6
6
 
7
7
  // Test components
@@ -16,13 +16,15 @@ import "./dist/test-resources/elements/GenericExt.js";
16
16
  import "./dist/test-resources/assets/Themes.js";
17
17
 
18
18
  // used in test pages
19
- import RenderScheduler from "./dist/RenderScheduler.js";
20
- window.RenderScheduler = RenderScheduler;
19
+ import { renderFinished } from "./dist/Render.js";
21
20
  import { isIE } from "./dist/Device.js";
22
21
  window.isIE = isIE; // attached to the window object for testing purposes
23
22
 
24
23
  // used for tests - to register a custom theme
25
- window.registerThemeProperties = registerThemeProperties;
24
+ window.registerThemePropertiesLoader = registerThemePropertiesLoader;
25
+
26
+ // i18n
27
+ import { registerI18nLoader, fetchI18nBundle, getI18nBundle } from "./dist/i18nBundle.js";
26
28
 
27
29
  // Note: keep in sync with rollup.config value for IIFE
28
30
  import { getAnimationMode } from "./dist/config/AnimationMode.js";
@@ -32,7 +34,9 @@ import { getTheme, setTheme } from "./dist/config/Theme.js";
32
34
  import { getNoConflict, setNoConflict } from "./dist/config/NoConflict.js";
33
35
  import { getRTL } from "./dist/config/RTL.js";
34
36
  import { getFirstDayOfWeek } from "./dist/config/FormatSettings.js";
35
- import { getRegisteredNames as getIconNames } from "./dist/SVGIconRegistry.js"
37
+ import { _getRegisteredNames as getIconNames } from "./dist/asset-registries/Icons.js"
38
+ import applyDirection from "./dist/locale/applyDirection.js";
39
+
36
40
  window["sap-ui-webcomponents-bundle"] = {
37
41
  configuration : {
38
42
  getAnimationMode,
@@ -46,4 +50,10 @@ window["sap-ui-webcomponents-bundle"] = {
46
50
  getFirstDayOfWeek,
47
51
  },
48
52
  getIconNames,
53
+ registerI18nLoader,
54
+ fetchI18nBundle,
55
+ getI18nBundle,
56
+ renderFinished,
57
+ applyDirection,
58
+ EventProvider,
49
59
  };
@@ -1,9 +1,11 @@
1
- import { registerI18nBundle } from "./asset-registries/i18n.js";
2
- import { registerCldr } from "./asset-registries/LocaleData.js";
3
- import { registerThemeProperties } from "./asset-registries/Themes.js";
1
+ import { registerI18nLoader } from "./asset-registries/i18n.js";
2
+ import { registerLocaleDataLoader } from "./asset-registries/LocaleData.js";
3
+ import { registerThemePropertiesLoader } from "./asset-registries/Themes.js";
4
+ import { registerIconLoader } from "./asset-registries/Icons.js";
4
5
 
5
6
  export {
6
- registerCldr,
7
- registerThemeProperties,
8
- registerI18nBundle,
7
+ registerI18nLoader,
8
+ registerLocaleDataLoader,
9
+ registerThemePropertiesLoader,
10
+ registerIconLoader,
9
11
  };
package/dist/Boot.js ADDED
@@ -0,0 +1,43 @@
1
+ import EventProvider from "./EventProvider.js";
2
+ import whenDOMReady from "./util/whenDOMReady.js";
3
+ import insertFontFace from "./FontFace.js";
4
+ import insertSystemCSSVars from "./SystemCSSVars.js";
5
+ import { getTheme } from "./config/Theme.js";
6
+ import applyTheme from "./theming/applyTheme.js";
7
+ import { getFeature } from "./FeaturesRegistry.js";
8
+
9
+ let booted = false;
10
+ const eventProvider = new EventProvider();
11
+
12
+ /**
13
+ * Attach a callback that will be executed on boot
14
+ * @public
15
+ * @param listener
16
+ */
17
+ const attachBoot = listener => {
18
+ eventProvider.attachEvent("boot", listener);
19
+ };
20
+
21
+ const boot = async () => {
22
+ if (booted) {
23
+ return;
24
+ }
25
+
26
+ const OpenUI5Support = getFeature("OpenUI5Support");
27
+ if (OpenUI5Support) {
28
+ await OpenUI5Support.init();
29
+ }
30
+
31
+ await whenDOMReady();
32
+ await applyTheme(getTheme());
33
+ OpenUI5Support && OpenUI5Support.attachListeners();
34
+ insertFontFace();
35
+ insertSystemCSSVars();
36
+ await eventProvider.fireEventAsync("boot");
37
+ booted = true;
38
+ };
39
+
40
+ export {
41
+ boot,
42
+ attachBoot,
43
+ };
@@ -1,23 +1,39 @@
1
- const DefinitionsSet = new Set();
1
+ import setToArray from "./util/setToArray.js";
2
+
3
+ const Definitions = new Set();
4
+ const Failures = new Set();
5
+ let failureTimeout;
2
6
 
3
7
  const registerTag = tag => {
4
- DefinitionsSet.add(tag);
8
+ Definitions.add(tag);
5
9
  };
6
10
 
7
11
  const isTagRegistered = tag => {
8
- return DefinitionsSet.has(tag);
12
+ return Definitions.has(tag);
9
13
  };
10
14
 
11
15
  const getAllRegisteredTags = () => {
12
- const arr = [];
13
- DefinitionsSet.forEach(tag => {
14
- arr.push(tag);
15
- });
16
- return arr;
16
+ return setToArray(Definitions);
17
+ };
18
+
19
+ const recordTagRegistrationFailure = tag => {
20
+ Failures.add(tag);
21
+ if (!failureTimeout) {
22
+ failureTimeout = setTimeout(() => {
23
+ displayFailedRegistrations();
24
+ failureTimeout = undefined;
25
+ }, 1000);
26
+ }
27
+ };
28
+
29
+ const displayFailedRegistrations = () => {
30
+ console.warn(`The following tags have already been defined by a different UI5 Web Components version: ${setToArray(Failures).join(", ")}`); // eslint-disable-line
31
+ Failures.clear();
17
32
  };
18
33
 
19
34
  export {
20
35
  registerTag,
21
36
  isTagRegistered,
22
37
  getAllRegisteredTags,
38
+ recordTagRegistrationFailure,
23
39
  };
@@ -0,0 +1,108 @@
1
+ let suf;
2
+ let rulesObj = {
3
+ include: [/^ui5-/],
4
+ exclude: [],
5
+ };
6
+ const tagsCache = new Map(); // true/false means the tag should/should not be cached, undefined means not known yet.
7
+
8
+ /**
9
+ * Sets the suffix to be used for custom elements scoping, f.e. pass "demo" to get tags such as "ui5-button-demo".
10
+ * Note: by default all tags starting with "ui5-" will be scoped, unless you change this by calling "setCustomElementsScopingRules"
11
+ *
12
+ * @public
13
+ * @param suffix The scoping suffix
14
+ */
15
+ const setCustomElementsScopingSuffix = suffix => {
16
+ if (!suffix.match(/^[a-zA-Z0-9_-]+$/)) {
17
+ throw new Error("Only alphanumeric characters and dashes allowed for the scoping suffix");
18
+ }
19
+
20
+ suf = suffix;
21
+ };
22
+
23
+ /**
24
+ * Returns the currently set scoping suffix, or undefined if not set.
25
+ *
26
+ * @public
27
+ * @returns {String|undefined}
28
+ */
29
+ const getCustomElementsScopingSuffix = () => {
30
+ return suf;
31
+ };
32
+
33
+ /**
34
+ * Sets the rules, governing which custom element tags to scope and which not, f.e.
35
+ * setCustomElementsScopingRules({include: [/^ui5-/]}, exclude: [/^ui5-mylib-/, /^ui5-carousel$/]);
36
+ * will scope all elements starting with "ui5-" but not the ones starting with "ui5-mylib-" and not "ui5-carousel".
37
+ *
38
+ * @public
39
+ * @param rules Object with "include" and "exclude" properties, both arrays of regular expressions. Note that "include"
40
+ * rules are applied first and "exclude" rules second.
41
+ */
42
+ const setCustomElementsScopingRules = rules => {
43
+ if (!rules || !rules.include) {
44
+ throw new Error(`"rules" must be an object with at least an "include" property`);
45
+ }
46
+
47
+ if (!Array.isArray(rules.include) || rules.include.some(rule => !(rule instanceof RegExp))) {
48
+ throw new Error(`"rules.include" must be an array of regular expressions`);
49
+ }
50
+
51
+ if (rules.exclude && (!Array.isArray(rules.exclude) || rules.exclude.some(rule => !(rule instanceof RegExp)))) {
52
+ throw new Error(`"rules.exclude" must be an array of regular expressions`);
53
+ }
54
+
55
+ rules.exclude = rules.exclude || [];
56
+ rulesObj = rules;
57
+ tagsCache.clear(); // reset the cache upon setting new rules
58
+ };
59
+
60
+ /**
61
+ * Returns the rules, governing which custom element tags to scope and which not. By default, all elements
62
+ * starting with "ui5-" are scoped. The default rules are: {include: [/^ui5-/]}.
63
+ *
64
+ * @public
65
+ * @returns {Object}
66
+ */
67
+ const getCustomElementsScopingRules = () => {
68
+ return rulesObj;
69
+ };
70
+
71
+ /**
72
+ * Determines whether custom elements with the given tag should be scoped or not.
73
+ * The tag is first matched against the "include" rules and then against the "exclude" rules and the
74
+ * result is cached until new rules are set.
75
+ *
76
+ * @public
77
+ * @param tag
78
+ */
79
+ const shouldScopeCustomElement = tag => {
80
+ if (!tagsCache.has(tag)) {
81
+ const result = rulesObj.include.some(rule => tag.match(rule)) && !rulesObj.exclude.some(rule => tag.match(rule));
82
+ tagsCache.set(tag, result);
83
+ }
84
+
85
+ return tagsCache.get(tag);
86
+ };
87
+
88
+ /**
89
+ * Returns the currently set scoping suffix, if any and if the tag should be scoped, or undefined otherwise.
90
+ *
91
+ * @public
92
+ * @param tag
93
+ * @returns {String}
94
+ */
95
+ const getEffectiveScopingSuffixForTag = tag => {
96
+ if (shouldScopeCustomElement(tag)) {
97
+ return getCustomElementsScopingSuffix();
98
+ }
99
+ };
100
+
101
+ export {
102
+ setCustomElementsScopingSuffix,
103
+ getCustomElementsScopingSuffix,
104
+ setCustomElementsScopingRules,
105
+ getCustomElementsScopingRules,
106
+ shouldScopeCustomElement,
107
+ getEffectiveScopingSuffixForTag,
108
+ };
@@ -0,0 +1,65 @@
1
+ const observers = new WeakMap(); // We want just one observer per node, store them here -> DOM nodes are keys
2
+
3
+ /**
4
+ * Default implementation with MutationObserver for browsers with native support
5
+ */
6
+ let _createObserver = (node, callback, options) => {
7
+ const observer = new MutationObserver(callback);
8
+ observer.observe(node, options);
9
+ return observer;
10
+ };
11
+
12
+ /**
13
+ * Default implementation with MutationObserver for browsers with native support
14
+ */
15
+ let _destroyObserver = observer => {
16
+ observer.disconnect();
17
+ };
18
+
19
+ /**
20
+ * Allows to create an alternative DOM observer implementation
21
+ * @param createFn
22
+ */
23
+ const setCreateObserverCallback = createFn => {
24
+ if (typeof createFn === "function") {
25
+ _createObserver = createFn;
26
+ }
27
+ };
28
+
29
+ /**
30
+ * Allows to create an alternative DOM observer implementation
31
+ * @param destroyFn
32
+ */
33
+ const setDestroyObserverCallback = destroyFn => {
34
+ if (typeof destroyFn === "function") {
35
+ _destroyObserver = destroyFn;
36
+ }
37
+ };
38
+
39
+ /**
40
+ * @param node
41
+ * @param callback
42
+ * @param options
43
+ */
44
+ const observeDOMNode = (node, callback, options) => {
45
+ const observer = _createObserver(node, callback, options);
46
+ observers.set(node, observer);
47
+ };
48
+
49
+ /**
50
+ * @param node
51
+ */
52
+ const unobserveDOMNode = node => {
53
+ const observer = observers.get(node);
54
+ if (observer) {
55
+ _destroyObserver(observer);
56
+ observers.delete(node);
57
+ }
58
+ };
59
+
60
+ export {
61
+ setCreateObserverCallback,
62
+ setDestroyObserverCallback,
63
+ observeDOMNode,
64
+ unobserveDOMNode,
65
+ };