@ui5/webcomponents-base 0.0.0-0742854fd → 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 +109 -0
- package/README.md +26 -1
- package/bundle.esm.js +13 -10
- package/dist/AssetRegistry.js +8 -7
- package/dist/Boot.js +43 -0
- package/dist/DOMObserver.js +65 -0
- package/dist/Device.js +58 -779
- package/dist/EventProvider.js +30 -26
- package/dist/FontFace.js +52 -7
- package/dist/InitialConfiguration.js +26 -21
- package/dist/Keys.js +51 -0
- package/dist/MediaRange.js +109 -0
- package/{src/util/parseProperties.js → dist/PropertiesFileFormat.js} +6 -0
- package/dist/Render.js +173 -0
- package/dist/RenderScheduler.js +16 -138
- package/dist/StaticArea.js +1 -29
- package/dist/StaticAreaItem.js +64 -65
- package/dist/Theming.js +2 -1
- package/dist/UI5Element.js +305 -374
- package/dist/UI5ElementMetadata.js +115 -16
- package/dist/asset-registries/Icons.js +110 -14
- package/dist/asset-registries/Illustrations.js +30 -0
- package/dist/asset-registries/LocaleData.js +90 -66
- package/dist/asset-registries/Themes.js +23 -33
- package/dist/asset-registries/i18n.js +61 -50
- package/dist/config/Language.js +18 -20
- package/dist/delegate/ItemNavigation.js +233 -201
- package/dist/delegate/ResizeHandler.js +78 -37
- package/dist/delegate/ScrollEnablement.js +49 -20
- package/dist/features/OpenUI5Support.js +41 -6
- package/dist/generated/AssetParameters.js +1 -1
- package/dist/i18nBundle.js +6 -2
- 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/getLocale.js +12 -2
- package/dist/locale/languageChange.js +1 -1
- package/dist/renderer/LitRenderer.js +19 -18
- 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 +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 +1 -6
- 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 +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 +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 +2 -2
- package/dist/theming/ThemeLoaded.js +22 -0
- package/dist/theming/applyTheme.js +2 -5
- package/dist/theming/getConstructableStyle.js +7 -6
- package/dist/theming/getEffectiveStyle.js +15 -8
- package/dist/theming/getStylesString.js +1 -1
- 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 +26 -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 +17 -6
- 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/isElementInView.js +15 -0
- package/dist/util/isNodeTabbable.js +4 -4
- package/hash.txt +1 -0
- package/index.js +1 -1
- package/package-scripts.js +33 -18
- package/package.json +20 -12
- package/src/AssetRegistry.js +8 -7
- package/src/Boot.js +43 -0
- package/src/DOMObserver.js +65 -0
- package/src/Device.js +58 -779
- package/src/EventProvider.js +30 -26
- package/src/FontFace.js +52 -7
- package/src/InitialConfiguration.js +26 -21
- package/src/Keys.js +51 -0
- package/src/MediaRange.js +109 -0
- package/{dist/util/parseProperties.js → src/PropertiesFileFormat.js} +6 -0
- package/src/Render.js +173 -0
- package/src/RenderScheduler.js +16 -138
- package/src/StaticArea.js +1 -29
- package/src/StaticAreaItem.js +64 -65
- package/src/Theming.js +2 -1
- package/src/UI5Element.js +305 -374
- package/src/UI5ElementMetadata.js +115 -16
- package/src/asset-registries/Icons.js +110 -14
- package/src/asset-registries/Illustrations.js +30 -0
- package/src/asset-registries/LocaleData.js +90 -66
- package/src/asset-registries/Themes.js +23 -33
- package/src/asset-registries/i18n.js +61 -50
- package/src/config/Language.js +18 -20
- package/src/delegate/ItemNavigation.js +233 -201
- package/src/delegate/ResizeHandler.js +78 -37
- package/src/delegate/ScrollEnablement.js +49 -20
- package/src/features/OpenUI5Support.js +41 -6
- package/src/i18nBundle.js +6 -2
- 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/getLocale.js +12 -2
- package/src/locale/languageChange.js +1 -1
- package/src/renderer/LitRenderer.js +19 -18
- package/src/theming/CustomStyle.js +2 -2
- package/src/theming/ThemeLoaded.js +22 -0
- package/src/theming/applyTheme.js +2 -5
- package/src/theming/getConstructableStyle.js +7 -6
- package/src/theming/getEffectiveStyle.js +15 -8
- package/src/theming/getStylesString.js +1 -1
- 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 +26 -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 +17 -6
- 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/isElementInView.js +15 -0
- package/src/util/isNodeTabbable.js +4 -4
- package/used-modules.txt +7 -0
- package/bundle.es5.js +0 -28
- package/dist/SVGIconRegistry.js +0 -62
- 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 -44
- package/dist/features/PropertiesFormatSupport.js +0 -8
- 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/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 -48
- package/dist/theming/adaptCSSForIE.js +0 -95
- package/dist/theming/createComponentStyleTag.js +0 -54
- 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/util/getEffectiveAssetPath.js +0 -12
- 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 -62
- 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 -44
- package/src/features/PropertiesFormatSupport.js +0 -8
- 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/renderer/scopeHTML.js +0 -32
- package/src/theming/CSSVarsPonyfill.js +0 -48
- package/src/theming/adaptCSSForIE.js +0 -95
- package/src/theming/createComponentStyleTag.js +0 -54
- 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/src/util/getEffectiveAssetPath.js +0 -12
- package/src/util/isSlot.js +0 -3
|
@@ -1,23 +1,31 @@
|
|
|
1
|
-
import { getFeature } from "../FeaturesRegistry.js";
|
|
2
1
|
import getLocale from "../locale/getLocale.js";
|
|
3
2
|
import { attachLanguageChange } from "../locale/languageChange.js";
|
|
4
|
-
import { fetchTextOnce } from "../util/FetchHelper.js";
|
|
5
3
|
import normalizeLocale from "../locale/normalizeLocale.js";
|
|
6
4
|
import nextFallbackLocale from "../locale/nextFallbackLocale.js";
|
|
7
5
|
import { DEFAULT_LANGUAGE } from "../generated/AssetParameters.js";
|
|
8
|
-
import
|
|
9
|
-
|
|
6
|
+
import { getFetchDefaultLanguage } from "../config/Language.js";
|
|
7
|
+
|
|
8
|
+
// contains package names for which the warning has been shown
|
|
9
|
+
const warningShown = new Set();
|
|
10
|
+
const reportedErrors = new Set();
|
|
10
11
|
|
|
11
12
|
const bundleData = new Map();
|
|
12
|
-
const
|
|
13
|
+
const bundlePromises = new Map();
|
|
14
|
+
const loaders = new Map();
|
|
13
15
|
|
|
14
16
|
/**
|
|
15
|
-
*
|
|
16
|
-
* @param {string} packageName
|
|
17
|
-
* @param {
|
|
18
|
-
* @
|
|
17
|
+
*
|
|
18
|
+
* @param {string} packageName for which package this loader can fetch data
|
|
19
|
+
* @param {function} loader async function that will be passed a localeId and should return a JSON object
|
|
20
|
+
* @param {Array} localeIds Array of locale IDs that this loader can handle
|
|
19
21
|
*/
|
|
20
|
-
const
|
|
22
|
+
const registerI18nLoader = (packageName, localeId, loader) => {
|
|
23
|
+
// register loader by key
|
|
24
|
+
const bundleKey = `${packageName}/${localeId}`;
|
|
25
|
+
loaders.set(bundleKey, loader);
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const _setI18nBundleData = (packageName, data) => {
|
|
21
29
|
bundleData.set(packageName, data);
|
|
22
30
|
};
|
|
23
31
|
|
|
@@ -26,18 +34,36 @@ const getI18nBundleData = packageName => {
|
|
|
26
34
|
};
|
|
27
35
|
|
|
28
36
|
/**
|
|
29
|
-
* Registers a map of locale/url information, to be used by the <code>fetchI18nBundle</code> method.
|
|
30
|
-
* Note: In order to be able to register ".properties" files, you must import the following module:
|
|
31
|
-
* import "@ui5/webcomponents-base/dist/features/PropertiesFormatSupport.js";
|
|
32
|
-
*
|
|
33
|
-
* @param {string} packageName package ID that the i18n bundle will be related to
|
|
34
|
-
* @param {Object} bundle an object with string locales as keys and the URLs (in .json or .properties format - see the note above) where the corresponding locale can be fetched from, f.e {"en": "path/en.json", ...}
|
|
35
|
-
*
|
|
36
37
|
* @public
|
|
38
|
+
* @deprecated
|
|
37
39
|
*/
|
|
38
|
-
const registerI18nBundle = (
|
|
39
|
-
|
|
40
|
-
|
|
40
|
+
const registerI18nBundle = (_packageName, _bundle) => {
|
|
41
|
+
throw new Error("This method has been removed. Use `registerI18nLoader` instead.");
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
const _hasLoader = (packageName, localeId) => {
|
|
45
|
+
const bundleKey = `${packageName}/${localeId}`;
|
|
46
|
+
return loaders.has(bundleKey);
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
// load bundle over the network once
|
|
50
|
+
const _loadMessageBundleOnce = (packageName, localeId) => {
|
|
51
|
+
const bundleKey = `${packageName}/${localeId}`;
|
|
52
|
+
const loadMessageBundle = loaders.get(bundleKey);
|
|
53
|
+
|
|
54
|
+
if (!bundlePromises.get(bundleKey)) {
|
|
55
|
+
bundlePromises.set(bundleKey, loadMessageBundle(localeId));
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return bundlePromises.get(bundleKey);
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const _showAssetsWarningOnce = packageName => {
|
|
62
|
+
if (!warningShown.has(packageName)) {
|
|
63
|
+
console.warn(`[${packageName}]: Message bundle assets are not configured. Falling back to English texts.`, /* eslint-disable-line */
|
|
64
|
+
` Add \`import "${packageName}/dist/Assets.js"\` in your bundle and make sure your build tool supports dynamic imports and JSON imports. See section "Assets" in the documentation for more information.`); /* eslint-disable-line */
|
|
65
|
+
warningShown.add(packageName);
|
|
66
|
+
}
|
|
41
67
|
};
|
|
42
68
|
|
|
43
69
|
/**
|
|
@@ -50,50 +76,35 @@ const registerI18nBundle = (packageName, bundle) => {
|
|
|
50
76
|
* @public
|
|
51
77
|
*/
|
|
52
78
|
const fetchI18nBundle = async packageName => {
|
|
53
|
-
const bundlesForPackage = bundleURLs.get(packageName);
|
|
54
|
-
|
|
55
|
-
if (!bundlesForPackage) {
|
|
56
|
-
console.warn(`Message bundle assets are not configured. Falling back to English texts.`, /* eslint-disable-line */
|
|
57
|
-
` You need to import ${packageName}/dist/Assets.js with a build tool that supports JSON imports.`); /* eslint-disable-line */
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
79
|
const language = getLocale().getLanguage();
|
|
62
80
|
const region = getLocale().getRegion();
|
|
63
|
-
const useDefaultLanguage = getUseDefaultLanguage();
|
|
64
81
|
let localeId = normalizeLocale(language + (region ? `-${region}` : ``));
|
|
65
82
|
|
|
66
|
-
while (localeId !== DEFAULT_LANGUAGE && !
|
|
83
|
+
while (localeId !== DEFAULT_LANGUAGE && !_hasLoader(packageName, localeId)) {
|
|
67
84
|
localeId = nextFallbackLocale(localeId);
|
|
68
85
|
}
|
|
69
86
|
|
|
70
|
-
|
|
71
|
-
|
|
87
|
+
// use default language unless configured to always fetch it from the network
|
|
88
|
+
const fetchDefaultLanguage = getFetchDefaultLanguage();
|
|
89
|
+
if (localeId === DEFAULT_LANGUAGE && !fetchDefaultLanguage) {
|
|
90
|
+
_setI18nBundleData(packageName, null); // reset for the default language (if data was set for a previous language)
|
|
72
91
|
return;
|
|
73
92
|
}
|
|
74
93
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
if (typeof bundleURL === "object") { // inlined from build
|
|
78
|
-
setI18nBundleData(packageName, bundleURL);
|
|
94
|
+
if (!_hasLoader(packageName, localeId)) {
|
|
95
|
+
_showAssetsWarningOnce(packageName);
|
|
79
96
|
return;
|
|
80
97
|
}
|
|
81
98
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
throw new Error(`In order to support .properties files, please: import "@ui5/webcomponents-base/dist/features/PropertiesFormatSupport.js";`);
|
|
99
|
+
try {
|
|
100
|
+
const data = await _loadMessageBundleOnce(packageName, localeId);
|
|
101
|
+
_setI18nBundleData(packageName, data);
|
|
102
|
+
} catch (e) {
|
|
103
|
+
if (!reportedErrors.has(e.message)) {
|
|
104
|
+
reportedErrors.add(e.message);
|
|
105
|
+
console.error(e.message); /* eslint-disable-line */
|
|
90
106
|
}
|
|
91
|
-
parser = PropertiesFormatSupport.parser;
|
|
92
107
|
}
|
|
93
|
-
|
|
94
|
-
const data = parser(content);
|
|
95
|
-
|
|
96
|
-
setI18nBundleData(packageName, data);
|
|
97
108
|
};
|
|
98
109
|
|
|
99
110
|
// When the language changes dynamically (the user calls setLanguage), re-fetch all previously fetched bundles
|
|
@@ -103,8 +114,8 @@ attachLanguageChange(() => {
|
|
|
103
114
|
});
|
|
104
115
|
|
|
105
116
|
export {
|
|
117
|
+
registerI18nLoader,
|
|
106
118
|
fetchI18nBundle,
|
|
107
119
|
registerI18nBundle,
|
|
108
|
-
setI18nBundleData,
|
|
109
120
|
getI18nBundleData,
|
|
110
121
|
};
|
package/dist/config/Language.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getLanguage as getConfiguredLanguage,
|
|
3
|
-
|
|
3
|
+
getFetchDefaultLanguage as getConfiguredFetchDefaultLanguage,
|
|
4
4
|
} from "../InitialConfiguration.js";
|
|
5
5
|
import { fireLanguageChange } from "../locale/languageChange.js";
|
|
6
|
-
import
|
|
6
|
+
import { reRenderAllUI5Elements } from "../Render.js";
|
|
7
7
|
|
|
8
8
|
let language;
|
|
9
|
-
let
|
|
9
|
+
let fetchDefaultLanguage;
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* Returns the currently configured language, or the browser language as a fallback
|
|
@@ -33,38 +33,36 @@ const setLanguage = async newLanguage => {
|
|
|
33
33
|
|
|
34
34
|
language = newLanguage;
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
await
|
|
38
|
-
RenderScheduler.reRenderAllUI5Elements({ languageAware: true });
|
|
39
|
-
return RenderScheduler.whenFinished();
|
|
36
|
+
await fireLanguageChange(newLanguage);
|
|
37
|
+
await reRenderAllUI5Elements({ languageAware: true });
|
|
40
38
|
};
|
|
41
39
|
|
|
42
40
|
/**
|
|
43
|
-
* Defines if the default language, that is inlined, should be
|
|
44
|
-
* instead of
|
|
45
|
-
* <b>Note:</b> By default the language will be fetched.
|
|
41
|
+
* Defines if the default language, that is inlined, should be
|
|
42
|
+
* fetched over the network instead of using the inlined one.
|
|
43
|
+
* <b>Note:</b> By default the language will not be fetched.
|
|
46
44
|
*
|
|
47
|
-
* @param {Boolean}
|
|
45
|
+
* @param {Boolean} fetchDefaultLanguage
|
|
48
46
|
*/
|
|
49
|
-
const
|
|
50
|
-
|
|
47
|
+
const setFetchDefaultLanguage = fetchDefaultLang => {
|
|
48
|
+
fetchDefaultLanguage = fetchDefaultLang;
|
|
51
49
|
};
|
|
52
50
|
|
|
53
51
|
/**
|
|
54
|
-
* Returns if the default language, that is inlined, should be
|
|
52
|
+
* Returns if the default language, that is inlined, should be fetched over the network.
|
|
55
53
|
* @returns {Boolean}
|
|
56
54
|
*/
|
|
57
|
-
const
|
|
58
|
-
if (
|
|
59
|
-
|
|
55
|
+
const getFetchDefaultLanguage = () => {
|
|
56
|
+
if (fetchDefaultLanguage === undefined) {
|
|
57
|
+
setFetchDefaultLanguage(getConfiguredFetchDefaultLanguage());
|
|
60
58
|
}
|
|
61
59
|
|
|
62
|
-
return
|
|
60
|
+
return fetchDefaultLanguage;
|
|
63
61
|
};
|
|
64
62
|
|
|
65
63
|
export {
|
|
66
64
|
getLanguage,
|
|
67
65
|
setLanguage,
|
|
68
|
-
|
|
69
|
-
|
|
66
|
+
setFetchDefaultLanguage,
|
|
67
|
+
getFetchDefaultLanguage,
|
|
70
68
|
};
|