@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.
- package/.eslintignore +2 -0
- package/CHANGELOG.md +137 -0
- package/README.md +26 -1
- package/bundle.esm.js +17 -7
- package/dist/AssetRegistry.js +8 -6
- package/dist/Boot.js +43 -0
- package/dist/CustomElementsRegistry.js +24 -8
- package/dist/CustomElementsScope.js +108 -0
- package/dist/DOMObserver.js +65 -0
- package/dist/Device.js +58 -779
- package/dist/EventProvider.js +38 -26
- package/dist/FontFace.js +52 -7
- package/dist/InitialConfiguration.js +32 -8
- package/dist/Keys.js +89 -2
- package/dist/MediaRange.js +109 -0
- package/dist/PropertiesFileFormat.js +95 -0
- package/dist/Render.js +173 -0
- package/dist/RenderQueue.js +41 -17
- package/dist/RenderScheduler.js +24 -126
- package/dist/StaticArea.js +1 -39
- package/dist/StaticAreaItem.js +64 -62
- package/dist/SystemCSSVars.js +31 -0
- package/dist/Theming.js +2 -1
- package/dist/UI5Element.js +427 -299
- package/dist/UI5ElementMetadata.js +157 -19
- package/dist/asset-registries/Icons.js +118 -14
- package/dist/asset-registries/Illustrations.js +30 -0
- package/dist/asset-registries/LocaleData.js +90 -65
- package/dist/asset-registries/Themes.js +23 -32
- package/dist/asset-registries/i18n.js +72 -30
- package/dist/config/AnimationMode.js +11 -1
- package/dist/config/Language.js +58 -2
- package/dist/delegate/ItemNavigation.js +244 -171
- package/dist/delegate/ResizeHandler.js +78 -38
- package/dist/delegate/ScrollEnablement.js +49 -20
- package/dist/features/OpenUI5Support.js +42 -7
- package/dist/generated/AssetParameters.js +1 -1
- package/dist/getSharedResource.js +30 -0
- package/dist/i18nBundle.js +27 -4
- package/dist/isLegacyBrowser.js +3 -0
- package/dist/locale/RTLAwareRegistry.js +14 -0
- package/dist/locale/applyDirection.js +17 -0
- package/dist/locale/directionChange.js +32 -0
- package/dist/locale/getEffectiveDir.js +28 -0
- package/dist/locale/getLocale.js +12 -2
- package/dist/locale/languageChange.js +22 -0
- package/dist/renderer/LitRenderer.js +21 -4
- package/dist/renderer/executeTemplate.js +17 -0
- package/dist/resources/bundle.esm.js +17 -109
- package/dist/resources/bundle.esm.js.map +1 -1
- package/dist/sap/base/Log.js +241 -0
- package/dist/sap/base/assert.js +8 -0
- package/dist/sap/base/security/URLListValidator.js +148 -0
- package/dist/sap/base/security/sanitizeHTML.js +16 -0
- package/dist/sap/base/util/now.js +7 -0
- package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +3585 -0
- package/dist/test-resources/assets/Themes.js +10 -6
- package/dist/test-resources/elements/Parent.js +6 -2
- package/dist/test-resources/elements/WithStaticArea.js +2 -1
- package/dist/test-resources/pages/AllTestElements.html +3 -3
- package/dist/test-resources/pages/Configuration.html +0 -2
- package/dist/test-resources/pages/ConfigurationScript.html +1 -3
- package/dist/test-resources/pages/assets/messagebundle_de.properties +1 -0
- package/dist/test-resources/pages/assets/messagebundle_en.properties +1 -0
- package/dist/test-resources/pages/assets/messagebundle_es.properties +1 -0
- package/dist/test-resources/pages/assets/messagebundle_fr.properties +1 -0
- package/dist/test-resources/pages/i18n.html +35 -0
- package/dist/test-resources/specs/ConfigurationChange.spec.js +11 -9
- package/dist/test-resources/specs/ConfigurationScript.spec.js +25 -23
- package/dist/test-resources/specs/ConfigurationURL.spec.js +65 -17
- package/dist/test-resources/specs/CustomTheme.spec.js +7 -5
- package/dist/test-resources/specs/EventProvider.spec.js +63 -0
- package/dist/test-resources/specs/StaticArea.spec.js +56 -12
- package/dist/test-resources/specs/Theming.spec.js +9 -7
- package/dist/test-resources/specs/UI5ElementInvalidation.js +54 -70
- package/dist/test-resources/specs/UI5ElementLifecycle.js +19 -14
- package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +25 -51
- package/dist/test-resources/specs/UI5ElementMetadataExt.js +9 -7
- package/dist/test-resources/specs/UI5ElementPropertyValidation.js +7 -5
- package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +37 -35
- package/dist/test-resources/specs/UI5ElementShadowDOM.js +10 -8
- package/dist/test-resources/specs/UI5ElementSlots.js +10 -8
- package/dist/theming/CustomStyle.js +28 -7
- package/dist/theming/ThemeLoaded.js +22 -0
- package/dist/theming/applyTheme.js +2 -5
- package/dist/theming/getConstructableStyle.js +15 -10
- package/dist/theming/getEffectiveStyle.js +23 -8
- package/dist/theming/getStylesString.js +13 -0
- package/dist/types/CSSColor.js +9 -0
- package/dist/types/CalendarType.js +1 -1
- package/dist/types/DataType.js +13 -1
- package/dist/types/Float.js +14 -0
- package/dist/types/Integer.js +4 -0
- package/dist/types/InvisibleMessageMode.js +30 -0
- package/dist/types/ItemNavigationBehavior.js +2 -7
- package/dist/types/NavigationMode.js +1 -0
- package/dist/types/PopupState.js +1 -1
- package/dist/types/ValueState.js +1 -1
- package/dist/updateShadowRoot.js +26 -0
- package/dist/util/AriaLabelHelper.js +41 -0
- package/dist/util/Caret.js +45 -0
- package/dist/util/ColorConversion.js +370 -0
- package/dist/util/FocusableElements.js +25 -8
- package/dist/util/HTMLSanitizer.js +7 -0
- package/dist/util/InvisibleMessage.js +58 -0
- package/dist/util/PopupUtils.js +93 -0
- package/dist/util/SlotsHelper.js +43 -0
- package/dist/util/TabbableElements.js +1 -1
- package/dist/util/arraysAreEqual.js +15 -0
- package/dist/util/clamp.js +12 -0
- package/dist/util/debounce.js +17 -0
- package/dist/util/encodeCSS.js +24 -0
- package/dist/util/getActiveElement.js +11 -0
- package/dist/util/getClassCopy.js +10 -0
- package/dist/util/getEffectiveContentDensity.js +5 -0
- package/dist/util/getSingletonElementInstance.js +13 -0
- package/dist/util/isElementInView.js +15 -0
- package/dist/util/isNodeHidden.js +1 -5
- package/dist/util/isNodeTabbable.js +4 -4
- package/dist/util/isValidPropertyName.js +9 -3
- package/dist/util/setToArray.js +10 -0
- package/hash.txt +1 -0
- package/index.js +1 -1
- package/package-scripts.js +33 -18
- package/package.json +20 -11
- package/src/AssetRegistry.js +8 -6
- package/src/Boot.js +43 -0
- package/src/CustomElementsRegistry.js +24 -8
- package/src/CustomElementsScope.js +108 -0
- package/src/DOMObserver.js +65 -0
- package/src/Device.js +58 -779
- package/src/EventProvider.js +38 -26
- package/src/FontFace.js +52 -7
- package/src/InitialConfiguration.js +32 -8
- package/src/Keys.js +89 -2
- package/src/MediaRange.js +109 -0
- package/src/PropertiesFileFormat.js +95 -0
- package/src/Render.js +173 -0
- package/src/RenderQueue.js +41 -17
- package/src/RenderScheduler.js +24 -126
- package/src/StaticArea.js +1 -39
- package/src/StaticAreaItem.js +64 -62
- package/src/SystemCSSVars.js +31 -0
- package/src/Theming.js +2 -1
- package/src/UI5Element.js +427 -299
- package/src/UI5ElementMetadata.js +157 -19
- package/src/asset-registries/Icons.js +118 -14
- package/src/asset-registries/Illustrations.js +30 -0
- package/src/asset-registries/LocaleData.js +90 -65
- package/src/asset-registries/Themes.js +23 -32
- package/src/asset-registries/i18n.js +72 -30
- package/src/config/AnimationMode.js +11 -1
- package/src/config/Language.js +58 -2
- package/src/delegate/ItemNavigation.js +244 -171
- package/src/delegate/ResizeHandler.js +78 -38
- package/src/delegate/ScrollEnablement.js +49 -20
- package/src/features/OpenUI5Support.js +42 -7
- package/src/getSharedResource.js +30 -0
- package/src/i18nBundle.js +27 -4
- package/src/isLegacyBrowser.js +3 -0
- package/src/locale/RTLAwareRegistry.js +14 -0
- package/src/locale/applyDirection.js +17 -0
- package/src/locale/directionChange.js +32 -0
- package/src/locale/getEffectiveDir.js +28 -0
- package/src/locale/getLocale.js +12 -2
- package/src/locale/languageChange.js +22 -0
- package/src/renderer/LitRenderer.js +21 -4
- package/src/renderer/executeTemplate.js +17 -0
- package/src/theming/CustomStyle.js +28 -7
- package/src/theming/ThemeLoaded.js +22 -0
- package/src/theming/applyTheme.js +2 -5
- package/src/theming/getConstructableStyle.js +15 -10
- package/src/theming/getEffectiveStyle.js +23 -8
- package/src/theming/getStylesString.js +13 -0
- package/src/types/CSSColor.js +9 -0
- package/src/types/CalendarType.js +1 -1
- package/src/types/DataType.js +13 -1
- package/src/types/Float.js +14 -0
- package/src/types/Integer.js +4 -0
- package/src/types/InvisibleMessageMode.js +30 -0
- package/src/types/ItemNavigationBehavior.js +2 -7
- package/src/types/NavigationMode.js +1 -0
- package/src/types/PopupState.js +1 -1
- package/src/types/ValueState.js +1 -1
- package/src/updateShadowRoot.js +26 -0
- package/src/util/AriaLabelHelper.js +41 -0
- package/src/util/Caret.js +45 -0
- package/src/util/ColorConversion.js +370 -0
- package/src/util/FocusableElements.js +25 -8
- package/src/util/HTMLSanitizer.js +7 -0
- package/src/util/InvisibleMessage.js +58 -0
- package/src/util/PopupUtils.js +93 -0
- package/src/util/SlotsHelper.js +43 -0
- package/src/util/TabbableElements.js +1 -1
- package/src/util/arraysAreEqual.js +15 -0
- package/src/util/clamp.js +12 -0
- package/src/util/debounce.js +17 -0
- package/src/util/encodeCSS.js +24 -0
- package/src/util/getActiveElement.js +11 -0
- package/src/util/getClassCopy.js +10 -0
- package/src/util/getEffectiveContentDensity.js +5 -0
- package/src/util/getSingletonElementInstance.js +13 -0
- package/src/util/isElementInView.js +15 -0
- package/src/util/isNodeHidden.js +1 -5
- package/src/util/isNodeTabbable.js +4 -4
- package/src/util/isValidPropertyName.js +9 -3
- package/src/util/setToArray.js +10 -0
- package/used-modules.txt +7 -0
- package/bundle.es5.js +0 -28
- package/dist/SVGIconRegistry.js +0 -60
- package/dist/boot.js +0 -32
- package/dist/compatibility/DOMObserver.js +0 -62
- package/dist/compatibility/patchNodeValue.js +0 -24
- package/dist/compatibility/whenPolyfillLoaded.js +0 -26
- package/dist/delegate/CustomResize.js +0 -78
- package/dist/delegate/NativeResize.js +0 -44
- package/dist/features/browsersupport/Edge.js +0 -6
- package/dist/features/browsersupport/IE11.js +0 -41
- package/dist/features/browsersupport/IE11WithWebComponentsPolyfill.js +0 -5
- package/dist/renderer/ifDefined.js +0 -21
- package/dist/resources/bundle.es5.js +0 -212
- package/dist/resources/bundle.es5.js.map +0 -1
- package/dist/theming/CSSVarsPonyfill.js +0 -24
- package/dist/theming/adaptCSSForIE.js +0 -90
- package/dist/theming/createComponentStyleTag.js +0 -49
- package/dist/thirdparty/Array.from.js +0 -16
- package/dist/thirdparty/Array.prototype.fill.js +0 -44
- package/dist/thirdparty/Array.prototype.find.js +0 -46
- package/dist/thirdparty/Array.prototype.includes.js +0 -51
- package/dist/thirdparty/Element.prototype.closest.js +0 -11
- package/dist/thirdparty/Element.prototype.matches.js +0 -6
- package/dist/thirdparty/Map.prototype.keys.js +0 -9
- package/dist/thirdparty/Number.isInteger.js +0 -5
- package/dist/thirdparty/Number.isNaN.js +0 -1
- package/dist/thirdparty/Number.parseInt.js +0 -1
- package/dist/thirdparty/Object.assign.js +0 -31
- package/dist/thirdparty/Object.entries.js +0 -11
- package/dist/thirdparty/Symbol.js +0 -2
- package/dist/thirdparty/WeakSet.js +0 -27
- package/dist/thirdparty/es6-string-methods.js +0 -182
- package/dist/thirdparty/events-polyfills.js +0 -89
- package/dist/thirdparty/fetch.js +0 -1
- package/dist/thirdparty/template.js +0 -600
- package/dist/thirdparty/webcomponents-sd-ce-pf.js +0 -318
- package/dist/webcomponentsjs/LICENSE.md +0 -19
- package/dist/webcomponentsjs/README.md +0 -229
- package/dist/webcomponentsjs/bundles/webcomponents-ce.js +0 -63
- package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -297
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -208
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
- package/dist/webcomponentsjs/bundles/webcomponents-sd.js +0 -166
- package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
- package/dist/webcomponentsjs/custom-elements-es5-adapter.js +0 -15
- package/dist/webcomponentsjs/package.json +0 -46
- package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
- package/dist/webcomponentsjs/webcomponents-bundle.js +0 -298
- package/dist/webcomponentsjs/webcomponents-bundle.js.map +0 -1
- package/dist/webcomponentsjs/webcomponents-loader.js +0 -185
- package/src/SVGIconRegistry.js +0 -60
- package/src/boot.js +0 -32
- package/src/compatibility/DOMObserver.js +0 -62
- package/src/compatibility/patchNodeValue.js +0 -24
- package/src/compatibility/whenPolyfillLoaded.js +0 -26
- package/src/delegate/CustomResize.js +0 -78
- package/src/delegate/NativeResize.js +0 -44
- package/src/features/browsersupport/Edge.js +0 -6
- package/src/features/browsersupport/IE11.js +0 -41
- package/src/features/browsersupport/IE11WithWebComponentsPolyfill.js +0 -5
- package/src/renderer/ifDefined.js +0 -21
- package/src/theming/CSSVarsPonyfill.js +0 -24
- package/src/theming/adaptCSSForIE.js +0 -90
- package/src/theming/createComponentStyleTag.js +0 -49
- package/src/thirdparty/Array.from.js +0 -16
- package/src/thirdparty/Array.prototype.fill.js +0 -44
- package/src/thirdparty/Array.prototype.find.js +0 -46
- package/src/thirdparty/Array.prototype.includes.js +0 -51
- package/src/thirdparty/Element.prototype.closest.js +0 -11
- package/src/thirdparty/Element.prototype.matches.js +0 -6
- package/src/thirdparty/Map.prototype.keys.js +0 -9
- package/src/thirdparty/Number.isInteger.js +0 -5
- package/src/thirdparty/Number.isNaN.js +0 -1
- package/src/thirdparty/Number.parseInt.js +0 -1
- package/src/thirdparty/Object.assign.js +0 -31
- package/src/thirdparty/Object.entries.js +0 -11
- package/src/thirdparty/Symbol.js +0 -2
- package/src/thirdparty/WeakSet.js +0 -27
- package/src/thirdparty/es6-string-methods.js +0 -182
- package/src/thirdparty/events-polyfills.js +0 -89
- package/src/thirdparty/fetch.js +0 -1
- package/src/thirdparty/template.js +0 -600
- 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
|
-
|
|
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 {
|
|
1
|
+
import { registerThemePropertiesLoader } from "./dist/AssetRegistry.js";
|
|
2
|
+
import EventProvider from "./dist/EventProvider.js";
|
|
2
3
|
|
|
3
|
-
// ESM bundle targets
|
|
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
|
|
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.
|
|
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 {
|
|
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
|
};
|
package/dist/AssetRegistry.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
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
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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
|
-
|
|
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
|
-
|
|
8
|
+
Definitions.add(tag);
|
|
5
9
|
};
|
|
6
10
|
|
|
7
11
|
const isTagRegistered = tag => {
|
|
8
|
-
return
|
|
12
|
+
return Definitions.has(tag);
|
|
9
13
|
};
|
|
10
14
|
|
|
11
15
|
const getAllRegisteredTags = () => {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
+
};
|