@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
|
@@ -1,25 +1,30 @@
|
|
|
1
1
|
import getEffectiveStyle from "./getEffectiveStyle.js";
|
|
2
|
+
import { attachCustomCSSChange } from "./CustomStyle.js";
|
|
2
3
|
|
|
3
4
|
const constructableStyleMap = new Map();
|
|
4
5
|
|
|
6
|
+
attachCustomCSSChange(tag => {
|
|
7
|
+
constructableStyleMap.delete(`${tag}_normal`); // there is custom CSS only for the component itself, not for its static area part
|
|
8
|
+
});
|
|
9
|
+
|
|
5
10
|
/**
|
|
6
11
|
* Returns (and caches) a constructable style sheet for a web component class
|
|
7
12
|
* Note: Chrome
|
|
8
13
|
* @param ElementClass
|
|
9
14
|
* @returns {*}
|
|
10
15
|
*/
|
|
11
|
-
const getConstructableStyle = ElementClass => {
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
if (constructableStyleMap.has(tagName)) {
|
|
15
|
-
return constructableStyleMap.get(tagName);
|
|
16
|
-
}
|
|
16
|
+
const getConstructableStyle = (ElementClass, forStaticArea = false) => {
|
|
17
|
+
const tag = ElementClass.getMetadata().getTag();
|
|
18
|
+
const key = `${tag}_${forStaticArea ? "static" : "normal"}`;
|
|
17
19
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
+
if (!constructableStyleMap.has(key)) {
|
|
21
|
+
const styleContent = getEffectiveStyle(ElementClass, forStaticArea);
|
|
22
|
+
const style = new CSSStyleSheet();
|
|
23
|
+
style.replaceSync(styleContent);
|
|
24
|
+
constructableStyleMap.set(key, [style]);
|
|
25
|
+
}
|
|
20
26
|
|
|
21
|
-
constructableStyleMap.
|
|
22
|
-
return style;
|
|
27
|
+
return constructableStyleMap.get(key);
|
|
23
28
|
};
|
|
24
29
|
|
|
25
30
|
export default getConstructableStyle;
|
|
@@ -1,15 +1,30 @@
|
|
|
1
|
-
import { getCustomCSS } from "./CustomStyle.js";
|
|
1
|
+
import { getCustomCSS, attachCustomCSSChange } from "./CustomStyle.js";
|
|
2
|
+
import getStylesString from "./getStylesString.js";
|
|
2
3
|
|
|
3
|
-
const
|
|
4
|
+
const effectiveStyleMap = new Map();
|
|
5
|
+
|
|
6
|
+
attachCustomCSSChange(tag => {
|
|
7
|
+
effectiveStyleMap.delete(`${tag}_normal`); // there is custom CSS only for the component itself, not for its static area part
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
const getEffectiveStyle = (ElementClass, forStaticArea = false) => {
|
|
4
11
|
const tag = ElementClass.getMetadata().getTag();
|
|
5
|
-
const
|
|
6
|
-
|
|
12
|
+
const key = `${tag}_${forStaticArea ? "static" : "normal"}`;
|
|
13
|
+
|
|
14
|
+
if (!effectiveStyleMap.has(key)) {
|
|
15
|
+
let effectiveStyle;
|
|
7
16
|
|
|
8
|
-
|
|
9
|
-
|
|
17
|
+
if (forStaticArea) {
|
|
18
|
+
effectiveStyle = getStylesString(ElementClass.staticAreaStyles);
|
|
19
|
+
} else {
|
|
20
|
+
const customStyle = getCustomCSS(tag) || "";
|
|
21
|
+
const builtInStyles = getStylesString(ElementClass.styles);
|
|
22
|
+
effectiveStyle = `${builtInStyles} ${customStyle}`;
|
|
23
|
+
}
|
|
24
|
+
effectiveStyleMap.set(key, effectiveStyle);
|
|
10
25
|
}
|
|
11
|
-
return `${componentStyles} ${customStyle}`;
|
|
12
|
-
};
|
|
13
26
|
|
|
27
|
+
return effectiveStyleMap.get(key);
|
|
28
|
+
};
|
|
14
29
|
|
|
15
30
|
export default getEffectiveStyle;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const getStylesString = styles => {
|
|
2
|
+
if (Array.isArray(styles)) {
|
|
3
|
+
return flatten(styles.filter(style => !!style)).join(" ");
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
return styles;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
const flatten = arr => {
|
|
10
|
+
return arr.reduce((acc, val) => acc.concat(Array.isArray(val) ? flatten(val) : val), []);
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export default getStylesString;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import DataType from "./DataType.js";
|
|
2
|
+
|
|
3
|
+
class CSSColor extends DataType {
|
|
4
|
+
static isValid(value) {
|
|
5
|
+
return /^(#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})|rgb\(\s*((1?[0-9]?[0-9]|2([0-4][0-9]|5[0-5]))|([0-9]?[0-9](\.[0-9]+)?|100(\.0+)?)%)\s*(,\s*((1?[0-9]?[0-9]|2([0-4][0-9]|5[0-5]))|([0-9]?[0-9](\.[0-9]+)?|100(\.0+)?)%)\s*){2}\)|rgba\((\s*((1?[0-9]?[0-9]|2([0-4][0-9]|5[0-5]))|([0-9]?[0-9](\.[0-9]+)?|100(\.0+)?)%)\s*,){3}\s*(0(\.[0-9]+)?|1(\.0+)?)\s*\)|hsl\(\s*([0-2]?[0-9]?[0-9]|3([0-5][0-9]|60))\s*(,\s*(([0-9]?[0-9](\.[0-9]+)?|100(\.0+)?)%)\s*){2}\)|hsla\(\s*([0-2]?[0-9]?[0-9]|3([0-5][0-9]|60))\s*,(\s*(([0-9]?[0-9](\.[0-9]+)?|100(\.0+)?)%)\s*,){2}\s*(0(\.[0-9]+)?|1(\.0+)?)\s*\)|aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgrey|darkgreen|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|grey|green|greenyellow|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgrey|lightgreen|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silverskyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen|transparent|inherit|)$/.test(value ); // eslint-disable-line
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export default CSSColor;
|
package/src/types/DataType.js
CHANGED
|
@@ -11,7 +11,19 @@ class DataType {
|
|
|
11
11
|
static isValid(value) {
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
static
|
|
14
|
+
static attributeToProperty(attributeValue) {
|
|
15
|
+
return attributeValue;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
static propertyToAttribute(propertyValue) {
|
|
19
|
+
return `${propertyValue}`;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
static valuesAreEqual(value1, value2) {
|
|
23
|
+
return value1 === value2;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
static generateTypeAccessors(types) {
|
|
15
27
|
Object.keys(types).forEach(type => {
|
|
16
28
|
Object.defineProperty(this, type, {
|
|
17
29
|
get() {
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import DataType from "./DataType.js";
|
|
2
|
+
|
|
3
|
+
class Float extends DataType {
|
|
4
|
+
static isValid(value) {
|
|
5
|
+
// Assuming that integers are floats as well!
|
|
6
|
+
return Number(value) === value;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
static attributeToProperty(attributeValue) {
|
|
10
|
+
return parseFloat(attributeValue);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export default Float;
|
package/src/types/Integer.js
CHANGED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import DataType from "./DataType.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Enumeration for different mode behaviors of the <code>InvisibleMessage</code>.
|
|
5
|
+
* @private
|
|
6
|
+
*/
|
|
7
|
+
const InvisibleMessageModes = {
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Indicates that updates to the region should be presented at the next graceful opportunity,
|
|
11
|
+
* such as at the end of reading the current sentence, or when the user pauses typing.
|
|
12
|
+
*/
|
|
13
|
+
Polite: "Polite",
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Indicates that updates to the region have the highest priority and should be presented to the user immediately.
|
|
17
|
+
*/
|
|
18
|
+
Assertive: "Assertive",
|
|
19
|
+
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
class InvisibleMessageMode extends DataType {
|
|
23
|
+
static isValid(value) {
|
|
24
|
+
return !!InvisibleMessageModes[value];
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
InvisibleMessageMode.generateTypeAccessors(InvisibleMessageModes);
|
|
29
|
+
|
|
30
|
+
export default InvisibleMessageModes;
|
|
@@ -4,18 +4,13 @@
|
|
|
4
4
|
*/
|
|
5
5
|
const ItemNavigationBehavior = {
|
|
6
6
|
/**
|
|
7
|
-
* Static behavior:
|
|
7
|
+
* Static behavior: navigations stops at the first or last item.
|
|
8
8
|
*/
|
|
9
9
|
Static: "Static",
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
* Cycling behavior:
|
|
12
|
+
* Cycling behavior: navigating past the last item continues with the first and vice versa.
|
|
13
13
|
*/
|
|
14
14
|
Cyclic: "Cyclic",
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Paging behavior: when border of the items is reached, tou can go up/down based on the rowsize(e.g. DayPicker)
|
|
18
|
-
*/
|
|
19
|
-
Paging: "Paging",
|
|
20
15
|
};
|
|
21
16
|
export default ItemNavigationBehavior;
|
package/src/types/PopupState.js
CHANGED
package/src/types/ValueState.js
CHANGED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import executeTemplate from "./renderer/executeTemplate.js";
|
|
2
|
+
import getConstructableStyle from "./theming/getConstructableStyle.js";
|
|
3
|
+
import getEffectiveStyle from "./theming/getEffectiveStyle.js";
|
|
4
|
+
import isLegacyBrowser from "./isLegacyBrowser.js";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Updates the shadow root of a UI5Element or its static area item
|
|
8
|
+
* @param element
|
|
9
|
+
* @param forStaticArea
|
|
10
|
+
*/
|
|
11
|
+
const updateShadowRoot = (element, forStaticArea = false) => {
|
|
12
|
+
let styleToPrepend;
|
|
13
|
+
const template = forStaticArea ? "staticAreaTemplate" : "template";
|
|
14
|
+
const shadowRoot = forStaticArea ? element.staticAreaItem.shadowRoot : element.shadowRoot;
|
|
15
|
+
const renderResult = executeTemplate(element.constructor[template], element);
|
|
16
|
+
|
|
17
|
+
if (document.adoptedStyleSheets) { // Chrome
|
|
18
|
+
shadowRoot.adoptedStyleSheets = getConstructableStyle(element.constructor, forStaticArea);
|
|
19
|
+
} else if (!isLegacyBrowser()) { // FF, Safari
|
|
20
|
+
styleToPrepend = getEffectiveStyle(element.constructor, forStaticArea);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
element.constructor.render(renderResult, shadowRoot, styleToPrepend, { host: element });
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export default updateShadowRoot;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import findNodeOwner from "./findNodeOwner.js";
|
|
2
|
+
|
|
3
|
+
const getEffectiveAriaLabelText = el => {
|
|
4
|
+
if (!el.accessibleNameRef) {
|
|
5
|
+
if (el.accessibleName) {
|
|
6
|
+
return el.accessibleName;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
return getAriaLabelledByTexts(el);
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
*
|
|
17
|
+
* @param {HTMLElement} el Defines the HTMLElement, for which you need to get all related texts
|
|
18
|
+
* @param {HTMLElement} ownerDocument (Optional) Defines the HTMLElement(might document or custom element) where the you want to search for the texts.
|
|
19
|
+
* @param {String} readyIds (Optional) Defines a string of elements ids. The text of these elements will be returned. If used you should provide either el or ownerDocument
|
|
20
|
+
*/
|
|
21
|
+
const getAriaLabelledByTexts = (el, ownerDocument, readyIds = "") => {
|
|
22
|
+
const ids = (readyIds && readyIds.split(" ")) || el.accessibleNameRef.split(" ");
|
|
23
|
+
const owner = ownerDocument || findNodeOwner(el);
|
|
24
|
+
let result = "";
|
|
25
|
+
|
|
26
|
+
ids.forEach((elementId, index) => {
|
|
27
|
+
const element = owner.querySelector(`[id='${elementId}']`);
|
|
28
|
+
result += `${element ? element.textContent : ""}`;
|
|
29
|
+
|
|
30
|
+
if (index < ids.length - 1) {
|
|
31
|
+
result += " ";
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export {
|
|
39
|
+
getEffectiveAriaLabelText,
|
|
40
|
+
getAriaLabelledByTexts,
|
|
41
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns the caret (cursor) position of the specified text field (field).
|
|
3
|
+
* Return value range is 0-field.value.length.
|
|
4
|
+
*/
|
|
5
|
+
const getCaretPosition = field => {
|
|
6
|
+
// Initialize
|
|
7
|
+
let caretPos = 0;
|
|
8
|
+
|
|
9
|
+
// IE Support
|
|
10
|
+
if (document.selection) {
|
|
11
|
+
// Set focus on the element
|
|
12
|
+
field.focus();
|
|
13
|
+
|
|
14
|
+
// To get cursor position, get empty selection range
|
|
15
|
+
const selection = document.selection.createRange();
|
|
16
|
+
|
|
17
|
+
// Move selection start to 0 position
|
|
18
|
+
selection.moveStart("character", -field.value.length);
|
|
19
|
+
|
|
20
|
+
// The caret position is selection length
|
|
21
|
+
caretPos = selection.text.length;
|
|
22
|
+
} else if (field.selectionStart || field.selectionStart === "0") { // Firefox support
|
|
23
|
+
caretPos = field.selectionDirection === "backward" ? field.selectionStart : field.selectionEnd;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return caretPos;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const setCaretPosition = (field, caretPos) => {
|
|
30
|
+
if (field.createTextRange) {
|
|
31
|
+
const range = field.createTextRange();
|
|
32
|
+
range.move("character", caretPos);
|
|
33
|
+
range.select();
|
|
34
|
+
} else if (field.selectionStart) {
|
|
35
|
+
field.focus();
|
|
36
|
+
field.setSelectionRange(caretPos, caretPos);
|
|
37
|
+
} else {
|
|
38
|
+
field.focus();
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export {
|
|
43
|
+
getCaretPosition,
|
|
44
|
+
setCaretPosition,
|
|
45
|
+
};
|