@ui5/webcomponents-base 0.0.0-e7dd012d7 → 0.0.0-ec448881d
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 +3 -0
- package/CHANGELOG.md +272 -0
- package/README.md +26 -2
- package/bundle.esm.js +13 -11
- package/dist/AssetRegistry.js +8 -9
- package/dist/Boot.js +59 -0
- package/dist/CSP.js +59 -0
- package/dist/CustomElementsRegistry.js +60 -4
- package/dist/CustomElementsScope.js +20 -98
- package/dist/CustomElementsScopeUtils.js +108 -0
- package/dist/DOMObserver.js +65 -0
- package/dist/Device.js +71 -773
- package/dist/EventProvider.js +30 -26
- package/dist/FeaturesRegistry.js +4 -1
- package/dist/FontFace.js +7 -95
- package/dist/InitialConfiguration.js +37 -21
- package/dist/Keys.js +98 -0
- package/dist/ManagedStyles.js +83 -0
- package/dist/MediaRange.js +109 -0
- package/{src/util/parseProperties.js → dist/PropertiesFileFormat.js} +6 -0
- package/dist/Render.js +175 -0
- package/dist/RenderScheduler.js +16 -138
- package/dist/Runtimes.js +107 -0
- package/dist/StaticArea.js +1 -29
- package/dist/StaticAreaItem.js +58 -65
- package/dist/SystemCSSVars.js +4 -25
- package/dist/UI5Element.js +315 -382
- package/dist/UI5ElementMetadata.js +132 -17
- package/dist/asset-registries/Icons.js +117 -14
- package/dist/asset-registries/Illustrations.js +30 -0
- package/dist/asset-registries/LocaleData.js +97 -68
- package/dist/asset-registries/Themes.js +29 -35
- package/dist/asset-registries/i18n.js +61 -50
- package/dist/assets-meta/IconCollectionsAlias.js +18 -0
- package/dist/config/Icons.js +52 -0
- package/dist/config/Language.js +18 -20
- package/dist/config/Theme.js +25 -0
- package/dist/css/BusyIndicator.css +80 -0
- package/dist/css/FontFace.css +75 -0
- package/dist/css/OverrideFontFace.css +32 -0
- package/dist/css/SystemCSSVars.css +17 -0
- package/dist/delegate/ItemNavigation.js +233 -201
- package/dist/delegate/ResizeHandler.js +78 -37
- package/dist/delegate/ScrollEnablement.js +49 -20
- package/dist/features/F6Navigation.js +106 -0
- package/dist/features/OpenUI5Enablement.js +119 -0
- package/dist/features/OpenUI5Support.js +41 -6
- package/dist/generated/AssetParameters.js +1 -1
- package/dist/generated/VersionInfo.js +10 -0
- package/dist/generated/css/BusyIndicator.css.js +5 -0
- package/dist/generated/css/FontFace.css.js +5 -0
- package/dist/generated/css/OverrideFontFace.css.js +5 -0
- package/dist/generated/css/SystemCSSVars.css.js +5 -0
- package/dist/i18nBundle.js +38 -4
- package/dist/isLegacyBrowser.js +3 -0
- package/dist/locale/applyDirection.js +6 -4
- package/dist/locale/directionChange.js +32 -0
- package/dist/locale/getEffectiveDir.js +28 -0
- package/dist/locale/languageChange.js +1 -1
- package/dist/renderer/LitRenderer.js +39 -18
- package/dist/renderer/directives/style-map.js +72 -0
- package/dist/renderer/executeTemplate.js +19 -2
- package/dist/resources/bundle.esm.js +15 -112
- 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/encodeCSS.js +14 -0
- package/dist/sap/base/security/encodeXML.js +23 -0
- package/dist/sap/base/security/sanitizeHTML.js +16 -0
- package/dist/sap/base/strings/toHex.js +8 -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 +8 -8
- 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 +0 -2
- package/dist/test-resources/pages/i18n.html +2 -9
- package/dist/test-resources/specs/ConfigurationChange.spec.js +10 -8
- 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 +9 -7
- 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 +23 -10
- package/dist/test-resources/specs/UI5ElementInvalidation.js +54 -70
- package/dist/test-resources/specs/UI5ElementLifecycle.js +17 -15
- 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 +25 -5
- package/dist/theming/applyTheme.js +11 -16
- package/dist/theming/getConstructableStyle.js +7 -6
- package/dist/theming/getEffectiveLinksHrefs.js +27 -0
- package/dist/theming/getEffectiveStyle.js +24 -8
- package/dist/theming/getStylesString.js +4 -2
- package/dist/theming/getThemeDesignerTheme.js +25 -5
- package/dist/theming/preloadLinks.js +23 -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 +4 -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/PopupState.js +1 -1
- package/dist/types/ValueState.js +1 -1
- package/dist/updateShadowRoot.js +30 -0
- package/dist/util/AriaLabelHelper.js +4 -4
- package/dist/util/Caret.js +45 -0
- package/dist/util/ColorConversion.js +370 -0
- package/dist/util/FocusableElements.js +22 -9
- package/dist/util/HTMLSanitizer.js +7 -0
- package/dist/util/InvisibleMessage.js +60 -0
- package/dist/util/PopupUtils.js +93 -0
- package/dist/util/SlotsHelper.js +43 -0
- package/dist/util/TabbableElements.js +5 -1
- package/dist/util/arraysAreEqual.js +15 -0
- package/dist/util/clamp.js +12 -0
- package/dist/util/createLinkInHead.js +19 -0
- package/dist/util/debounce.js +17 -0
- package/dist/util/escapeRegex.js +10 -0
- package/dist/util/generateHighlightedMarkup.js +42 -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/getNormalizedTarget.js +16 -0
- package/dist/util/isElementInView.js +15 -0
- package/dist/util/isNodeHidden.js +1 -1
- package/dist/util/isNodeTabbable.js +4 -4
- package/hash.txt +1 -0
- package/index.js +1 -1
- package/lib/generate-asset-parameters/index.js +8 -5
- package/lib/generate-styles/index.js +26 -0
- package/lib/generate-version-info/index.js +32 -0
- package/package-scripts.js +30 -19
- package/package.json +19 -13
- package/src/AssetRegistry.js +8 -9
- package/src/Boot.js +59 -0
- package/src/CSP.js +59 -0
- package/src/CustomElementsRegistry.js +60 -4
- package/src/CustomElementsScope.js +20 -98
- package/src/CustomElementsScopeUtils.js +108 -0
- package/src/DOMObserver.js +65 -0
- package/src/Device.js +71 -773
- package/src/EventProvider.js +30 -26
- package/src/FeaturesRegistry.js +4 -1
- package/src/FontFace.js +7 -95
- package/src/InitialConfiguration.js +37 -21
- package/src/Keys.js +98 -0
- package/src/ManagedStyles.js +83 -0
- package/src/MediaRange.js +109 -0
- package/{dist/util/parseProperties.js → src/PropertiesFileFormat.js} +6 -0
- package/src/Render.js +175 -0
- package/src/RenderScheduler.js +16 -138
- package/src/Runtimes.js +107 -0
- package/src/StaticArea.js +1 -29
- package/src/StaticAreaItem.js +58 -65
- package/src/SystemCSSVars.js +4 -25
- package/src/UI5Element.js +315 -382
- package/src/UI5ElementMetadata.js +132 -17
- package/src/asset-registries/Icons.js +117 -14
- package/src/asset-registries/Illustrations.js +30 -0
- package/src/asset-registries/LocaleData.js +97 -68
- package/src/asset-registries/Themes.js +29 -35
- package/src/asset-registries/i18n.js +61 -50
- package/src/assets-meta/IconCollectionsAlias.js +18 -0
- package/src/config/Icons.js +52 -0
- package/src/config/Language.js +18 -20
- package/src/config/Theme.js +25 -0
- package/src/css/BusyIndicator.css +80 -0
- package/src/css/FontFace.css +75 -0
- package/src/css/OverrideFontFace.css +32 -0
- package/src/css/SystemCSSVars.css +17 -0
- package/src/delegate/ItemNavigation.js +233 -201
- package/src/delegate/ResizeHandler.js +78 -37
- package/src/delegate/ScrollEnablement.js +49 -20
- package/src/features/F6Navigation.js +106 -0
- package/src/features/OpenUI5Enablement.js +119 -0
- package/src/features/OpenUI5Support.js +41 -6
- package/src/i18nBundle.js +38 -4
- package/src/isLegacyBrowser.js +3 -0
- package/src/locale/applyDirection.js +6 -4
- package/src/locale/directionChange.js +32 -0
- package/src/locale/getEffectiveDir.js +28 -0
- package/src/locale/languageChange.js +1 -1
- package/src/renderer/LitRenderer.js +39 -18
- package/src/renderer/directives/style-map.js +72 -0
- package/src/renderer/executeTemplate.js +19 -2
- package/src/theming/CustomStyle.js +25 -5
- package/src/theming/applyTheme.js +11 -16
- package/src/theming/getConstructableStyle.js +7 -6
- package/src/theming/getEffectiveLinksHrefs.js +27 -0
- package/src/theming/getEffectiveStyle.js +24 -8
- package/src/theming/getStylesString.js +4 -2
- package/src/theming/getThemeDesignerTheme.js +25 -5
- package/src/theming/preloadLinks.js +23 -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 +4 -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/PopupState.js +1 -1
- package/src/types/ValueState.js +1 -1
- package/src/updateShadowRoot.js +30 -0
- package/src/util/AriaLabelHelper.js +4 -4
- package/src/util/Caret.js +45 -0
- package/src/util/ColorConversion.js +370 -0
- package/src/util/FocusableElements.js +22 -9
- package/src/util/HTMLSanitizer.js +7 -0
- package/src/util/InvisibleMessage.js +60 -0
- package/src/util/PopupUtils.js +93 -0
- package/src/util/SlotsHelper.js +43 -0
- package/src/util/TabbableElements.js +5 -1
- package/src/util/arraysAreEqual.js +15 -0
- package/src/util/clamp.js +12 -0
- package/src/util/createLinkInHead.js +19 -0
- package/src/util/debounce.js +17 -0
- package/src/util/escapeRegex.js +10 -0
- package/src/util/generateHighlightedMarkup.js +42 -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/getNormalizedTarget.js +16 -0
- package/src/util/isElementInView.js +15 -0
- package/src/util/isNodeHidden.js +1 -1
- package/src/util/isNodeTabbable.js +4 -4
- package/used-modules.txt +10 -0
- package/bundle.es5.js +0 -28
- package/dist/SVGIconRegistry.js +0 -73
- package/dist/boot.js +0 -34
- package/dist/compatibility/DOMObserver.js +0 -62
- package/dist/compatibility/patchNodeValue.js +0 -24
- package/dist/compatibility/whenPolyfillLoaded.js +0 -26
- package/dist/config/AssetsPath.js +0 -17
- package/dist/delegate/CustomResize.js +0 -78
- package/dist/delegate/NativeResize.js +0 -45
- package/dist/features/PropertiesFormatSupport.js +0 -8
- package/dist/features/browsersupport/Edge.js +0 -6
- package/dist/features/browsersupport/IE11.js +0 -42
- package/dist/features/browsersupport/IE11WithWebComponentsPolyfill.js +0 -5
- package/dist/renderer/ifDefined.js +0 -21
- package/dist/renderer/scopeHTML.js +0 -32
- package/dist/resources/bundle.es5.js +0 -212
- package/dist/resources/bundle.es5.js.map +0 -1
- package/dist/theming/CSSVarsPonyfill.js +0 -68
- package/dist/theming/adaptCSSForIE.js +0 -95
- package/dist/theming/createComponentStyleTag.js +0 -54
- package/dist/theming/createThemePropertiesStyleTag.js +0 -20
- 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.parseFloat.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/util/EffectiveAssetPath.js +0 -27
- package/dist/util/encodeCSS.js +0 -24
- package/dist/util/isSlot.js +0 -3
- 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 -73
- package/src/boot.js +0 -34
- package/src/compatibility/DOMObserver.js +0 -62
- package/src/compatibility/patchNodeValue.js +0 -24
- package/src/compatibility/whenPolyfillLoaded.js +0 -26
- package/src/config/AssetsPath.js +0 -17
- package/src/delegate/CustomResize.js +0 -78
- package/src/delegate/NativeResize.js +0 -45
- package/src/features/PropertiesFormatSupport.js +0 -8
- package/src/features/browsersupport/Edge.js +0 -6
- package/src/features/browsersupport/IE11.js +0 -42
- package/src/features/browsersupport/IE11WithWebComponentsPolyfill.js +0 -5
- package/src/renderer/ifDefined.js +0 -21
- package/src/renderer/scopeHTML.js +0 -32
- package/src/theming/CSSVarsPonyfill.js +0 -68
- package/src/theming/adaptCSSForIE.js +0 -95
- package/src/theming/createComponentStyleTag.js +0 -54
- package/src/theming/createThemePropertiesStyleTag.js +0 -20
- 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.parseFloat.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/src/util/EffectiveAssetPath.js +0 -27
- package/src/util/encodeCSS.js +0 -24
- package/src/util/isSlot.js +0 -3
|
@@ -1,228 +1,214 @@
|
|
|
1
1
|
const assert = require("chai").assert;
|
|
2
2
|
|
|
3
3
|
describe("Invalidation works", () => {
|
|
4
|
-
|
|
4
|
+
before(async () => {
|
|
5
|
+
await browser.url("http://localhost:9191/test-resources/pages/AllTestElements.html");
|
|
6
|
+
});
|
|
5
7
|
|
|
6
|
-
it("Tests that changing a property invalidates", () => {
|
|
8
|
+
it("Tests that changing a property invalidates", async () => {
|
|
7
9
|
|
|
8
|
-
const res = browser.executeAsync( async (done) => {
|
|
10
|
+
const res = await browser.executeAsync( async (done) => {
|
|
9
11
|
|
|
10
12
|
const el = document.getElementById("gen");
|
|
11
13
|
|
|
12
14
|
// Exactly 1 invalidation for each property change
|
|
13
15
|
let invalidations = 0;
|
|
14
16
|
|
|
15
|
-
|
|
16
|
-
el._invalidate = () => {
|
|
17
|
-
original.apply(el, arguments);
|
|
17
|
+
el.onInvalidation = () => {
|
|
18
18
|
invalidations++;
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
el.strProp = "new value";
|
|
22
22
|
el.boolProp = true;
|
|
23
23
|
|
|
24
|
-
await window.
|
|
24
|
+
await window["sap-ui-webcomponents-bundle"].renderFinished();
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
done(invalidations);
|
|
27
27
|
});
|
|
28
28
|
|
|
29
29
|
assert.strictEqual(res, 2, "Invalidated 2 times");
|
|
30
30
|
});
|
|
31
31
|
|
|
32
|
-
it("Tests that setting a property to the same value does not invalidate", () => {
|
|
32
|
+
it("Tests that setting a property to the same value does not invalidate", async () => {
|
|
33
33
|
|
|
34
|
-
const res = browser.executeAsync( async (done) => {
|
|
34
|
+
const res = await browser.executeAsync( async (done) => {
|
|
35
35
|
const text = "some value";
|
|
36
36
|
|
|
37
37
|
const el = document.getElementById("gen");
|
|
38
38
|
el.strProp = text;
|
|
39
|
-
await window.
|
|
39
|
+
await window["sap-ui-webcomponents-bundle"].renderFinished();
|
|
40
40
|
|
|
41
41
|
let invalidations = 0;
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
el._invalidate = () => {
|
|
45
|
-
original.apply(el, arguments);
|
|
43
|
+
el.onInvalidation = () => {
|
|
46
44
|
invalidations++;
|
|
47
45
|
};
|
|
48
46
|
|
|
49
47
|
el.strProp = text;
|
|
50
48
|
|
|
51
|
-
await window.
|
|
49
|
+
await window["sap-ui-webcomponents-bundle"].renderFinished();
|
|
52
50
|
|
|
53
|
-
|
|
51
|
+
done(invalidations);
|
|
54
52
|
});
|
|
55
53
|
|
|
56
54
|
assert.strictEqual(res, 0, "Not invalidated");
|
|
57
55
|
});
|
|
58
56
|
|
|
59
|
-
it("Tests that setting a property of type Object always invalidates", () => {
|
|
57
|
+
it("Tests that setting a property of type Object always invalidates", async () => {
|
|
60
58
|
|
|
61
|
-
const res = browser.executeAsync( async (done) => {
|
|
59
|
+
const res = await browser.executeAsync( async (done) => {
|
|
62
60
|
const obj = {};
|
|
63
61
|
const otherObj = {};
|
|
64
62
|
|
|
65
63
|
const el = document.getElementById("gen");
|
|
66
64
|
el.objectProp = obj;
|
|
67
|
-
await window.
|
|
65
|
+
await window["sap-ui-webcomponents-bundle"].renderFinished();
|
|
68
66
|
|
|
69
67
|
let invalidations = 0;
|
|
70
68
|
|
|
71
|
-
|
|
72
|
-
el._invalidate = () => {
|
|
73
|
-
original.apply(el, arguments);
|
|
69
|
+
el.onInvalidation = () => {
|
|
74
70
|
invalidations++;
|
|
75
71
|
};
|
|
76
72
|
|
|
77
73
|
el.objectProp = otherObj;
|
|
78
74
|
|
|
79
|
-
await window.
|
|
75
|
+
await window["sap-ui-webcomponents-bundle"].renderFinished();
|
|
80
76
|
|
|
81
|
-
|
|
77
|
+
done(invalidations);
|
|
82
78
|
});
|
|
83
79
|
|
|
84
80
|
assert.strictEqual(res, 1, "Invalidated");
|
|
85
81
|
});
|
|
86
82
|
|
|
87
|
-
it("Tests that setting an array property always invalidates", () => {
|
|
83
|
+
it("Tests that setting an array property always invalidates", async () => {
|
|
88
84
|
|
|
89
|
-
const res = browser.executeAsync( async (done) => {
|
|
85
|
+
const res = await browser.executeAsync( async (done) => {
|
|
90
86
|
const arr = [];
|
|
91
87
|
const otherArr = [];
|
|
92
88
|
|
|
93
89
|
const el = document.getElementById("gen");
|
|
94
90
|
el.multiProp = arr;
|
|
95
|
-
await window.
|
|
91
|
+
await window["sap-ui-webcomponents-bundle"].renderFinished();
|
|
96
92
|
|
|
97
93
|
let invalidations = 0;
|
|
98
94
|
|
|
99
|
-
|
|
100
|
-
el._invalidate = () => {
|
|
101
|
-
original.apply(el, arguments);
|
|
95
|
+
el.onInvalidation = () => {
|
|
102
96
|
invalidations++;
|
|
103
97
|
};
|
|
104
98
|
|
|
105
99
|
el.multiProp = otherArr;
|
|
106
100
|
|
|
107
|
-
await window.
|
|
101
|
+
await window["sap-ui-webcomponents-bundle"].renderFinished();
|
|
108
102
|
|
|
109
|
-
|
|
103
|
+
done(invalidations);
|
|
110
104
|
});
|
|
111
105
|
|
|
112
106
|
assert.strictEqual(res, 1, "Invalidated");
|
|
113
107
|
});
|
|
114
108
|
|
|
115
|
-
it("Tests that adding a child invalidates", () => {
|
|
109
|
+
it("Tests that adding a child invalidates", async () => {
|
|
116
110
|
|
|
117
|
-
const res = browser.executeAsync( async (done) => {
|
|
111
|
+
const res = await browser.executeAsync( async (done) => {
|
|
118
112
|
|
|
119
113
|
const el = document.getElementById("gen");
|
|
120
114
|
|
|
121
115
|
// Number of invalidations may vary with children/slots count, so just check for invalidation
|
|
122
116
|
let invalidated = false;
|
|
123
117
|
|
|
124
|
-
|
|
125
|
-
el._invalidate = () => {
|
|
126
|
-
original.apply(el, arguments);
|
|
118
|
+
el.onInvalidation = () => {
|
|
127
119
|
invalidated = true;
|
|
128
120
|
};
|
|
129
121
|
|
|
130
122
|
const div = document.createElement("div");
|
|
131
123
|
el.appendChild(div);
|
|
132
124
|
|
|
133
|
-
await window.
|
|
125
|
+
await window["sap-ui-webcomponents-bundle"].renderFinished();
|
|
134
126
|
|
|
135
|
-
|
|
127
|
+
done(invalidated);
|
|
136
128
|
});
|
|
137
129
|
|
|
138
130
|
assert.strictEqual(res, true, "Invalidated");
|
|
139
131
|
});
|
|
140
132
|
|
|
141
|
-
it("Tests that removing a child invalidates", () => {
|
|
133
|
+
it("Tests that removing a child invalidates", async () => {
|
|
142
134
|
|
|
143
|
-
const res = browser.executeAsync( async (done) => {
|
|
135
|
+
const res = await browser.executeAsync( async (done) => {
|
|
144
136
|
|
|
145
137
|
const el = document.getElementById("gen");
|
|
146
138
|
const div = document.createElement("div");
|
|
147
139
|
el.appendChild(div);
|
|
148
140
|
|
|
149
|
-
await window.
|
|
141
|
+
await window["sap-ui-webcomponents-bundle"].renderFinished();
|
|
150
142
|
|
|
151
143
|
let invalidated = false;
|
|
152
144
|
|
|
153
|
-
|
|
154
|
-
el._invalidate = () => {
|
|
155
|
-
original.apply(el, arguments);
|
|
145
|
+
el.onInvalidation = () => {
|
|
156
146
|
invalidated = true;
|
|
157
147
|
};
|
|
158
148
|
|
|
159
149
|
el.removeChild(div);
|
|
160
150
|
|
|
161
|
-
await window.
|
|
151
|
+
await window["sap-ui-webcomponents-bundle"].renderFinished();
|
|
162
152
|
|
|
163
|
-
|
|
153
|
+
done(invalidated);
|
|
164
154
|
});
|
|
165
155
|
|
|
166
156
|
assert.strictEqual(res, true, "Invalidated");
|
|
167
157
|
});
|
|
168
158
|
|
|
169
|
-
it("Tests that modifying textContent invalidates", () => {
|
|
159
|
+
it("Tests that modifying textContent invalidates", async () => {
|
|
170
160
|
|
|
171
|
-
const res = browser.executeAsync( async (done) => {
|
|
161
|
+
const res = await browser.executeAsync( async (done) => {
|
|
172
162
|
|
|
173
163
|
const el = document.getElementById("gen");
|
|
174
164
|
el.textContent = "test";
|
|
175
|
-
await window.
|
|
165
|
+
await window["sap-ui-webcomponents-bundle"].renderFinished();
|
|
176
166
|
|
|
177
167
|
// Number of invalidations may vary with children/slots count, so just check for invalidation
|
|
178
168
|
let invalidated = false;
|
|
179
169
|
|
|
180
|
-
|
|
181
|
-
el._invalidate = () => {
|
|
182
|
-
original.apply(el, arguments);
|
|
170
|
+
el.onInvalidation = () => {
|
|
183
171
|
invalidated = true;
|
|
184
172
|
};
|
|
185
173
|
|
|
186
174
|
el.textContent = "test2";
|
|
187
175
|
|
|
188
|
-
await window.
|
|
176
|
+
await window["sap-ui-webcomponents-bundle"].renderFinished();
|
|
189
177
|
|
|
190
|
-
|
|
178
|
+
done(invalidated);
|
|
191
179
|
});
|
|
192
180
|
|
|
193
181
|
assert.strictEqual(res, true, "Invalidated");
|
|
194
182
|
});
|
|
195
183
|
|
|
196
|
-
it("Tests that modifying nodeValue invalidates", () => {
|
|
184
|
+
it("Tests that modifying nodeValue invalidates", async () => {
|
|
197
185
|
|
|
198
|
-
const res = browser.executeAsync( async (done) => {
|
|
186
|
+
const res = await browser.executeAsync( async (done) => {
|
|
199
187
|
|
|
200
188
|
const el = document.getElementById("gen");
|
|
201
189
|
el.textContent = "test";
|
|
202
|
-
await window.
|
|
190
|
+
await window["sap-ui-webcomponents-bundle"].renderFinished();
|
|
203
191
|
|
|
204
192
|
// Number of invalidations may vary with children/slots count, so just check for invalidation
|
|
205
193
|
let invalidated = false;
|
|
206
194
|
|
|
207
|
-
|
|
208
|
-
el._invalidate = () => {
|
|
209
|
-
original.apply(el, arguments);
|
|
195
|
+
el.onInvalidation = () => {
|
|
210
196
|
invalidated = true;
|
|
211
197
|
};
|
|
212
198
|
|
|
213
199
|
el.childNodes[0].nodeValue = "test2";
|
|
214
200
|
|
|
215
|
-
await window.
|
|
201
|
+
await window["sap-ui-webcomponents-bundle"].renderFinished();
|
|
216
202
|
|
|
217
|
-
|
|
203
|
+
done(invalidated);
|
|
218
204
|
});
|
|
219
205
|
|
|
220
206
|
assert.strictEqual(res, true, "Invalidated");
|
|
221
207
|
});
|
|
222
208
|
|
|
223
|
-
it("Tests that multiple invalidations result in a single rendering", () => {
|
|
209
|
+
it("Tests that multiple invalidations result in a single rendering", async () => {
|
|
224
210
|
|
|
225
|
-
const res = browser.executeAsync( async (done) => {
|
|
211
|
+
const res = await browser.executeAsync( async (done) => {
|
|
226
212
|
|
|
227
213
|
const el = document.getElementById("gen");
|
|
228
214
|
|
|
@@ -231,9 +217,7 @@ describe("Invalidation works", () => {
|
|
|
231
217
|
rendering: 0,
|
|
232
218
|
};
|
|
233
219
|
|
|
234
|
-
|
|
235
|
-
el._invalidate = () => {
|
|
236
|
-
originalInvalidate.apply(el, arguments);
|
|
220
|
+
el.onInvalidation = () => {
|
|
237
221
|
operations.invalidation++;
|
|
238
222
|
};
|
|
239
223
|
|
|
@@ -246,9 +230,9 @@ describe("Invalidation works", () => {
|
|
|
246
230
|
el.strProp = "new";
|
|
247
231
|
el.strProp = "newer";
|
|
248
232
|
|
|
249
|
-
await window.
|
|
233
|
+
await window["sap-ui-webcomponents-bundle"].renderFinished();
|
|
250
234
|
|
|
251
|
-
|
|
235
|
+
done(operations);
|
|
252
236
|
});
|
|
253
237
|
|
|
254
238
|
assert.strictEqual(res.invalidation, 2, "Invalidated 2 times");
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
const assert = require("chai").assert;
|
|
2
2
|
|
|
3
3
|
describe("Lifecycle works", () => {
|
|
4
|
-
|
|
4
|
+
before(async () => {
|
|
5
|
+
await browser.url("http://localhost:9191/test-resources/pages/AllTestElements.html");
|
|
6
|
+
});
|
|
5
7
|
|
|
6
|
-
it("Tests element creation callbacks", () => {
|
|
8
|
+
it("Tests element creation callbacks", async () => {
|
|
7
9
|
|
|
8
|
-
const res = browser.executeAsync( async (done) => {
|
|
10
|
+
const res = await browser.executeAsync( async (done) => {
|
|
9
11
|
const creationCallbacks = ["onBeforeRendering", "onAfterRendering", "onEnterDOM"];
|
|
10
12
|
const calledCallbacks = [];
|
|
11
13
|
|
|
@@ -20,9 +22,9 @@ describe("Lifecycle works", () => {
|
|
|
20
22
|
});
|
|
21
23
|
|
|
22
24
|
document.body.appendChild(el);
|
|
23
|
-
await window.
|
|
25
|
+
await window["sap-ui-webcomponents-bundle"].renderFinished();
|
|
24
26
|
|
|
25
|
-
|
|
27
|
+
done(calledCallbacks);
|
|
26
28
|
});
|
|
27
29
|
|
|
28
30
|
assert.strictEqual(res.length, 3, "All 3 callbacks called");
|
|
@@ -31,16 +33,16 @@ describe("Lifecycle works", () => {
|
|
|
31
33
|
assert.strictEqual(res[2], "onEnterDOM", "onEnterDOM called third");
|
|
32
34
|
});
|
|
33
35
|
|
|
34
|
-
it("Tests element invalidation callbacks", () => {
|
|
36
|
+
it("Tests element invalidation callbacks", async () => {
|
|
35
37
|
|
|
36
|
-
const res = browser.executeAsync( async (done) => {
|
|
38
|
+
const res = await browser.executeAsync( async (done) => {
|
|
37
39
|
const invalidationCallbacks = ["onBeforeRendering", "onAfterRendering"];
|
|
38
40
|
const calledCallbacks = [];
|
|
39
41
|
|
|
40
42
|
const el = document.createElement("ui5-test-generic");
|
|
41
43
|
document.body.appendChild(el);
|
|
42
44
|
|
|
43
|
-
await window.
|
|
45
|
+
await window["sap-ui-webcomponents-bundle"].renderFinished();
|
|
44
46
|
|
|
45
47
|
el.strProp = "some string";
|
|
46
48
|
|
|
@@ -52,9 +54,9 @@ describe("Lifecycle works", () => {
|
|
|
52
54
|
};
|
|
53
55
|
});
|
|
54
56
|
|
|
55
|
-
await window.
|
|
57
|
+
await window["sap-ui-webcomponents-bundle"].renderFinished();
|
|
56
58
|
|
|
57
|
-
|
|
59
|
+
done(calledCallbacks);
|
|
58
60
|
});
|
|
59
61
|
|
|
60
62
|
assert.strictEqual(res.length, 2, "All 2 callbacks called");
|
|
@@ -62,9 +64,9 @@ describe("Lifecycle works", () => {
|
|
|
62
64
|
assert.strictEqual(res[1], "onAfterRendering", "onAfterRendering called second");
|
|
63
65
|
});
|
|
64
66
|
|
|
65
|
-
it("Tests element destruction callback", () => {
|
|
67
|
+
it("Tests element destruction callback", async () => {
|
|
66
68
|
|
|
67
|
-
const res = browser.executeAsync( async (done) => {
|
|
69
|
+
const res = await browser.executeAsync( async (done) => {
|
|
68
70
|
const destructionCallbacks = ["onExitDOM"];
|
|
69
71
|
const calledCallbacks = [];
|
|
70
72
|
|
|
@@ -80,13 +82,13 @@ describe("Lifecycle works", () => {
|
|
|
80
82
|
|
|
81
83
|
document.body.appendChild(el);
|
|
82
84
|
|
|
83
|
-
await window.
|
|
85
|
+
await window["sap-ui-webcomponents-bundle"].renderFinished(); // Must wait, otherwise onExitDOM won't be called
|
|
84
86
|
|
|
85
87
|
document.body.removeChild(el);
|
|
86
88
|
|
|
87
|
-
await window.
|
|
89
|
+
await window["sap-ui-webcomponents-bundle"].renderFinished();
|
|
88
90
|
|
|
89
|
-
|
|
91
|
+
done(calledCallbacks);
|
|
90
92
|
});
|
|
91
93
|
|
|
92
94
|
assert.strictEqual(res.length, 1, "Only 1 callback was called");
|
|
@@ -1,101 +1,75 @@
|
|
|
1
1
|
const assert = require("chai").assert;
|
|
2
2
|
|
|
3
|
-
describe("Metadata slot
|
|
4
|
-
|
|
3
|
+
describe("Metadata slot invalidateOnChildChange works", () => {
|
|
4
|
+
before(async () => {
|
|
5
|
+
await browser.url("http://localhost:9191/test-resources/pages/AllTestElements.html");
|
|
6
|
+
});
|
|
5
7
|
|
|
6
|
-
it("Tests that changing a
|
|
8
|
+
it("Tests that changing a monitored property of a child invalidates the parent", async () => {
|
|
7
9
|
|
|
8
|
-
const res = browser.executeAsync( async (done) => {
|
|
10
|
+
const res = await browser.executeAsync( async (done) => {
|
|
9
11
|
const parent = document.getElementById("parent");
|
|
10
12
|
const child = document.getElementById("child1");
|
|
11
13
|
|
|
12
|
-
const parentInvalidate = parent._invalidate;
|
|
13
14
|
let parentInvalidated = false;
|
|
14
15
|
|
|
15
|
-
parent.
|
|
16
|
-
parentInvalidate.apply(parent, arguments);
|
|
16
|
+
parent.onInvalidation = () => {
|
|
17
17
|
parentInvalidated = true;
|
|
18
18
|
};
|
|
19
19
|
|
|
20
20
|
child.prop1 = "a"; // child1(default slot) prop1 -> invalidates
|
|
21
21
|
|
|
22
|
-
await window.
|
|
22
|
+
await window["sap-ui-webcomponents-bundle"].renderFinished();
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
done(parentInvalidated);
|
|
25
25
|
});
|
|
26
26
|
|
|
27
27
|
assert.strictEqual(res, true, "Parent invalidated");
|
|
28
28
|
});
|
|
29
29
|
|
|
30
|
-
it("Tests that changing a non-
|
|
30
|
+
it("Tests that changing a non-monitored property of a child does not invalidate the parent", async () => {
|
|
31
31
|
|
|
32
|
-
const res = browser.executeAsync( async (done) => {
|
|
32
|
+
const res = await browser.executeAsync( async (done) => {
|
|
33
33
|
const parent = document.getElementById("parent");
|
|
34
34
|
const child = document.getElementById("child1");
|
|
35
35
|
|
|
36
|
-
const parentInvalidate = parent._invalidate;
|
|
37
36
|
let parentInvalidated = false;
|
|
38
37
|
|
|
39
|
-
parent.
|
|
40
|
-
parentInvalidate.apply(parent, arguments);
|
|
38
|
+
parent.onInvalidation = () => {
|
|
41
39
|
parentInvalidated = true;
|
|
42
40
|
};
|
|
43
41
|
|
|
44
42
|
child.prop2 = "b"; // child1(default slot) prop 2 -> does not
|
|
45
43
|
|
|
46
|
-
await window.
|
|
44
|
+
await window["sap-ui-webcomponents-bundle"].renderFinished();
|
|
47
45
|
|
|
48
|
-
|
|
46
|
+
done(parentInvalidated);
|
|
49
47
|
});
|
|
50
48
|
|
|
51
49
|
assert.strictEqual(res, false, "Parent not invalidated");
|
|
52
50
|
});
|
|
53
51
|
|
|
54
|
-
it("Tests that
|
|
55
|
-
|
|
56
|
-
const res = browser.executeAsync( async (done) => {
|
|
57
|
-
const parent = document.getElementById("parent");
|
|
58
|
-
const child = document.getElementById("child2");
|
|
59
|
-
|
|
60
|
-
const parentInvalidate = parent._invalidate;
|
|
61
|
-
let parentInvalidated = false;
|
|
62
|
-
|
|
63
|
-
parent._invalidate = () => {
|
|
64
|
-
parentInvalidate.apply(parent, arguments);
|
|
65
|
-
parentInvalidated = true;
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
child.prop1 = "c"; // child2(items slot) prop1 invalidates
|
|
69
|
-
|
|
70
|
-
await window.RenderScheduler.whenFinished();
|
|
71
|
-
|
|
72
|
-
return done(parentInvalidated);
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
assert.strictEqual(res, true, "Parent invalidated");
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
it("Tests that listenFor exclude works", () => {
|
|
52
|
+
it("Tests that listening for all properties works", async () => {
|
|
79
53
|
|
|
80
|
-
const res = browser.executeAsync( async (done) => {
|
|
54
|
+
const res = await browser.executeAsync( async (done) => {
|
|
81
55
|
const parent = document.getElementById("parent");
|
|
82
56
|
const child = document.getElementById("child2");
|
|
83
57
|
|
|
84
|
-
|
|
85
|
-
let parentInvalidated = false;
|
|
58
|
+
let parentInvalidatedCount = 0;
|
|
86
59
|
|
|
87
|
-
parent.
|
|
88
|
-
|
|
89
|
-
parentInvalidated = true;
|
|
60
|
+
parent.onInvalidation = () => {
|
|
61
|
+
parentInvalidatedCount++;
|
|
90
62
|
};
|
|
91
63
|
|
|
92
|
-
child.
|
|
64
|
+
child.prop1 = "c";
|
|
65
|
+
child.prop2 = "c";
|
|
66
|
+
child.prop3 = "c";
|
|
93
67
|
|
|
94
|
-
await window.
|
|
68
|
+
await window["sap-ui-webcomponents-bundle"].renderFinished();
|
|
95
69
|
|
|
96
|
-
|
|
70
|
+
done(parentInvalidatedCount);
|
|
97
71
|
});
|
|
98
72
|
|
|
99
|
-
assert.strictEqual(res,
|
|
73
|
+
assert.strictEqual(res, 3, "Parent invalidated 3 times");
|
|
100
74
|
});
|
|
101
75
|
});
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
const assert = require("chai").assert;
|
|
2
2
|
|
|
3
3
|
describe("Metadata can be extended", () => {
|
|
4
|
-
|
|
4
|
+
before(async () => {
|
|
5
|
+
await browser.url("http://localhost:9191/test-resources/pages/AllTestElements.html");
|
|
6
|
+
});
|
|
5
7
|
|
|
6
|
-
it("When extending metadata, both own and extended entities exist in the resulting metadata", () => {
|
|
8
|
+
it("When extending metadata, both own and extended entities exist in the resulting metadata", async () => {
|
|
7
9
|
|
|
8
|
-
const res = browser.
|
|
10
|
+
const res = await browser.executeAsync(done => {
|
|
9
11
|
|
|
10
12
|
const el = document.getElementById("genExt");
|
|
11
13
|
const m = el.constructor.getMetadata();
|
|
@@ -15,15 +17,15 @@ describe("Metadata can be extended", () => {
|
|
|
15
17
|
!!m.getSlots().default &&
|
|
16
18
|
!!m.getSlots().extSlot;
|
|
17
19
|
|
|
18
|
-
|
|
20
|
+
done(ok);
|
|
19
21
|
});
|
|
20
22
|
|
|
21
23
|
assert.strictEqual(res, true, "Metadata properly extended");
|
|
22
24
|
});
|
|
23
25
|
|
|
24
|
-
it("When extending metadata, property defaultValue can be modified", () => {
|
|
26
|
+
it("When extending metadata, property defaultValue can be modified", async () => {
|
|
25
27
|
|
|
26
|
-
const res = browser.
|
|
28
|
+
const res = await browser.executeAsync(done => {
|
|
27
29
|
|
|
28
30
|
const el = document.getElementById("genExt");
|
|
29
31
|
const m = el.constructor.getMetadata();
|
|
@@ -31,7 +33,7 @@ describe("Metadata can be extended", () => {
|
|
|
31
33
|
const ok = !!m.getProperties().strProp &&
|
|
32
34
|
m.getProperties().strProp.defaultValue === "Ext";
|
|
33
35
|
|
|
34
|
-
|
|
36
|
+
done(ok);
|
|
35
37
|
});
|
|
36
38
|
|
|
37
39
|
assert.strictEqual(res, true, "Property defaultValue changed");
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
const assert = require("chai").assert;
|
|
2
2
|
|
|
3
3
|
describe("Properties can only have values, restricted to their types", () => {
|
|
4
|
-
|
|
4
|
+
before(async () => {
|
|
5
|
+
await browser.url("http://localhost:9191/test-resources/pages/AllTestElements.html");
|
|
6
|
+
});
|
|
5
7
|
|
|
6
|
-
it("String property enforced to string", () => {
|
|
7
|
-
const el = browser.$("#gen");
|
|
8
|
-
el.setProperty("strProp", 5);
|
|
9
|
-
assert.strictEqual(el.getProperty("strProp"), "5", "String property is string");
|
|
8
|
+
it("String property enforced to string", async () => {
|
|
9
|
+
const el = await browser.$("#gen");
|
|
10
|
+
await el.setProperty("strProp", 5);
|
|
11
|
+
assert.strictEqual(await el.getProperty("strProp"), "5", "String property is string");
|
|
10
12
|
});
|
|
11
13
|
|
|
12
14
|
});
|