@ui5/webcomponents-base 1.9.3 → 1.10.1
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 +1 -0
- package/CHANGELOG.md +37 -0
- package/LICENSE.txt +201 -0
- package/bundle.esm.js +4 -1
- package/dist/AssetRegistry.d.ts +5 -0
- package/dist/AssetRegistry.js +2 -7
- package/dist/AssetRegistry.js.map +1 -0
- package/dist/Boot.d.ts +8 -0
- package/dist/Boot.js +29 -48
- package/dist/Boot.js.map +1 -0
- package/dist/CSP.d.ts +30 -0
- package/dist/CSP.js +16 -24
- package/dist/CSP.js.map +1 -0
- package/dist/CustomElementsRegistry.d.ts +5 -0
- package/dist/CustomElementsRegistry.js +66 -83
- package/dist/CustomElementsRegistry.js.map +1 -0
- package/dist/CustomElementsScope.d.ts +7 -0
- package/dist/CustomElementsScope.js +10 -29
- package/dist/CustomElementsScope.js.map +1 -0
- package/dist/CustomElementsScopeUtils.d.ts +55 -0
- package/dist/CustomElementsScopeUtils.js +34 -52
- package/dist/CustomElementsScopeUtils.js.map +1 -0
- package/dist/DOMObserver.d.ts +11 -0
- package/dist/DOMObserver.js +12 -54
- package/dist/DOMObserver.js.map +1 -0
- package/dist/Device.d.ts +12 -0
- package/dist/Device.js +53 -83
- package/dist/Device.js.map +1 -0
- package/dist/EventProvider.d.ts +25 -0
- package/dist/EventProvider.js +67 -82
- package/dist/EventProvider.js.map +1 -0
- package/dist/FeaturesRegistry.d.ts +3 -0
- package/dist/FeaturesRegistry.js +5 -10
- package/dist/FeaturesRegistry.js.map +1 -0
- package/dist/FontFace.d.ts +2 -0
- package/dist/FontFace.js +14 -19
- package/dist/FontFace.js.map +1 -0
- package/dist/InitialConfiguration.d.ts +22 -0
- package/dist/InitialConfiguration.js +107 -146
- package/dist/InitialConfiguration.js.map +1 -0
- package/dist/Keys.d.ts +57 -0
- package/dist/Keys.js +174 -291
- package/dist/Keys.js.map +1 -0
- package/dist/ManagedStyles.d.ts +8 -0
- package/dist/ManagedStyles.js +62 -68
- package/dist/ManagedStyles.js.map +1 -0
- package/dist/MarkedEvents.d.ts +9 -0
- package/dist/MarkedEvents.js +15 -0
- package/dist/MarkedEvents.js.map +1 -0
- package/dist/MediaRange.d.ts +37 -0
- package/dist/MediaRange.js +54 -65
- package/dist/MediaRange.js.map +1 -0
- package/dist/PropertiesFileFormat.d.ts +8 -0
- package/dist/PropertiesFileFormat.js +72 -82
- package/dist/PropertiesFileFormat.js.map +1 -0
- package/dist/Render.d.ts +47 -0
- package/dist/Render.js +81 -113
- package/dist/Render.js.map +1 -0
- package/dist/RenderQueue.d.ts +19 -0
- package/dist/RenderQueue.js +52 -62
- package/dist/RenderQueue.js.map +1 -0
- package/dist/Runtimes.d.ts +27 -0
- package/dist/Runtimes.js +49 -70
- package/dist/Runtimes.js.map +1 -0
- package/dist/StaticArea.d.ts +0 -0
- package/dist/StaticArea.js +4 -1
- package/dist/StaticArea.js.map +1 -0
- package/dist/StaticAreaItem.d.ts +36 -0
- package/dist/StaticAreaItem.js +84 -94
- package/dist/StaticAreaItem.js.map +1 -0
- package/dist/SystemCSSVars.d.ts +2 -0
- package/dist/SystemCSSVars.js +4 -5
- package/dist/SystemCSSVars.js.map +1 -0
- package/dist/Theming.d.ts +3 -0
- package/dist/Theming.js +1 -1
- package/dist/Theming.js.map +1 -0
- package/dist/UI5Element.d.ts +373 -0
- package/dist/UI5Element.js +928 -1006
- package/dist/UI5Element.js.map +1 -0
- package/dist/UI5ElementMetadata.d.ts +150 -0
- package/dist/UI5ElementMetadata.js +277 -313
- package/dist/UI5ElementMetadata.js.map +1 -0
- package/dist/animations/AnimationQueue.d.ts +8 -0
- package/dist/animations/AnimationQueue.js +31 -38
- package/dist/animations/AnimationQueue.js.map +1 -0
- package/dist/animations/animate.d.ts +14 -0
- package/dist/animations/animate.js +46 -51
- package/dist/animations/animate.js.map +1 -0
- package/dist/animations/scroll.d.ts +5 -0
- package/dist/animations/scroll.js +18 -27
- package/dist/animations/scroll.js.map +1 -0
- package/dist/animations/slideDown.d.ts +5 -0
- package/dist/animations/slideDown.js +53 -78
- package/dist/animations/slideDown.js.map +1 -0
- package/dist/animations/slideUp.d.ts +5 -0
- package/dist/animations/slideUp.js +49 -70
- package/dist/animations/slideUp.js.map +1 -0
- package/dist/api.json +1 -1
- package/dist/asset-registries/Icons.d.ts +30 -0
- package/dist/asset-registries/Icons.js +85 -118
- package/dist/asset-registries/Icons.js.map +1 -0
- package/dist/asset-registries/Illustrations.d.ts +17 -0
- package/dist/asset-registries/Illustrations.js +37 -50
- package/dist/asset-registries/Illustrations.js.map +1 -0
- package/dist/asset-registries/LocaleData.d.ts +7 -0
- package/dist/asset-registries/LocaleData.js +104 -126
- package/dist/asset-registries/LocaleData.js.map +1 -0
- package/dist/asset-registries/Themes.d.ts +10 -0
- package/dist/asset-registries/Themes.js +36 -68
- package/dist/asset-registries/Themes.js.map +1 -0
- package/dist/asset-registries/i18n.d.ts +23 -0
- package/dist/asset-registries/i18n.js +52 -80
- package/dist/asset-registries/i18n.js.map +1 -0
- package/dist/assets/bundle.esm.405f7937.js +56 -0
- package/dist/assets/test/pages/i18n.html.0fd577d8.js +1 -0
- package/dist/assets/test/pages/i18n_texts.html.699a5556.js +1 -0
- package/dist/assets-meta/IconCollectionsAlias.d.ts +17 -0
- package/dist/assets-meta/IconCollectionsAlias.js +4 -4
- package/dist/assets-meta/IconCollectionsAlias.js.map +1 -0
- package/dist/config/AnimationMode.d.ts +14 -0
- package/dist/config/AnimationMode.js +21 -18
- package/dist/config/AnimationMode.js.map +1 -0
- package/dist/config/CalendarType.d.ts +8 -0
- package/dist/config/CalendarType.js +13 -12
- package/dist/config/CalendarType.js.map +1 -0
- package/dist/config/FormatSettings.d.ts +11 -0
- package/dist/config/FormatSettings.js +10 -8
- package/dist/config/FormatSettings.js.map +1 -0
- package/dist/config/Icons.d.ts +30 -0
- package/dist/config/Icons.js +28 -32
- package/dist/config/Icons.js.map +1 -0
- package/dist/config/Language.d.ts +31 -0
- package/dist/config/Language.js +31 -43
- package/dist/config/Language.js.map +1 -0
- package/dist/config/NoConflict.d.ts +20 -0
- package/dist/config/NoConflict.js +40 -41
- package/dist/config/NoConflict.js.map +1 -0
- package/dist/config/RTL.d.ts +7 -0
- package/dist/config/RTL.js +23 -20
- package/dist/config/RTL.js.map +1 -0
- package/dist/config/Theme.d.ts +28 -0
- package/dist/config/Theme.js +34 -36
- package/dist/config/Theme.js.map +1 -0
- package/dist/config/ThemeRoots.d.ts +4 -0
- package/dist/config/ThemeRoots.js +18 -29
- package/dist/config/ThemeRoots.js.map +1 -0
- package/dist/decorators/customElement.d.ts +8 -0
- package/dist/decorators/customElement.js +16 -0
- package/dist/decorators/customElement.js.map +1 -0
- package/dist/decorators/event.d.ts +10 -0
- package/dist/decorators/event.js +24 -0
- package/dist/decorators/event.js.map +1 -0
- package/dist/decorators/fastNavigation.d.ts +7 -0
- package/dist/decorators/fastNavigation.js +13 -0
- package/dist/decorators/fastNavigation.js.map +1 -0
- package/dist/decorators/languageAware.d.ts +7 -0
- package/dist/decorators/languageAware.js +13 -0
- package/dist/decorators/languageAware.js.map +1 -0
- package/dist/decorators/property.d.ts +9 -0
- package/dist/decorators/property.js +24 -0
- package/dist/decorators/property.js.map +1 -0
- package/dist/decorators/slot.d.ts +9 -0
- package/dist/decorators/slot.js +37 -0
- package/dist/decorators/slot.js.map +1 -0
- package/dist/decorators/themeAware.d.ts +7 -0
- package/dist/decorators/themeAware.js +13 -0
- package/dist/decorators/themeAware.js.map +1 -0
- package/dist/delegate/ItemNavigation.d.ts +113 -0
- package/dist/delegate/ItemNavigation.js +277 -317
- package/dist/delegate/ItemNavigation.js.map +1 -0
- package/dist/delegate/ResizeHandler.d.ts +24 -0
- package/dist/delegate/ResizeHandler.js +68 -91
- package/dist/delegate/ResizeHandler.js.map +1 -0
- package/dist/delegate/ScrollEnablement.d.ts +49 -0
- package/dist/delegate/ScrollEnablement.js +157 -180
- package/dist/delegate/ScrollEnablement.js.map +1 -0
- package/dist/features/F6Navigation.d.ts +16 -0
- package/dist/features/F6Navigation.js +105 -109
- package/dist/features/F6Navigation.js.map +1 -0
- package/dist/features/OpenUI5Element.d.ts +9 -0
- package/dist/features/OpenUI5Element.js +5 -0
- package/dist/features/OpenUI5Element.js.map +1 -0
- package/dist/features/OpenUI5Enablement.d.ts +11 -0
- package/dist/features/OpenUI5Enablement.js +89 -112
- package/dist/features/OpenUI5Enablement.js.map +1 -0
- package/dist/features/OpenUI5Support.d.ts +23 -0
- package/dist/features/OpenUI5Support.js +91 -120
- package/dist/features/OpenUI5Support.js.map +1 -0
- package/dist/generated/VersionInfo.js +4 -4
- package/dist/getSharedResource.d.ts +11 -0
- package/dist/getSharedResource.js +12 -16
- package/dist/getSharedResource.js.map +1 -0
- package/dist/global.d.ts +44 -0
- package/dist/i18nBundle.d.ts +43 -0
- package/dist/i18nBundle.js +56 -64
- package/dist/i18nBundle.js.map +1 -0
- package/dist/locale/Locale.d.ts +22 -0
- package/dist/locale/Locale.js +75 -87
- package/dist/locale/Locale.js.map +1 -0
- package/dist/locale/RTLAwareRegistry.d.ts +4 -0
- package/dist/locale/RTLAwareRegistry.js +6 -11
- package/dist/locale/RTLAwareRegistry.js.map +1 -0
- package/dist/locale/applyDirection.d.ts +10 -0
- package/dist/locale/applyDirection.js +7 -7
- package/dist/locale/applyDirection.js.map +1 -0
- package/dist/locale/directionChange.d.ts +15 -0
- package/dist/locale/directionChange.js +7 -15
- package/dist/locale/directionChange.js.map +1 -0
- package/dist/locale/getEffectiveDir.d.ts +2 -0
- package/dist/locale/getEffectiveDir.js +20 -24
- package/dist/locale/getEffectiveDir.js.map +1 -0
- package/dist/locale/getLocale.d.ts +7 -0
- package/dist/locale/getLocale.js +26 -29
- package/dist/locale/getLocale.js.map +1 -0
- package/dist/locale/languageChange.d.ts +5 -0
- package/dist/locale/languageChange.js +8 -16
- package/dist/locale/languageChange.js.map +1 -0
- package/dist/locale/nextFallbackLocale.d.ts +8 -0
- package/dist/locale/nextFallbackLocale.js +15 -19
- package/dist/locale/nextFallbackLocale.js.map +1 -0
- package/dist/locale/normalizeLocale.d.ts +7 -0
- package/dist/locale/normalizeLocale.js +34 -41
- package/dist/locale/normalizeLocale.js.map +1 -0
- package/dist/renderer/LitRenderer.d.ts +14 -0
- package/dist/renderer/LitRenderer.js +28 -39
- package/dist/renderer/LitRenderer.js.map +1 -0
- package/dist/renderer/executeTemplate.d.ts +13 -0
- package/dist/renderer/executeTemplate.js +12 -16
- package/dist/renderer/executeTemplate.js.map +1 -0
- package/dist/sap/base/Log.js +28 -29
- package/dist/sap/base/assert.js +5 -6
- package/dist/sap/base/security/URLListValidator.js +13 -2
- package/dist/test/pages/AllTestElements.html +42 -0
- package/dist/test/pages/Configuration.html +18 -0
- package/dist/test/pages/ConfigurationScript.html +34 -0
- package/dist/test/pages/WithComplexTemplate.html +22 -0
- package/dist/test/pages/i18n.html +20 -0
- package/dist/test/pages/i18n_texts.html +88 -0
- package/dist/theming/CustomStyle.d.ts +6 -0
- package/dist/theming/CustomStyle.js +29 -43
- package/dist/theming/CustomStyle.js.map +1 -0
- package/dist/theming/ThemeLoaded.d.ts +5 -0
- package/dist/theming/ThemeLoaded.js +8 -16
- package/dist/theming/ThemeLoaded.js.map +1 -0
- package/dist/theming/applyTheme.d.ts +2 -0
- package/dist/theming/applyTheme.js +59 -68
- package/dist/theming/applyTheme.js.map +1 -0
- package/dist/theming/getConstructableStyle.d.ts +9 -0
- package/dist/theming/getConstructableStyle.js +12 -17
- package/dist/theming/getConstructableStyle.js.map +1 -0
- package/dist/theming/getEffectiveLinksHrefs.d.ts +3 -0
- package/dist/theming/getEffectiveLinksHrefs.js +12 -22
- package/dist/theming/getEffectiveLinksHrefs.js.map +1 -0
- package/dist/theming/getEffectiveStyle.d.ts +3 -0
- package/dist/theming/getEffectiveStyle.js +24 -31
- package/dist/theming/getEffectiveStyle.js.map +1 -0
- package/dist/theming/getStylesString.d.ts +3 -0
- package/dist/theming/getStylesString.js +9 -13
- package/dist/theming/getStylesString.js.map +1 -0
- package/dist/theming/getThemeDesignerTheme.d.ts +7 -0
- package/dist/theming/getThemeDesignerTheme.js +72 -79
- package/dist/theming/getThemeDesignerTheme.js.map +1 -0
- package/dist/theming/preloadLinks.d.ts +3 -0
- package/dist/theming/preloadLinks.js +13 -17
- package/dist/theming/preloadLinks.js.map +1 -0
- package/dist/thirdparty/_merge.d.ts +2 -0
- package/dist/thirdparty/_merge.js +7 -4
- package/dist/thirdparty/_merge.js.map +1 -0
- package/dist/thirdparty/isPlainObject.d.ts +2 -0
- package/dist/thirdparty/isPlainObject.js +11 -10
- package/dist/thirdparty/isPlainObject.js.map +1 -0
- package/dist/thirdparty/merge.d.ts +2 -0
- package/dist/thirdparty/merge.js +4 -8
- package/dist/thirdparty/merge.js.map +1 -0
- package/dist/types/AnimationMode.d.ts +32 -0
- package/dist/types/AnimationMode.js +33 -6
- package/dist/types/AnimationMode.js.map +1 -0
- package/dist/types/CSSColor.d.ts +16 -0
- package/dist/types/CSSColor.js +6 -7
- package/dist/types/CSSColor.js.map +1 -0
- package/dist/types/CalendarType.d.ts +37 -0
- package/dist/types/CalendarType.js +33 -53
- package/dist/types/CalendarType.js.map +1 -0
- package/dist/types/DOMReference.d.ts +17 -0
- package/dist/types/DOMReference.js +12 -15
- package/dist/types/DOMReference.js.map +1 -0
- package/dist/types/DataType.d.ts +25 -0
- package/dist/types/DataType.js +33 -32
- package/dist/types/DataType.js.map +1 -0
- package/dist/types/Float.d.ts +18 -0
- package/dist/types/Float.js +9 -12
- package/dist/types/Float.js.map +1 -0
- package/dist/types/Integer.d.ts +18 -0
- package/dist/types/Integer.js +9 -11
- package/dist/types/Integer.js.map +1 -0
- package/dist/types/InvisibleMessageMode.d.ts +25 -0
- package/dist/types/InvisibleMessageMode.js +19 -38
- package/dist/types/InvisibleMessageMode.js.map +1 -0
- package/dist/types/ItemNavigationBehavior.d.ts +24 -0
- package/dist/types/ItemNavigationBehavior.js +22 -12
- package/dist/types/ItemNavigationBehavior.js.map +1 -0
- package/dist/types/NavigationMode.d.ts +32 -0
- package/dist/types/NavigationMode.js +33 -6
- package/dist/types/NavigationMode.js.map +1 -0
- package/dist/types/ValueState.d.ts +42 -0
- package/dist/types/ValueState.js +38 -58
- package/dist/types/ValueState.js.map +1 -0
- package/dist/types.d.ts +18 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/updateShadowRoot.d.ts +8 -0
- package/dist/updateShadowRoot.js +21 -16
- package/dist/updateShadowRoot.js.map +1 -0
- package/dist/util/AriaLabelHelper.d.ts +6 -0
- package/dist/util/AriaLabelHelper.js +34 -46
- package/dist/util/AriaLabelHelper.js.map +1 -0
- package/dist/util/Caret.d.ts +7 -0
- package/dist/util/Caret.js +16 -25
- package/dist/util/Caret.js.map +1 -0
- package/dist/util/ColorConversion.d.ts +30 -0
- package/dist/util/ColorConversion.js +311 -372
- package/dist/util/ColorConversion.js.map +1 -0
- package/dist/util/FetchHelper.d.ts +3 -0
- package/dist/util/FetchHelper.js +19 -25
- package/dist/util/FetchHelper.js.map +1 -0
- package/dist/util/FocusableElements.d.ts +4 -0
- package/dist/util/FocusableElements.js +54 -71
- package/dist/util/FocusableElements.js.map +1 -0
- package/dist/util/HTMLSanitizer.d.ts +3 -0
- package/dist/util/HTMLSanitizer.js +4 -5
- package/dist/util/HTMLSanitizer.js.map +1 -0
- package/dist/util/InvisibleMessage.d.ts +10 -0
- package/dist/util/InvisibleMessage.js +40 -53
- package/dist/util/InvisibleMessage.js.map +1 -0
- package/dist/util/PopupUtils.d.ts +7 -0
- package/dist/util/PopupUtils.js +58 -77
- package/dist/util/PopupUtils.js.map +1 -0
- package/dist/util/SlotsHelper.d.ts +9 -0
- package/dist/util/SlotsHelper.js +22 -35
- package/dist/util/SlotsHelper.js.map +1 -0
- package/dist/util/StringHelper.d.ts +3 -0
- package/dist/util/StringHelper.js +17 -20
- package/dist/util/StringHelper.js.map +1 -0
- package/dist/util/TabbableElements.d.ts +17 -0
- package/dist/util/TabbableElements.js +53 -47
- package/dist/util/TabbableElements.js.map +1 -0
- package/dist/util/arraysAreEqual.d.ts +2 -0
- package/dist/util/arraysAreEqual.js +10 -12
- package/dist/util/arraysAreEqual.js.map +1 -0
- package/dist/util/clamp.d.ts +9 -0
- package/dist/util/clamp.js +2 -2
- package/dist/util/clamp.js.map +1 -0
- package/dist/util/createLinkInHead.d.ts +7 -0
- package/dist/util/createLinkInHead.js +14 -17
- package/dist/util/createLinkInHead.js.map +1 -0
- package/dist/util/createStyleInHead.d.ts +8 -0
- package/dist/util/createStyleInHead.js +10 -10
- package/dist/util/createStyleInHead.js.map +1 -0
- package/dist/util/debounce.d.ts +2 -0
- package/dist/util/debounce.js +6 -8
- package/dist/util/debounce.js.map +1 -0
- package/dist/util/detectNavigatorLanguage.d.ts +2 -0
- package/dist/util/detectNavigatorLanguage.js +7 -10
- package/dist/util/detectNavigatorLanguage.js.map +1 -0
- package/dist/util/escapeRegex.d.ts +8 -0
- package/dist/util/escapeRegex.js +8 -7
- package/dist/util/escapeRegex.js.map +1 -0
- package/dist/util/formatMessage.d.ts +2 -0
- package/dist/util/formatMessage.js +15 -19
- package/dist/util/formatMessage.js.map +1 -0
- package/dist/util/generateHighlightedMarkup.d.ts +9 -0
- package/dist/util/generateHighlightedMarkup.js +26 -27
- package/dist/util/generateHighlightedMarkup.js.map +1 -0
- package/dist/util/getActiveElement.d.ts +2 -0
- package/dist/util/getActiveElement.js +6 -8
- package/dist/util/getActiveElement.js.map +1 -0
- package/dist/util/getClassCopy.d.ts +400 -0
- package/dist/util/getClassCopy.js +7 -7
- package/dist/util/getClassCopy.js.map +1 -0
- package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -0
- package/dist/util/getDesigntimePropertyAsArray.js +4 -3
- package/dist/util/getDesigntimePropertyAsArray.js.map +1 -0
- package/dist/util/getEffectiveContentDensity.d.ts +2 -0
- package/dist/util/getEffectiveContentDensity.js +2 -3
- package/dist/util/getEffectiveContentDensity.js.map +1 -0
- package/dist/util/getEffectiveScrollbarStyle.d.ts +2 -0
- package/dist/util/getEffectiveScrollbarStyle.js +1 -2
- package/dist/util/getEffectiveScrollbarStyle.js.map +1 -0
- package/dist/util/getFastNavigationGroups.d.ts +2 -0
- package/dist/util/getFastNavigationGroups.js +44 -56
- package/dist/util/getFastNavigationGroups.js.map +1 -0
- package/dist/util/getFileExtension.d.ts +12 -0
- package/dist/util/getFileExtension.js +9 -11
- package/dist/util/getFileExtension.js.map +1 -0
- package/dist/util/getNormalizedTarget.d.ts +7 -0
- package/dist/util/getNormalizedTarget.js +7 -9
- package/dist/util/getNormalizedTarget.js.map +1 -0
- package/dist/util/getSingletonElementInstance.d.ts +2 -0
- package/dist/util/getSingletonElementInstance.js +7 -10
- package/dist/util/getSingletonElementInstance.js.map +1 -0
- package/dist/util/isElementClickable.d.ts +2 -0
- package/dist/util/isElementClickable.js +16 -0
- package/dist/util/isElementClickable.js.map +1 -0
- package/dist/util/isElementHidden.d.ts +2 -0
- package/dist/util/isElementHidden.js +8 -0
- package/dist/util/isElementHidden.js.map +1 -0
- package/dist/util/isElementInView.d.ts +6 -0
- package/dist/util/isElementInView.js +6 -9
- package/dist/util/isElementInView.js.map +1 -0
- package/dist/util/isElementTabbable.d.ts +9 -0
- package/dist/util/isElementTabbable.js +30 -0
- package/dist/util/isElementTabbable.js.map +1 -0
- package/dist/util/isValidPropertyName.d.ts +8 -0
- package/dist/util/isValidPropertyName.js +16 -17
- package/dist/util/isValidPropertyName.js.map +1 -0
- package/dist/util/whenDOMReady.d.ts +2 -0
- package/dist/util/whenDOMReady.js +11 -10
- package/dist/util/whenDOMReady.js.map +1 -0
- package/dist/util/willShowContent.d.ts +2 -0
- package/dist/util/willShowContent.js +7 -0
- package/dist/util/willShowContent.js.map +1 -0
- package/dist/validateThemeRoot.d.ts +2 -0
- package/dist/validateThemeRoot.js +41 -52
- package/dist/validateThemeRoot.js.map +1 -0
- package/package-scripts.js +15 -6
- package/package.json +7 -6
- package/src/{AssetRegistry.js → AssetRegistry.ts} +0 -0
- package/src/Boot.ts +61 -0
- package/src/{CSP.js → CSP.ts} +14 -7
- package/src/{CustomElementsRegistry.js → CustomElementsRegistry.ts} +19 -16
- package/src/{CustomElementsScope.js → CustomElementsScope.ts} +8 -5
- package/src/{CustomElementsScopeUtils.js → CustomElementsScopeUtils.ts} +14 -7
- package/src/DOMObserver.ts +28 -0
- package/src/{Device.js → Device.ts} +17 -14
- package/src/{EventProvider.js → EventProvider.ts} +9 -7
- package/src/FeaturesRegistry.ts +14 -0
- package/src/{FontFace.js → FontFace.ts} +3 -2
- package/src/{InitialConfiguration.js → InitialConfiguration.ts} +33 -12
- package/src/Keys.ts +295 -0
- package/src/ManagedStyles.ts +92 -0
- package/src/MarkedEvents.ts +20 -0
- package/src/{MediaRange.js → MediaRange.ts} +54 -53
- package/src/{PropertiesFileFormat.js → PropertiesFileFormat.ts} +8 -8
- package/src/{Render.js → Render.ts} +25 -20
- package/src/{RenderQueue.js → RenderQueue.ts} +10 -5
- package/src/{Runtimes.js → Runtimes.ts} +15 -8
- package/src/{StaticArea.js → StaticArea.ts} +0 -0
- package/src/{StaticAreaItem.js → StaticAreaItem.ts} +26 -22
- package/src/{SystemCSSVars.js → SystemCSSVars.ts} +0 -0
- package/src/{Theming.js → Theming.ts} +0 -0
- package/src/{UI5Element.js → UI5Element.ts} +264 -154
- package/src/{UI5ElementMetadata.js → UI5ElementMetadata.ts} +120 -58
- package/src/animations/{AnimationQueue.js → AnimationQueue.ts} +8 -7
- package/src/animations/animate.ts +64 -0
- package/src/animations/scroll.ts +21 -0
- package/src/animations/{slideDown.js → slideDown.ts} +27 -34
- package/src/animations/{slideUp.js → slideUp.ts} +28 -32
- package/src/asset-registries/{Icons.js → Icons.ts} +63 -38
- package/src/asset-registries/Illustrations.ts +75 -0
- package/src/asset-registries/{LocaleData.js → LocaleData.ts} +35 -21
- package/src/asset-registries/{Themes.js → Themes.ts} +14 -29
- package/src/asset-registries/{i18n.js → i18n.ts} +18 -23
- package/src/assets-meta/{IconCollectionsAlias.js → IconCollectionsAlias.ts} +0 -0
- package/src/config/AnimationMode.ts +33 -0
- package/src/config/{CalendarType.js → CalendarType.ts} +8 -3
- package/src/config/FormatSettings.ts +21 -0
- package/src/config/{Icons.js → Icons.ts} +19 -12
- package/src/config/{Language.js → Language.ts} +22 -18
- package/src/config/NoConflict.ts +67 -0
- package/src/config/{RTL.js → RTL.ts} +14 -4
- package/src/config/Theme.ts +64 -0
- package/src/config/{ThemeRoots.js → ThemeRoots.ts} +9 -7
- package/src/decorators/customElement.ts +17 -0
- package/src/decorators/event.ts +28 -0
- package/src/decorators/fastNavigation.ts +14 -0
- package/src/decorators/languageAware.ts +14 -0
- package/src/decorators/property.ts +30 -0
- package/src/decorators/slot.ts +49 -0
- package/src/decorators/themeAware.ts +14 -0
- package/src/delegate/{ItemNavigation.js → ItemNavigation.ts} +56 -19
- package/src/delegate/{ResizeHandler.js → ResizeHandler.ts} +25 -36
- package/src/delegate/ScrollEnablement.ts +224 -0
- package/src/features/{F6Navigation.js → F6Navigation.ts} +50 -25
- package/src/features/OpenUI5Element.ts +11 -0
- package/src/features/OpenUI5Enablement.ts +117 -0
- package/src/features/OpenUI5Support.ts +148 -0
- package/src/{getSharedResource.js → getSharedResource.ts} +3 -3
- package/src/global.d.ts +44 -0
- package/src/{i18nBundle.js → i18nBundle.ts} +45 -23
- package/src/locale/{Locale.js → Locale.ts} +15 -5
- package/src/locale/RTLAwareRegistry.ts +16 -0
- package/src/locale/{applyDirection.js → applyDirection.ts} +4 -3
- package/src/locale/{directionChange.js → directionChange.ts} +6 -4
- package/src/locale/{getEffectiveDir.js → getEffectiveDir.ts} +1 -1
- package/src/locale/{getLocale.js → getLocale.ts} +12 -7
- package/src/locale/languageChange.ts +24 -0
- package/src/locale/{nextFallbackLocale.js → nextFallbackLocale.ts} +1 -1
- package/src/locale/{normalizeLocale.js → normalizeLocale.ts} +5 -3
- package/src/renderer/LitRenderer.ts +60 -0
- package/src/renderer/{executeTemplate.js → executeTemplate.ts} +11 -5
- package/src/theming/{CustomStyle.js → CustomStyle.ts} +11 -9
- package/src/theming/{ThemeLoaded.js → ThemeLoaded.ts} +6 -4
- package/src/theming/{applyTheme.js → applyTheme.ts} +16 -10
- package/src/theming/{getConstructableStyle.js → getConstructableStyle.ts} +5 -4
- package/src/theming/getEffectiveLinksHrefs.ts +26 -0
- package/src/theming/{getEffectiveStyle.js → getEffectiveStyle.ts} +9 -7
- package/src/theming/getStylesString.ts +15 -0
- package/src/theming/{getThemeDesignerTheme.js → getThemeDesignerTheme.ts} +22 -8
- package/src/theming/{preloadLinks.js → preloadLinks.ts} +3 -2
- package/src/thirdparty/{_merge.js → _merge.ts} +2 -2
- package/src/thirdparty/{isPlainObject.js → isPlainObject.ts} +1 -1
- package/src/thirdparty/merge.ts +5 -0
- package/src/types/AnimationMode.ts +33 -0
- package/src/types/{CSSColor.js → CSSColor.ts} +3 -3
- package/src/types/CalendarType.ts +38 -0
- package/src/types/{DOMReference.js → DOMReference.ts} +4 -4
- package/src/types/DataType.ts +51 -0
- package/src/types/{Float.js → Float.ts} +5 -5
- package/src/types/{Integer.js → Integer.ts} +5 -4
- package/src/types/InvisibleMessageMode.ts +27 -0
- package/src/types/ItemNavigationBehavior.ts +26 -0
- package/src/types/NavigationMode.ts +33 -0
- package/src/types/ValueState.ts +47 -0
- package/src/types.ts +30 -0
- package/src/updateShadowRoot.ts +37 -0
- package/src/util/AriaLabelHelper.ts +63 -0
- package/src/util/{Caret.js → Caret.ts} +5 -9
- package/src/util/{ColorConversion.js → ColorConversion.ts} +183 -182
- package/src/util/{FetchHelper.js → FetchHelper.ts} +7 -7
- package/src/util/FocusableElements.ts +82 -0
- package/src/util/{HTMLSanitizer.js → HTMLSanitizer.ts} +2 -0
- package/src/util/{InvisibleMessage.js → InvisibleMessage.ts} +6 -6
- package/src/util/PopupUtils.ts +112 -0
- package/src/util/{SlotsHelper.js → SlotsHelper.ts} +9 -13
- package/src/util/{StringHelper.js → StringHelper.ts} +7 -7
- package/src/util/TabbableElements.ts +70 -0
- package/src/util/{arraysAreEqual.js → arraysAreEqual.ts} +1 -1
- package/src/util/{clamp.js → clamp.ts} +1 -1
- package/src/util/{createLinkInHead.js → createLinkInHead.ts} +6 -5
- package/src/util/{createStyleInHead.js → createStyleInHead.ts} +4 -2
- package/src/util/{debounce.js → debounce.ts} +5 -4
- package/src/util/{detectNavigatorLanguage.js → detectNavigatorLanguage.ts} +1 -1
- package/src/util/escapeRegex.ts +11 -0
- package/src/util/{formatMessage.js → formatMessage.ts} +4 -3
- package/src/util/{generateHighlightedMarkup.js → generateHighlightedMarkup.ts} +7 -6
- package/src/util/{getActiveElement.js → getActiveElement.ts} +0 -0
- package/src/util/{getClassCopy.js → getClassCopy.ts} +3 -1
- package/src/util/{getDesigntimePropertyAsArray.js → getDesigntimePropertyAsArray.ts} +1 -1
- package/src/util/getEffectiveContentDensity.ts +5 -0
- package/src/util/{getEffectiveScrollbarStyle.js → getEffectiveScrollbarStyle.ts} +0 -0
- package/src/util/{getFastNavigationGroups.js → getFastNavigationGroups.ts} +10 -10
- package/src/util/{getFileExtension.js → getFileExtension.ts} +3 -3
- package/src/util/{getNormalizedTarget.js → getNormalizedTarget.ts} +2 -2
- package/src/util/{getSingletonElementInstance.js → getSingletonElementInstance.ts} +1 -1
- package/src/util/isElementClickable.ts +19 -0
- package/src/util/isElementHidden.ts +9 -0
- package/src/util/{isElementInView.js → isElementInView.ts} +1 -1
- package/src/util/isElementTabbable.ts +37 -0
- package/src/util/{isValidPropertyName.js → isValidPropertyName.ts} +1 -1
- package/src/util/{whenDOMReady.js → whenDOMReady.ts} +1 -1
- package/src/util/willShowContent.ts +7 -0
- package/src/{validateThemeRoot.js → validateThemeRoot.ts} +4 -4
- package/tsconfig.json +13 -0
- package/dist/RenderScheduler.js +0 -44
- package/dist/animations/config.js +0 -5
- package/dist/assets/bundle.esm.e2bd78ba.js +0 -55
- package/dist/types/CSSSize.js +0 -20
- package/dist/types/PopupState.js +0 -57
- package/dist/util/isDefaultSlotProvided.js +0 -11
- package/dist/util/isDescendantOf.js +0 -15
- package/dist/util/isNodeClickable.js +0 -19
- package/dist/util/isNodeHidden.js +0 -9
- package/dist/util/isNodeTabbable.js +0 -28
- package/dist/util/setToArray.js +0 -10
- package/src/Boot.js +0 -63
- package/src/DOMObserver.js +0 -65
- package/src/FeaturesRegistry.js +0 -14
- package/src/Keys.js +0 -295
- package/src/ManagedStyles.js +0 -83
- package/src/RenderScheduler.js +0 -44
- package/src/animations/animate.js +0 -53
- package/src/animations/config.js +0 -5
- package/src/animations/scroll.js +0 -28
- package/src/asset-registries/Illustrations.js +0 -59
- package/src/config/AnimationMode.js +0 -23
- package/src/config/FormatSettings.js +0 -13
- package/src/config/NoConflict.js +0 -51
- package/src/config/Theme.js +0 -53
- package/src/delegate/ScrollEnablement.js +0 -188
- package/src/features/OpenUI5Enablement.js +0 -119
- package/src/features/OpenUI5Support.js +0 -126
- package/src/locale/RTLAwareRegistry.js +0 -14
- package/src/locale/languageChange.js +0 -22
- package/src/renderer/LitRenderer.js +0 -52
- package/src/theming/getEffectiveLinksHrefs.js +0 -27
- package/src/theming/getStylesString.js +0 -15
- package/src/thirdparty/merge.js +0 -10
- package/src/types/AnimationMode.js +0 -7
- package/src/types/CSSSize.js +0 -20
- package/src/types/CalendarType.js +0 -59
- package/src/types/DataType.js +0 -43
- package/src/types/InvisibleMessageMode.js +0 -46
- package/src/types/ItemNavigationBehavior.js +0 -16
- package/src/types/NavigationMode.js +0 -7
- package/src/types/PopupState.js +0 -57
- package/src/types/ValueState.js +0 -64
- package/src/updateShadowRoot.js +0 -29
- package/src/util/AriaLabelHelper.js +0 -56
- package/src/util/FocusableElements.js +0 -79
- package/src/util/PopupUtils.js +0 -93
- package/src/util/TabbableElements.js +0 -51
- package/src/util/escapeRegex.js +0 -10
- package/src/util/getEffectiveContentDensity.js +0 -5
- package/src/util/isDefaultSlotProvided.js +0 -11
- package/src/util/isDescendantOf.js +0 -15
- package/src/util/isNodeClickable.js +0 -19
- package/src/util/isNodeHidden.js +0 -9
- package/src/util/isNodeTabbable.js +0 -28
- package/src/util/setToArray.js +0 -10
|
@@ -1,37 +1,57 @@
|
|
|
1
1
|
import getSharedResource from "../getSharedResource.js";
|
|
2
2
|
import IconCollectionsAlias from "../assets-meta/IconCollectionsAlias.js";
|
|
3
3
|
import { getEffectiveDefaultIconCollection } from "../config/Icons.js";
|
|
4
|
+
import { I18nText } from "../i18nBundle.js";
|
|
5
|
+
import { TemplateFunction } from "../renderer/executeTemplate.js";
|
|
6
|
+
|
|
7
|
+
type IconLoader = (collectionName: string) => Promise<CollectionData>;
|
|
8
|
+
|
|
9
|
+
type CollectionData = {
|
|
10
|
+
collection: string,
|
|
11
|
+
packageName: string,
|
|
12
|
+
version?: string,
|
|
13
|
+
data: Record<string, {
|
|
14
|
+
path: string,
|
|
15
|
+
paths: Array<string>,
|
|
16
|
+
ltr: boolean,
|
|
17
|
+
acc: I18nText,
|
|
18
|
+
}>,
|
|
19
|
+
};
|
|
4
20
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
21
|
+
type IconData = {
|
|
22
|
+
collection?: string,
|
|
23
|
+
packageName: string,
|
|
24
|
+
pathData: string | Array<string>,
|
|
25
|
+
ltr: boolean,
|
|
26
|
+
accData: I18nText,
|
|
27
|
+
customTemplate?: TemplateFunction,
|
|
28
|
+
viewBox?: string,
|
|
29
|
+
};
|
|
8
30
|
|
|
9
|
-
const
|
|
31
|
+
const loaders = new Map<string, IconLoader>();
|
|
32
|
+
const registry = getSharedResource<Map<string, IconData>>("SVGIcons.registry", new Map());
|
|
33
|
+
const iconCollectionPromises = getSharedResource<Map<string, Promise<CollectionData>>>("SVGIcons.promises", new Map());
|
|
10
34
|
|
|
11
|
-
|
|
12
|
-
* @deprecated
|
|
13
|
-
*/
|
|
14
|
-
const registerIconBundle = async (collectionName, bundleData) => {
|
|
15
|
-
throw new Error("This method has been removed. Use `registerIconLoader` instead.");
|
|
16
|
-
};
|
|
35
|
+
const ICON_NOT_FOUND = "ICON_NOT_FOUND";
|
|
17
36
|
|
|
18
|
-
const registerIconLoader =
|
|
37
|
+
const registerIconLoader = (collectionName: string, loader: IconLoader) => {
|
|
19
38
|
loaders.set(collectionName, loader);
|
|
20
39
|
};
|
|
21
40
|
|
|
22
|
-
const _loadIconCollectionOnce = async collectionName => {
|
|
41
|
+
const _loadIconCollectionOnce = async (collectionName: string) => {
|
|
23
42
|
if (!iconCollectionPromises.has(collectionName)) {
|
|
24
43
|
if (!loaders.has(collectionName)) {
|
|
25
44
|
throw new Error(`No loader registered for the ${collectionName} icons collection. Probably you forgot to import the "AllIcons.js" module for the respective package.`);
|
|
26
45
|
}
|
|
27
|
-
|
|
46
|
+
|
|
47
|
+
const loadIcons = loaders.get(collectionName)!;
|
|
28
48
|
iconCollectionPromises.set(collectionName, loadIcons(collectionName));
|
|
29
49
|
}
|
|
30
50
|
|
|
31
51
|
return iconCollectionPromises.get(collectionName);
|
|
32
52
|
};
|
|
33
53
|
|
|
34
|
-
const _fillRegistry = bundleData => {
|
|
54
|
+
const _fillRegistry = (bundleData: CollectionData) => {
|
|
35
55
|
Object.keys(bundleData.data).forEach(iconName => {
|
|
36
56
|
const iconData = bundleData.data[iconName];
|
|
37
57
|
|
|
@@ -41,28 +61,28 @@ const _fillRegistry = bundleData => {
|
|
|
41
61
|
accData: iconData.acc,
|
|
42
62
|
collection: bundleData.collection,
|
|
43
63
|
packageName: bundleData.packageName,
|
|
44
|
-
|
|
64
|
+
});
|
|
45
65
|
});
|
|
46
66
|
};
|
|
47
67
|
|
|
48
68
|
// set
|
|
49
|
-
const registerIcon = (name
|
|
50
|
-
if (!collection) {
|
|
51
|
-
collection = getEffectiveDefaultIconCollection();
|
|
69
|
+
const registerIcon = (name: string, iconData: IconData) => { // eslint-disable-line
|
|
70
|
+
if (!iconData.collection) {
|
|
71
|
+
iconData.collection = getEffectiveDefaultIconCollection();
|
|
52
72
|
}
|
|
53
73
|
|
|
54
|
-
const key = `${collection}/${name}`;
|
|
74
|
+
const key = `${iconData.collection}/${name}`;
|
|
55
75
|
registry.set(key, {
|
|
56
|
-
pathData,
|
|
57
|
-
ltr,
|
|
58
|
-
accData,
|
|
59
|
-
packageName,
|
|
60
|
-
customTemplate,
|
|
61
|
-
viewBox,
|
|
76
|
+
pathData: iconData.pathData,
|
|
77
|
+
ltr: iconData.ltr,
|
|
78
|
+
accData: iconData.accData,
|
|
79
|
+
packageName: iconData.packageName,
|
|
80
|
+
customTemplate: iconData.customTemplate,
|
|
81
|
+
viewBox: iconData.viewBox,
|
|
62
82
|
});
|
|
63
83
|
};
|
|
64
84
|
|
|
65
|
-
const _parseName = name => {
|
|
85
|
+
const _parseName = (name: string) => {
|
|
66
86
|
// silently support ui5-compatible URIs
|
|
67
87
|
if (name.startsWith("sap-icon://")) {
|
|
68
88
|
name = name.replace("sap-icon://", "");
|
|
@@ -84,18 +104,19 @@ const _parseName = name => {
|
|
|
84
104
|
return { name, collection, registryKey };
|
|
85
105
|
};
|
|
86
106
|
|
|
87
|
-
const getIconDataSync =
|
|
88
|
-
const { registryKey } = _parseName(
|
|
107
|
+
const getIconDataSync = (name: string) => {
|
|
108
|
+
const { registryKey } = _parseName(name);
|
|
89
109
|
return registry.get(registryKey);
|
|
90
110
|
};
|
|
91
111
|
|
|
92
|
-
const getIconData = async
|
|
93
|
-
const { collection, registryKey } = _parseName(
|
|
112
|
+
const getIconData = async (name: string) => {
|
|
113
|
+
const { collection, registryKey } = _parseName(name);
|
|
94
114
|
|
|
95
|
-
let iconData = ICON_NOT_FOUND;
|
|
115
|
+
let iconData: string | CollectionData = ICON_NOT_FOUND;
|
|
96
116
|
try {
|
|
97
|
-
iconData = await _loadIconCollectionOnce(collection)
|
|
98
|
-
} catch (
|
|
117
|
+
iconData = (await _loadIconCollectionOnce(collection))!;
|
|
118
|
+
} catch (error: unknown) {
|
|
119
|
+
const e = error as Error;
|
|
99
120
|
console.error(e.message); /* eslint-disable-line */
|
|
100
121
|
}
|
|
101
122
|
|
|
@@ -105,7 +126,7 @@ const getIconData = async nameProp => {
|
|
|
105
126
|
|
|
106
127
|
if (!registry.has(registryKey)) {
|
|
107
128
|
// not filled by another await. many getters will await on the same loader, but fill only once
|
|
108
|
-
_fillRegistry(iconData);
|
|
129
|
+
_fillRegistry(iconData as CollectionData);
|
|
109
130
|
}
|
|
110
131
|
return registry.get(registryKey);
|
|
111
132
|
};
|
|
@@ -119,19 +140,23 @@ const _getRegisteredNames = async () => {
|
|
|
119
140
|
return Array.from(registry.keys());
|
|
120
141
|
};
|
|
121
142
|
|
|
122
|
-
const _normalizeCollection = collectionName => {
|
|
123
|
-
if (IconCollectionsAlias[collectionName]) {
|
|
124
|
-
return IconCollectionsAlias[collectionName];
|
|
143
|
+
const _normalizeCollection = (collectionName: string) => {
|
|
144
|
+
if (IconCollectionsAlias[collectionName as keyof typeof IconCollectionsAlias]) {
|
|
145
|
+
return IconCollectionsAlias[collectionName as keyof typeof IconCollectionsAlias];
|
|
125
146
|
}
|
|
126
147
|
|
|
127
148
|
return collectionName;
|
|
128
149
|
};
|
|
129
150
|
|
|
130
151
|
export {
|
|
131
|
-
registerIconBundle,
|
|
132
152
|
registerIconLoader,
|
|
133
153
|
getIconData,
|
|
134
154
|
getIconDataSync,
|
|
135
155
|
registerIcon,
|
|
136
156
|
_getRegisteredNames,
|
|
137
157
|
};
|
|
158
|
+
|
|
159
|
+
export type {
|
|
160
|
+
IconData,
|
|
161
|
+
CollectionData,
|
|
162
|
+
};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import getSharedResource from "../getSharedResource.js";
|
|
2
|
+
import { I18nText } from "../i18nBundle.js";
|
|
3
|
+
|
|
4
|
+
type IllustrationLoader = (illustrationName: string) => Promise<IllustrationData>;
|
|
5
|
+
|
|
6
|
+
type IllustrationProperties = {
|
|
7
|
+
dialogSvg: string,
|
|
8
|
+
sceneSvg: string,
|
|
9
|
+
spotSvg: string,
|
|
10
|
+
title: I18nText,
|
|
11
|
+
subtitle: I18nText,
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
type IllustrationData = IllustrationProperties & {
|
|
15
|
+
set: string,
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const loaders = new Map<string, IllustrationLoader>();
|
|
19
|
+
const registry = getSharedResource<Map<string, IllustrationProperties>>("SVGIllustration.registry", new Map());
|
|
20
|
+
const illustrationPromises = getSharedResource<Map<string, Promise<IllustrationData>>>("SVGIllustration.promises", new Map());
|
|
21
|
+
|
|
22
|
+
const registerIllustration = (name: string, data: IllustrationData) => {
|
|
23
|
+
registry.set(`${data.set}/${name}`, {
|
|
24
|
+
dialogSvg: data.dialogSvg,
|
|
25
|
+
sceneSvg: data.sceneSvg,
|
|
26
|
+
spotSvg: data.spotSvg,
|
|
27
|
+
title: data.title,
|
|
28
|
+
subtitle: data.subtitle,
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const registerIllustrationLoader = (illustrationName: string, loader: IllustrationLoader) => {
|
|
33
|
+
loaders.set(illustrationName, loader);
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
const _loadIllustrationOnce = async (illustrationName: string) => {
|
|
37
|
+
if (!illustrationPromises.has(illustrationName)) {
|
|
38
|
+
if (!loaders.has(illustrationName)) {
|
|
39
|
+
const illustrationPath = illustrationName.startsWith("Tnt") ? `tnt/${illustrationName.replace(/^Tnt/, "")}` : illustrationName;
|
|
40
|
+
throw new Error(`No loader registered for the ${illustrationName} illustration. Probably you forgot to import the "@ui5/webcomponents-fiori/dist/illustrations/${illustrationPath}.js" module. Or you can import the "@ui5/webcomponents-fiori/dist/illustrations/AllIllustrations.js" module that will make all illustrations available, but fetch only the ones used.`);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const loadIllustrations = loaders.get(illustrationName)!;
|
|
44
|
+
illustrationPromises.set(illustrationName, loadIllustrations(illustrationName));
|
|
45
|
+
}
|
|
46
|
+
return illustrationPromises.get(illustrationName);
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
const getIllustrationDataSync = (illustrationName: string) => {
|
|
50
|
+
let set = "fiori";
|
|
51
|
+
|
|
52
|
+
if (illustrationName.startsWith("Tnt")) {
|
|
53
|
+
set = "tnt";
|
|
54
|
+
illustrationName = illustrationName.replace(/^Tnt/, "");
|
|
55
|
+
}
|
|
56
|
+
return registry.get(`${set}/${illustrationName}`);
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
const getIllustrationData = async (illustrationName: string) => {
|
|
60
|
+
let set = "fiori";
|
|
61
|
+
|
|
62
|
+
await _loadIllustrationOnce(illustrationName);
|
|
63
|
+
if (illustrationName.startsWith("Tnt")) {
|
|
64
|
+
set = "tnt";
|
|
65
|
+
illustrationName = illustrationName.replace(/^Tnt/, "");
|
|
66
|
+
}
|
|
67
|
+
return registry.get(`${set}/${illustrationName}`);
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
export {
|
|
71
|
+
getIllustrationDataSync,
|
|
72
|
+
registerIllustration,
|
|
73
|
+
registerIllustrationLoader,
|
|
74
|
+
getIllustrationData,
|
|
75
|
+
};
|
|
@@ -2,11 +2,15 @@ import { attachLanguageChange } from "../locale/languageChange.js";
|
|
|
2
2
|
import getLocale from "../locale/getLocale.js";
|
|
3
3
|
import { DEFAULT_LOCALE, SUPPORTED_LOCALES } from "../generated/AssetParameters.js";
|
|
4
4
|
import { getFeature } from "../FeaturesRegistry.js";
|
|
5
|
+
import type OpenUI5Support from "../features/OpenUI5Support";
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
7
|
+
type LocaleDataLoader = (locale: string) => Promise<CLDRData>;
|
|
8
|
+
type CLDRData = Record<string, object | boolean | string>;
|
|
9
|
+
|
|
10
|
+
const localeDataMap = new Map<string, CLDRData>();
|
|
11
|
+
const loaders = new Map<string, LocaleDataLoader>();
|
|
12
|
+
const cldrPromises = new Map<string, Promise<CLDRData>>();
|
|
13
|
+
const reportedErrors = new Set<string>();
|
|
10
14
|
let warningShown = false;
|
|
11
15
|
|
|
12
16
|
const M_ISO639_OLD_TO_NEW = {
|
|
@@ -15,7 +19,7 @@ const M_ISO639_OLD_TO_NEW = {
|
|
|
15
19
|
"in": "id",
|
|
16
20
|
};
|
|
17
21
|
|
|
18
|
-
const _showAssetsWarningOnce = localeId => {
|
|
22
|
+
const _showAssetsWarningOnce = (localeId: string) => {
|
|
19
23
|
if (warningShown) {
|
|
20
24
|
return;
|
|
21
25
|
}
|
|
@@ -25,9 +29,9 @@ const _showAssetsWarningOnce = localeId => {
|
|
|
25
29
|
warningShown = true;
|
|
26
30
|
};
|
|
27
31
|
|
|
28
|
-
const calcLocale = (language, region, script) => {
|
|
32
|
+
const calcLocale = (language: string, region: string, script: string) => {
|
|
29
33
|
// normalize language and handle special cases
|
|
30
|
-
language = (language && M_ISO639_OLD_TO_NEW[language]) || language;
|
|
34
|
+
language = (language && M_ISO639_OLD_TO_NEW[language as keyof typeof M_ISO639_OLD_TO_NEW]) || language;
|
|
31
35
|
// Special case 1: in an SAP context, the inclusive language code "no" always means Norwegian Bokmal ("nb")
|
|
32
36
|
if (language === "no") {
|
|
33
37
|
language = "nb";
|
|
@@ -78,12 +82,12 @@ const calcLocale = (language, region, script) => {
|
|
|
78
82
|
};
|
|
79
83
|
|
|
80
84
|
// internal set data
|
|
81
|
-
const setLocaleData = (localeId, content) => {
|
|
85
|
+
const setLocaleData = (localeId: string, content: CLDRData) => {
|
|
82
86
|
localeDataMap.set(localeId, content);
|
|
83
87
|
};
|
|
84
88
|
|
|
85
89
|
// external getSync
|
|
86
|
-
const getLocaleData = localeId => {
|
|
90
|
+
const getLocaleData = (localeId: string) => {
|
|
87
91
|
// if there is no loader, the default fallback was fetched and a warning was given - use default locale instead
|
|
88
92
|
if (!loaders.has(localeId)) {
|
|
89
93
|
localeId = DEFAULT_LOCALE;
|
|
@@ -98,10 +102,14 @@ const getLocaleData = localeId => {
|
|
|
98
102
|
};
|
|
99
103
|
|
|
100
104
|
// load bundle over the network once
|
|
101
|
-
const _loadCldrOnce = localeId => {
|
|
102
|
-
const loadCldr = loaders.get(localeId);
|
|
103
|
-
|
|
105
|
+
const _loadCldrOnce = (localeId: string) => {
|
|
104
106
|
if (!cldrPromises.get(localeId)) {
|
|
107
|
+
const loadCldr = loaders.get(localeId);
|
|
108
|
+
|
|
109
|
+
if (!loadCldr) {
|
|
110
|
+
throw new Error(`CLDR data for locale ${localeId} is not loaded!`);
|
|
111
|
+
}
|
|
112
|
+
|
|
105
113
|
cldrPromises.set(localeId, loadCldr(localeId));
|
|
106
114
|
}
|
|
107
115
|
|
|
@@ -109,13 +117,13 @@ const _loadCldrOnce = localeId => {
|
|
|
109
117
|
};
|
|
110
118
|
|
|
111
119
|
// external getAsync
|
|
112
|
-
const fetchCldr = async (language, region, script) => {
|
|
120
|
+
const fetchCldr = async (language: string, region: string, script: string) => {
|
|
113
121
|
const localeId = calcLocale(language, region, script);
|
|
114
122
|
|
|
115
123
|
// reuse OpenUI5 CLDR if present
|
|
116
|
-
const
|
|
117
|
-
if (
|
|
118
|
-
const cldrContent =
|
|
124
|
+
const openUI5Support = getFeature<typeof OpenUI5Support>("OpenUI5Support");
|
|
125
|
+
if (openUI5Support) {
|
|
126
|
+
const cldrContent = openUI5Support.getLocaleDataObject();
|
|
119
127
|
if (cldrContent) {
|
|
120
128
|
// only if openui5 actually returned valid content
|
|
121
129
|
setLocaleData(localeId, cldrContent);
|
|
@@ -126,8 +134,9 @@ const fetchCldr = async (language, region, script) => {
|
|
|
126
134
|
// fetch it
|
|
127
135
|
try {
|
|
128
136
|
const cldrContent = await _loadCldrOnce(localeId);
|
|
129
|
-
setLocaleData(localeId, cldrContent);
|
|
130
|
-
} catch (
|
|
137
|
+
setLocaleData(localeId, cldrContent as CLDRData);
|
|
138
|
+
} catch (error: unknown) {
|
|
139
|
+
const e = error as Error;
|
|
131
140
|
if (!reportedErrors.has(e.message)) {
|
|
132
141
|
reportedErrors.add(e.message);
|
|
133
142
|
console.error(e.message); /* eslint-disable-line */
|
|
@@ -135,13 +144,14 @@ const fetchCldr = async (language, region, script) => {
|
|
|
135
144
|
}
|
|
136
145
|
};
|
|
137
146
|
|
|
138
|
-
const registerLocaleDataLoader = (localeId, loader) => {
|
|
147
|
+
const registerLocaleDataLoader = (localeId: string, loader: LocaleDataLoader) => {
|
|
139
148
|
loaders.set(localeId, loader);
|
|
140
149
|
};
|
|
141
150
|
|
|
142
151
|
// register default loader for "en" from ui5 CDN (dev workflow without assets)
|
|
143
|
-
registerLocaleDataLoader("en", async
|
|
144
|
-
|
|
152
|
+
registerLocaleDataLoader("en", async () => {
|
|
153
|
+
const cldrContent = await fetch(`https://sdk.openui5.org/1.103.0/resources/sap/ui/core/cldr/en.json`);
|
|
154
|
+
return cldrContent.json() as Promise<CLDRData>;
|
|
145
155
|
});
|
|
146
156
|
|
|
147
157
|
// When the language changes dynamically (the user calls setLanguage),
|
|
@@ -156,3 +166,7 @@ export {
|
|
|
156
166
|
fetchCldr,
|
|
157
167
|
getLocaleData,
|
|
158
168
|
};
|
|
169
|
+
|
|
170
|
+
export type {
|
|
171
|
+
CLDRData,
|
|
172
|
+
};
|
|
@@ -1,36 +1,21 @@
|
|
|
1
1
|
import { DEFAULT_THEME } from "../generated/AssetParameters.js";
|
|
2
|
+
import { StyleData, StyleDataCSP } from "../types.js";
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const registeredPackages = new Set();
|
|
6
|
-
const registeredThemes = new Set();
|
|
4
|
+
type ThemeData = {_: StyleDataCSP } | StyleDataCSP | string;
|
|
5
|
+
type ThemeLoader = (themeName: string) => Promise<ThemeData>;
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
*
|
|
13
|
-
* Example usage:
|
|
14
|
-
* 1) Pass the CSS Vars as a string directly.
|
|
15
|
-
* registerThemeProperties("my-package", "my_theme", ":root{--var1: red;}");
|
|
16
|
-
*
|
|
17
|
-
* @public
|
|
18
|
-
* @param packageName - the NPM package for which CSS Vars are registered
|
|
19
|
-
* @param themeName - the theme which the CSS Vars implement
|
|
20
|
-
* @param style - the style content directly
|
|
21
|
-
* @deprecated
|
|
22
|
-
*/
|
|
23
|
-
const registerThemeProperties = (_packageName, _themeName, _style) => {
|
|
24
|
-
throw new Error("`registerThemeProperties` has been depracated. Use `registerThemePropertiesLoader` instead.");
|
|
25
|
-
};
|
|
7
|
+
const themeStyles = new Map<string, StyleData>();
|
|
8
|
+
const loaders = new Map<string, ThemeLoader>();
|
|
9
|
+
const registeredPackages = new Set<string>();
|
|
10
|
+
const registeredThemes = new Set<string>();
|
|
26
11
|
|
|
27
|
-
const registerThemePropertiesLoader = (packageName, themeName, loader) => {
|
|
12
|
+
const registerThemePropertiesLoader = (packageName: string, themeName: string, loader: ThemeLoader) => {
|
|
28
13
|
loaders.set(`${packageName}/${themeName}`, loader);
|
|
29
14
|
registeredPackages.add(packageName);
|
|
30
15
|
registeredThemes.add(themeName);
|
|
31
16
|
};
|
|
32
17
|
|
|
33
|
-
const getThemeProperties = async (packageName, themeName) => {
|
|
18
|
+
const getThemeProperties = async (packageName: string, themeName: string) => {
|
|
34
19
|
const style = themeStyles.get(`${packageName}_${themeName}`);
|
|
35
20
|
if (style !== undefined) { // it's valid for style to be an empty string
|
|
36
21
|
return style;
|
|
@@ -45,7 +30,7 @@ const getThemeProperties = async (packageName, themeName) => {
|
|
|
45
30
|
return _getThemeProperties(packageName, themeName);
|
|
46
31
|
};
|
|
47
32
|
|
|
48
|
-
const _getThemeProperties = async (packageName, themeName) => {
|
|
33
|
+
const _getThemeProperties = async (packageName: string, themeName: string) => {
|
|
49
34
|
const loader = loaders.get(`${packageName}/${themeName}`);
|
|
50
35
|
if (!loader) {
|
|
51
36
|
// no themes for package
|
|
@@ -55,11 +40,12 @@ const _getThemeProperties = async (packageName, themeName) => {
|
|
|
55
40
|
let data;
|
|
56
41
|
try {
|
|
57
42
|
data = await loader(themeName);
|
|
58
|
-
} catch (
|
|
43
|
+
} catch (error: unknown) {
|
|
44
|
+
const e = error as Error;
|
|
59
45
|
console.error(packageName, e.message); /* eslint-disable-line */
|
|
60
46
|
return;
|
|
61
47
|
}
|
|
62
|
-
const themeProps = data._ || data;
|
|
48
|
+
const themeProps = (data as {_: StyleDataCSP})._ || data; // Refactor: remove _ everywhere
|
|
63
49
|
|
|
64
50
|
themeStyles.set(`${packageName}_${themeName}`, themeProps);
|
|
65
51
|
return themeProps;
|
|
@@ -69,13 +55,12 @@ const getRegisteredPackages = () => {
|
|
|
69
55
|
return registeredPackages;
|
|
70
56
|
};
|
|
71
57
|
|
|
72
|
-
const isThemeRegistered = theme => {
|
|
58
|
+
const isThemeRegistered = (theme: string) => {
|
|
73
59
|
return registeredThemes.has(theme);
|
|
74
60
|
};
|
|
75
61
|
|
|
76
62
|
export {
|
|
77
63
|
registerThemePropertiesLoader,
|
|
78
|
-
registerThemeProperties,
|
|
79
64
|
getThemeProperties,
|
|
80
65
|
getRegisteredPackages,
|
|
81
66
|
isThemeRegistered,
|
|
@@ -5,13 +5,16 @@ import nextFallbackLocale from "../locale/nextFallbackLocale.js";
|
|
|
5
5
|
import { DEFAULT_LANGUAGE } from "../generated/AssetParameters.js";
|
|
6
6
|
import { getFetchDefaultLanguage } from "../config/Language.js";
|
|
7
7
|
|
|
8
|
+
type I18nLoader = (localeId: string) => Promise<I18nData>;
|
|
9
|
+
type I18nData = Record<string, string>;
|
|
10
|
+
|
|
8
11
|
// contains package names for which the warning has been shown
|
|
9
12
|
const warningShown = new Set();
|
|
10
13
|
const reportedErrors = new Set();
|
|
11
14
|
|
|
12
|
-
const bundleData = new Map();
|
|
13
|
-
const bundlePromises = new Map();
|
|
14
|
-
const loaders = new Map();
|
|
15
|
+
const bundleData = new Map<string, I18nData | null>();
|
|
16
|
+
const bundlePromises = new Map<string, Promise<I18nData>>();
|
|
17
|
+
const loaders = new Map<string, I18nLoader>();
|
|
15
18
|
|
|
16
19
|
/**
|
|
17
20
|
* Registers i18n loader function for given package and locale.
|
|
@@ -21,46 +24,38 @@ const loaders = new Map();
|
|
|
21
24
|
* @param {string} localeId locale that this loader can handle
|
|
22
25
|
* @param {function} loader async function that will be passed a localeId and should return a JSON object
|
|
23
26
|
*/
|
|
24
|
-
const registerI18nLoader = (packageName, localeId, loader) => {
|
|
27
|
+
const registerI18nLoader = (packageName: string, localeId: string, loader: I18nLoader) => {
|
|
25
28
|
// register loader by key
|
|
26
29
|
const bundleKey = `${packageName}/${localeId}`;
|
|
27
30
|
loaders.set(bundleKey, loader);
|
|
28
31
|
};
|
|
29
32
|
|
|
30
|
-
const _setI18nBundleData = (packageName, data) => {
|
|
33
|
+
const _setI18nBundleData = (packageName: string, data: I18nData | null) => {
|
|
31
34
|
bundleData.set(packageName, data);
|
|
32
35
|
};
|
|
33
36
|
|
|
34
|
-
const getI18nBundleData = packageName => {
|
|
37
|
+
const getI18nBundleData = (packageName: string) => {
|
|
35
38
|
return bundleData.get(packageName);
|
|
36
39
|
};
|
|
37
40
|
|
|
38
|
-
|
|
39
|
-
* @public
|
|
40
|
-
* @deprecated
|
|
41
|
-
*/
|
|
42
|
-
const registerI18nBundle = (_packageName, _bundle) => {
|
|
43
|
-
throw new Error("This method has been removed. Use `registerI18nLoader` instead.");
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
const _hasLoader = (packageName, localeId) => {
|
|
41
|
+
const _hasLoader = (packageName: string, localeId: string) => {
|
|
47
42
|
const bundleKey = `${packageName}/${localeId}`;
|
|
48
43
|
return loaders.has(bundleKey);
|
|
49
44
|
};
|
|
50
45
|
|
|
51
46
|
// load bundle over the network once
|
|
52
|
-
const _loadMessageBundleOnce = (packageName, localeId) => {
|
|
47
|
+
const _loadMessageBundleOnce = (packageName: string, localeId: string) => {
|
|
53
48
|
const bundleKey = `${packageName}/${localeId}`;
|
|
54
49
|
const loadMessageBundle = loaders.get(bundleKey);
|
|
55
50
|
|
|
56
|
-
if (!bundlePromises.get(bundleKey)) {
|
|
51
|
+
if (loadMessageBundle && !bundlePromises.get(bundleKey)) {
|
|
57
52
|
bundlePromises.set(bundleKey, loadMessageBundle(localeId));
|
|
58
53
|
}
|
|
59
54
|
|
|
60
|
-
return bundlePromises.get(bundleKey)
|
|
55
|
+
return bundlePromises.get(bundleKey)!; // Investigate if i18n loader exists and this won't return undefined.
|
|
61
56
|
};
|
|
62
57
|
|
|
63
|
-
const _showAssetsWarningOnce = packageName => {
|
|
58
|
+
const _showAssetsWarningOnce = (packageName: string) => {
|
|
64
59
|
if (!warningShown.has(packageName)) {
|
|
65
60
|
console.warn(`[${packageName}]: Message bundle assets are not configured. Falling back to English texts.`, /* eslint-disable-line */
|
|
66
61
|
` 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 */
|
|
@@ -77,7 +72,7 @@ const _showAssetsWarningOnce = packageName => {
|
|
|
77
72
|
* @param {packageName} packageName the NPM package name
|
|
78
73
|
* @public
|
|
79
74
|
*/
|
|
80
|
-
const fetchI18nBundle = async packageName => {
|
|
75
|
+
const fetchI18nBundle = async (packageName: string) => {
|
|
81
76
|
const language = getLocale().getLanguage();
|
|
82
77
|
const region = getLocale().getRegion();
|
|
83
78
|
let localeId = normalizeLocale(language + (region ? `-${region}` : ``));
|
|
@@ -101,7 +96,8 @@ const fetchI18nBundle = async packageName => {
|
|
|
101
96
|
try {
|
|
102
97
|
const data = await _loadMessageBundleOnce(packageName, localeId);
|
|
103
98
|
_setI18nBundleData(packageName, data);
|
|
104
|
-
} catch (
|
|
99
|
+
} catch (error: unknown) {
|
|
100
|
+
const e = error as Error;
|
|
105
101
|
if (!reportedErrors.has(e.message)) {
|
|
106
102
|
reportedErrors.add(e.message);
|
|
107
103
|
console.error(e.message); /* eslint-disable-line */
|
|
@@ -110,7 +106,7 @@ const fetchI18nBundle = async packageName => {
|
|
|
110
106
|
};
|
|
111
107
|
|
|
112
108
|
// When the language changes dynamically (the user calls setLanguage), re-fetch all previously fetched bundles
|
|
113
|
-
attachLanguageChange(() => {
|
|
109
|
+
attachLanguageChange((lang: string /* eslint-disable-line */) => {
|
|
114
110
|
const allPackages = [...bundleData.keys()];
|
|
115
111
|
return Promise.all(allPackages.map(fetchI18nBundle));
|
|
116
112
|
});
|
|
@@ -118,6 +114,5 @@ attachLanguageChange(() => {
|
|
|
118
114
|
export {
|
|
119
115
|
registerI18nLoader,
|
|
120
116
|
fetchI18nBundle,
|
|
121
|
-
registerI18nBundle,
|
|
122
117
|
getI18nBundleData,
|
|
123
118
|
};
|
|
File without changes
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { getAnimationMode as getConfiguredAnimationMode } from "../InitialConfiguration.js";
|
|
2
|
+
import AnimationMode from "../types/AnimationMode.js";
|
|
3
|
+
|
|
4
|
+
let curAnimationMode: AnimationMode;
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Returns the animation mode - "full", "basic", "minimal" or "none".
|
|
8
|
+
* @public
|
|
9
|
+
* @returns { AnimationMode }
|
|
10
|
+
*/
|
|
11
|
+
const getAnimationMode = (): AnimationMode => {
|
|
12
|
+
if (curAnimationMode === undefined) {
|
|
13
|
+
curAnimationMode = getConfiguredAnimationMode();
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
return curAnimationMode;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Sets the animation mode - "full", "basic", "minimal" or "none".
|
|
21
|
+
* @public
|
|
22
|
+
* @param { AnimationMode } animationMode
|
|
23
|
+
*/
|
|
24
|
+
const setAnimationMode = (animationMode: AnimationMode) => {
|
|
25
|
+
if (Object.values(AnimationMode).includes(animationMode)) {
|
|
26
|
+
curAnimationMode = animationMode;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export {
|
|
31
|
+
getAnimationMode,
|
|
32
|
+
setAnimationMode,
|
|
33
|
+
};
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
import CalendarType from "../types/CalendarType.js";
|
|
2
2
|
import { getCalendarType as getConfiguredCalendarType } from "../InitialConfiguration.js";
|
|
3
3
|
|
|
4
|
-
let calendarType;
|
|
4
|
+
let calendarType: CalendarType | undefined;
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Returns the configured or default calendar type.
|
|
8
|
+
* @public
|
|
9
|
+
* @returns { CalendarType } the effective calendar type
|
|
10
|
+
*/
|
|
11
|
+
const getCalendarType = (): CalendarType => {
|
|
7
12
|
if (calendarType === undefined) {
|
|
8
13
|
calendarType = getConfiguredCalendarType();
|
|
9
14
|
}
|
|
10
15
|
|
|
11
|
-
if (CalendarType
|
|
16
|
+
if (calendarType && calendarType in CalendarType) {
|
|
12
17
|
return calendarType;
|
|
13
18
|
}
|
|
14
19
|
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { getFormatSettings } from "../InitialConfiguration.js";
|
|
2
|
+
|
|
3
|
+
type FormatSettings = { firstDayOfWeek?: number };
|
|
4
|
+
|
|
5
|
+
let formatSettings: FormatSettings;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Returns the first day of the week from the configured format settings or based on the current locale.
|
|
9
|
+
* @public
|
|
10
|
+
* @returns {Number} 0 (Sunday) through 6 (Saturday)
|
|
11
|
+
*/
|
|
12
|
+
const getFirstDayOfWeek = (): number | undefined => {
|
|
13
|
+
if (formatSettings === undefined) {
|
|
14
|
+
formatSettings = getFormatSettings();
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
return formatSettings.firstDayOfWeek;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export { getFirstDayOfWeek }; // eslint-disable-line
|
|
21
|
+
export type { FormatSettings };
|