@ui5/webcomponents-base 0.0.0-cf50976ce → 0.0.0-d4d43327a
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 +167 -0
- package/bundle.esm.js +8 -2
- 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 +9 -0
- package/dist/Boot.js +43 -45
- 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 +145 -100
- 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 +112 -131
- 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 -86
- 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 +378 -0
- package/dist/UI5Element.js +917 -1007
- 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 -0
- package/dist/asset-registries/Icons.d.ts +30 -0
- package/dist/asset-registries/Icons.js +88 -119
- package/dist/asset-registries/Icons.js.map +1 -0
- package/dist/asset-registries/Illustrations.d.ts +17 -0
- package/dist/asset-registries/Illustrations.js +41 -25
- 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 -132
- package/dist/asset-registries/LocaleData.js.map +1 -0
- package/dist/asset-registries/Themes.d.ts +11 -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/Boot.4539908a.js +9 -0
- package/dist/assets/Boot.6335ce08.css +1 -0
- package/dist/assets/bundle.esm.a14a2ceb.js +52 -0
- package/dist/assets-meta/IconCollectionsAlias.d.ts +31 -0
- package/dist/assets-meta/IconCollectionsAlias.js +30 -10
- 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 +15 -0
- package/dist/config/FormatSettings.js +15 -9
- package/dist/config/FormatSettings.js.map +1 -0
- package/dist/config/Icons.d.ts +55 -0
- package/dist/config/Icons.js +88 -37
- 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 +26 -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 +28 -0
- package/dist/config/ThemeRoots.js.map +1 -0
- package/dist/decorators/customElement.d.ts +23 -0
- package/dist/decorators/customElement.js +31 -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 +25 -0
- package/dist/delegate/ResizeHandler.js +70 -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 +19 -0
- package/dist/features/F6Navigation.js +145 -104
- package/dist/features/F6Navigation.js.map +1 -0
- package/dist/features/LegacyDateFormats.d.ts +18 -0
- package/dist/features/LegacyDateFormats.js +20 -0
- package/dist/features/LegacyDateFormats.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 +25 -0
- package/dist/features/OpenUI5Support.js +92 -119
- package/dist/features/OpenUI5Support.js.map +1 -0
- package/dist/generated/VersionInfo.js +3 -3
- package/dist/generated/css/BusyIndicator.css.d.ts +3 -0
- package/dist/generated/css/BusyIndicator.css.js +7 -5
- package/dist/generated/css/BusyIndicator.css.js.map +1 -0
- package/dist/generated/css/FontFace.css.d.ts +3 -0
- package/dist/generated/css/FontFace.css.js +7 -5
- package/dist/generated/css/FontFace.css.js.map +1 -0
- package/dist/generated/css/OverrideFontFace.css.d.ts +3 -0
- package/dist/generated/css/OverrideFontFace.css.js +7 -5
- package/dist/generated/css/OverrideFontFace.css.js.map +1 -0
- package/dist/generated/css/SystemCSSVars.css.d.ts +3 -0
- package/dist/generated/css/SystemCSSVars.css.js +7 -5
- package/dist/generated/css/SystemCSSVars.css.js.map +1 -0
- package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +11 -0
- package/dist/getSharedResource.d.ts +11 -0
- package/dist/getSharedResource.js +21 -17
- package/dist/getSharedResource.js.map +1 -0
- package/dist/global.d.ts +38 -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/theming/CustomStyle.d.ts +6 -0
- package/dist/theming/CustomStyle.js +33 -45
- 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 +60 -64
- 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 +15 -5
- package/dist/types/CSSColor.js.map +1 -0
- package/dist/types/CalendarType.d.ts +37 -0
- package/dist/types/CalendarType.js +35 -18
- package/dist/types/CalendarType.js.map +1 -0
- package/dist/types/DOMReference.d.ts +17 -0
- package/dist/types/DOMReference.js +14 -13
- package/dist/types/DOMReference.js.map +1 -0
- package/dist/types/DataType.d.ts +25 -0
- package/dist/types/DataType.js +33 -26
- package/dist/types/DataType.js.map +1 -0
- package/dist/types/Float.d.ts +18 -0
- package/dist/types/Float.js +18 -10
- package/dist/types/Float.js.map +1 -0
- package/dist/types/Integer.d.ts +18 -0
- package/dist/types/Integer.js +18 -9
- package/dist/types/Integer.js.map +1 -0
- package/dist/types/InvisibleMessageMode.d.ts +25 -0
- package/dist/types/InvisibleMessageMode.js +20 -23
- 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 +41 -19
- 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 +25 -16
- package/dist/updateShadowRoot.js.map +1 -0
- package/dist/util/AriaLabelHelper.d.ts +15 -0
- package/dist/util/AriaLabelHelper.js +166 -34
- 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 +63 -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 -12
- 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 +398 -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 +51 -0
- 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 +47 -0
- package/dist/validateThemeRoot.js.map +1 -0
- package/lib/generate-styles/index.js +10 -5
- package/package-scripts.js +22 -7
- package/package.json +4 -4
- package/src/Boot.ts +76 -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.ts +203 -0
- 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} +54 -13
- 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/{StaticAreaItem.js → StaticAreaItem.ts} +30 -18
- package/src/{UI5Element.js → UI5Element.ts} +280 -166
- 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.ts +161 -0
- package/src/asset-registries/Illustrations.ts +75 -0
- package/src/asset-registries/{LocaleData.js → LocaleData.ts} +36 -28
- package/src/asset-registries/{Themes.js → Themes.ts} +19 -29
- package/src/asset-registries/{i18n.js → i18n.ts} +18 -23
- package/src/assets-meta/IconCollectionsAlias.ts +41 -0
- package/src/config/AnimationMode.ts +33 -0
- package/src/config/{CalendarType.js → CalendarType.ts} +8 -3
- package/src/config/FormatSettings.ts +35 -0
- package/src/config/Icons.ts +126 -0
- package/src/config/{Language.js → Language.ts} +22 -18
- package/src/config/NoConflict.ts +67 -0
- package/src/config/{RTL.js → RTL.ts} +18 -4
- package/src/config/Theme.ts +64 -0
- package/src/config/ThemeRoots.ts +41 -0
- package/src/decorators/customElement.ts +57 -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.ts +100 -0
- package/src/delegate/ScrollEnablement.ts +224 -0
- package/src/features/F6Navigation.ts +195 -0
- package/src/features/LegacyDateFormats.ts +40 -0
- package/src/features/OpenUI5Element.ts +11 -0
- package/src/features/OpenUI5Enablement.ts +117 -0
- package/src/features/OpenUI5Support.ts +153 -0
- package/src/generated/css/BusyIndicator.css.ts +9 -0
- package/src/generated/css/FontFace.css.ts +9 -0
- package/src/generated/css/OverrideFontFace.css.ts +9 -0
- package/src/generated/css/SystemCSSVars.css.ts +9 -0
- package/src/{getSharedResource.js → getSharedResource.ts} +13 -4
- package/src/global.d.ts +38 -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} +16 -12
- package/src/theming/{ThemeLoaded.js → ThemeLoaded.ts} +6 -4
- package/src/theming/{applyTheme.js → applyTheme.ts} +22 -11
- 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} +12 -1
- package/src/types/CalendarType.ts +38 -0
- package/src/types/{DOMReference.js → DOMReference.ts} +6 -2
- package/src/types/DataType.ts +51 -0
- package/src/types/Float.ts +25 -0
- package/src/types/Integer.ts +25 -0
- 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 +42 -0
- package/src/util/AriaLabelHelper.ts +218 -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 +92 -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} +10 -4
- 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/{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/getFastNavigationGroups.ts +63 -0
- 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.ts +58 -0
- package/tsconfig.json +13 -0
- package/dist/RenderScheduler.js +0 -44
- package/dist/animations/config.js +0 -5
- package/dist/assets/bundle.esm.83f057b4.js +0 -43
- package/dist/types/CSSSize.js +0 -9
- package/dist/types/PopupState.js +0 -37
- 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/hash.txt +0 -1
- package/src/Boot.js +0 -59
- package/src/DOMObserver.js +0 -65
- package/src/Device.js +0 -121
- 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/Icons.js +0 -135
- package/src/asset-registries/Illustrations.js +0 -30
- package/src/assets-meta/IconCollectionsAlias.js +0 -18
- package/src/config/AnimationMode.js +0 -23
- package/src/config/FormatSettings.js +0 -13
- package/src/config/Icons.js +0 -52
- package/src/config/NoConflict.js +0 -51
- package/src/config/Theme.js +0 -53
- package/src/delegate/ResizeHandler.js +0 -106
- package/src/delegate/ScrollEnablement.js +0 -188
- package/src/features/F6Navigation.js +0 -110
- package/src/features/OpenUI5Enablement.js +0 -119
- package/src/features/OpenUI5Support.js +0 -125
- 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 -9
- package/src/types/CalendarType.js +0 -22
- package/src/types/DataType.js +0 -37
- package/src/types/Float.js +0 -14
- package/src/types/Integer.js +0 -13
- package/src/types/InvisibleMessageMode.js +0 -30
- package/src/types/ItemNavigationBehavior.js +0 -16
- package/src/types/NavigationMode.js +0 -7
- package/src/types/PopupState.js +0 -37
- package/src/types/ValueState.js +0 -22
- package/src/updateShadowRoot.js +0 -29
- package/src/util/AriaLabelHelper.js +0 -39
- 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
- /package/src/{AssetRegistry.js → AssetRegistry.ts} +0 -0
- /package/src/{StaticArea.js → StaticArea.ts} +0 -0
- /package/src/{SystemCSSVars.js → SystemCSSVars.ts} +0 -0
- /package/src/{Theming.js → Theming.ts} +0 -0
- /package/src/util/{getActiveElement.js → getActiveElement.ts} +0 -0
- /package/src/util/{getEffectiveScrollbarStyle.js → getEffectiveScrollbarStyle.ts} +0 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { getFormatSettings } from "../InitialConfiguration.js";
|
|
2
|
+
import type { FormatSettings } from "../config/FormatSettings.js";
|
|
3
|
+
import { registerFeature } from "../FeaturesRegistry.js";
|
|
4
|
+
|
|
5
|
+
// Allows specifying the customizing data for Islamic calendar support
|
|
6
|
+
// dateFormat - The date format
|
|
7
|
+
// islamicMonthStart - The Islamic date in string format // 14360101
|
|
8
|
+
// gregDate - Corresponding Gregorian date to the Islamic one in string format // 20141024
|
|
9
|
+
type IslamicToGregorianMapping = {
|
|
10
|
+
dateFormat: string,
|
|
11
|
+
islamicMonthStart: string,
|
|
12
|
+
gregDate: string,
|
|
13
|
+
};
|
|
14
|
+
type LegacyDateCalendarCustomizing = Array<IslamicToGregorianMapping>;
|
|
15
|
+
|
|
16
|
+
let formatSettings: FormatSettings;
|
|
17
|
+
|
|
18
|
+
class LegacyDateFormats {
|
|
19
|
+
/**
|
|
20
|
+
* Returns the currently set customizing data for Islamic calendar support
|
|
21
|
+
*
|
|
22
|
+
* @return {object[]} Returns an array that contains the customizing data.
|
|
23
|
+
* @public
|
|
24
|
+
*/
|
|
25
|
+
static getLegacyDateCalendarCustomizing(this: void): LegacyDateCalendarCustomizing {
|
|
26
|
+
if (formatSettings === undefined) {
|
|
27
|
+
formatSettings = getFormatSettings();
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return formatSettings.legacyDateCalendarCustomizing || [];
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
registerFeature("LegacyDateFormats", LegacyDateFormats);
|
|
35
|
+
|
|
36
|
+
export default LegacyDateFormats;
|
|
37
|
+
export type {
|
|
38
|
+
FormatSettings,
|
|
39
|
+
LegacyDateCalendarCustomizing,
|
|
40
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import UI5Element from "../UI5Element.js";
|
|
2
|
+
|
|
3
|
+
class OpenUI5Element extends UI5Element {
|
|
4
|
+
__isBusy?: boolean;
|
|
5
|
+
isOpenUI5Component?: boolean;
|
|
6
|
+
__suppressFocusIn?: () => void;
|
|
7
|
+
__suppressFocusBack?: (e: KeyboardEvent) => void;
|
|
8
|
+
__redirectFocus?: boolean;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export default OpenUI5Element;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { TemplateResult } from "lit-html";
|
|
2
|
+
import { registerFeature } from "../FeaturesRegistry.js";
|
|
3
|
+
import BusyIndicatorStyles from "../generated/css/BusyIndicator.css.js";
|
|
4
|
+
import merge from "../thirdparty/merge.js";
|
|
5
|
+
import {
|
|
6
|
+
isTabPrevious,
|
|
7
|
+
} from "../Keys.js";
|
|
8
|
+
|
|
9
|
+
import type UI5Element from "../UI5Element.js";
|
|
10
|
+
import type OpenUI5Element from "./OpenUI5Element.js";
|
|
11
|
+
|
|
12
|
+
const busyIndicatorMetadata = {
|
|
13
|
+
properties: {
|
|
14
|
+
__isBusy: {
|
|
15
|
+
type: Boolean,
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
class OpenUI5Enablement {
|
|
21
|
+
static wrapTemplateResultInBusyMarkup(html: (strings: TemplateStringsArray, ...values: Array<unknown>) => TemplateResult, host: OpenUI5Element, templateResult: TemplateResult) {
|
|
22
|
+
if (host.isOpenUI5Component && host.__isBusy) {
|
|
23
|
+
templateResult = html`
|
|
24
|
+
<div class="busy-indicator-wrapper">
|
|
25
|
+
<span tabindex="0" busy-indicator-before-span @focusin=${host.__suppressFocusIn}></span>
|
|
26
|
+
${templateResult}
|
|
27
|
+
<div class="busy-indicator-overlay"></div>
|
|
28
|
+
<div busy-indicator
|
|
29
|
+
class="busy-indicator-busy-area"
|
|
30
|
+
tabindex="0"
|
|
31
|
+
role="progressbar"
|
|
32
|
+
@keydown=${host.__suppressFocusBack}
|
|
33
|
+
aria-valuemin="0"
|
|
34
|
+
aria-valuemax="100"
|
|
35
|
+
aria-valuetext="Busy">
|
|
36
|
+
<div>
|
|
37
|
+
<div class="busy-indicator-circle circle-animation-0"></div>
|
|
38
|
+
<div class="busy-indicator-circle circle-animation-1"></div>
|
|
39
|
+
<div class="busy-indicator-circle circle-animation-2"></div>
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
</div>`;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return templateResult;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
static enrichBusyIndicatorSettings(klass: typeof UI5Element) {
|
|
49
|
+
OpenUI5Enablement.enrichBusyIndicatorMetadata(klass);
|
|
50
|
+
OpenUI5Enablement.enrichBusyIndicatorMethods(klass.prototype);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
static enrichBusyIndicatorMetadata(klass: typeof UI5Element) {
|
|
54
|
+
klass.metadata = merge(klass.metadata, busyIndicatorMetadata);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
static enrichBusyIndicatorMethods(UI5ElementPrototype: typeof OpenUI5Element.prototype) {
|
|
58
|
+
Object.defineProperties(UI5ElementPrototype, {
|
|
59
|
+
"__redirectFocus": { value: true, writable: true },
|
|
60
|
+
"__suppressFocusBack": {
|
|
61
|
+
get() {
|
|
62
|
+
return {
|
|
63
|
+
handleEvent: (e: KeyboardEvent) => {
|
|
64
|
+
if (isTabPrevious(e)) {
|
|
65
|
+
const beforeElem = this.shadowRoot.querySelector("[busy-indicator-before-span]");
|
|
66
|
+
this.__redirectFocus = false;
|
|
67
|
+
beforeElem.focus();
|
|
68
|
+
this.__redirectFocus = true;
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
capture: true,
|
|
72
|
+
passive: false,
|
|
73
|
+
};
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
"isOpenUI5Component": { get: () => { return true; } },
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
UI5ElementPrototype.__suppressFocusIn = function handleFocusIn() {
|
|
80
|
+
const busyIndicator = this.shadowRoot?.querySelector("[busy-indicator]") as HTMLElement;
|
|
81
|
+
if (busyIndicator && this.__redirectFocus) {
|
|
82
|
+
busyIndicator.focus();
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
UI5ElementPrototype.getDomRef = function getDomRef() {
|
|
87
|
+
// If a component set _getRealDomRef to its children, use the return value of this function
|
|
88
|
+
if (typeof this._getRealDomRef === "function") {
|
|
89
|
+
return this._getRealDomRef();
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
if (!this.shadowRoot || this.shadowRoot.children.length === 0) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
const children = [...this.shadowRoot.children].filter(child => !["link", "style"].includes(child.localName));
|
|
97
|
+
|
|
98
|
+
if (children.length !== 1) {
|
|
99
|
+
console.warn(`The shadow DOM for ${(this.constructor as typeof UI5Element).getMetadata().getTag()} does not have a top level element, the getDomRef() method might not work as expected`); // eslint-disable-line
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
if (this.__isBusy) {
|
|
103
|
+
return children[0].querySelector(".busy-indicator-wrapper > :not([busy-indicator-before-span]):not(.busy-indicator-overlay):not(.busy-indicator-busy-area)") as HTMLElement;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
return children[0] as HTMLElement;
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
static getBusyIndicatorStyles() {
|
|
111
|
+
return BusyIndicatorStyles;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
registerFeature("OpenUI5Enablement", OpenUI5Enablement);
|
|
116
|
+
|
|
117
|
+
export default OpenUI5Enablement;
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { registerFeature } from "../FeaturesRegistry.js";
|
|
2
|
+
import { setTheme } from "../config/Theme.js";
|
|
3
|
+
import { getCurrentZIndex } from "../util/PopupUtils.js";
|
|
4
|
+
import { CLDRData } from "../asset-registries/LocaleData.js";
|
|
5
|
+
import type { LegacyDateCalendarCustomizing } from "../features/LegacyDateFormats.js";
|
|
6
|
+
|
|
7
|
+
type OpenUI5Popup = {
|
|
8
|
+
setInitialZIndex: (zIndex: number) => void,
|
|
9
|
+
getNextZIndex: () => number,
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
type OpenUI5Core = {
|
|
13
|
+
attachInit: (callback: () => void) => void,
|
|
14
|
+
attachThemeChanged: (callback: () => Promise<void>) => void,
|
|
15
|
+
getConfiguration: () => OpenUI5CoreConfiguration,
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
type OpenUI5CoreConfiguration = {
|
|
19
|
+
getAnimationMode: () => string,
|
|
20
|
+
getLanguage: () => string,
|
|
21
|
+
getTheme: () => string,
|
|
22
|
+
getThemeRoot: () => string,
|
|
23
|
+
getRTL: () => string,
|
|
24
|
+
getCalendarType: () => string,
|
|
25
|
+
getLocale: () => string,
|
|
26
|
+
getFormatSettings: () => {
|
|
27
|
+
getLegacyDateCalendarCustomizing: () => LegacyDateCalendarCustomizing;
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
type LocaleData = {
|
|
32
|
+
getInstance: (locale: string) => Locale,
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
type Locale = {
|
|
36
|
+
getFirstDayOfWeek: () => number,
|
|
37
|
+
_get: () => CLDRData,
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const getCore = () => {
|
|
41
|
+
return window.sap?.ui?.getCore?.() as OpenUI5Core;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
class OpenUI5Support {
|
|
45
|
+
static isLoaded() {
|
|
46
|
+
return !!getCore();
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
static init() {
|
|
50
|
+
const core = getCore();
|
|
51
|
+
if (!core) {
|
|
52
|
+
return Promise.resolve();
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return new Promise<void>(resolve => {
|
|
56
|
+
core.attachInit(() => {
|
|
57
|
+
window.sap.ui.require(["sap/ui/core/LocaleData", "sap/ui/core/Popup"], (LocaleData: LocaleData, Popup: OpenUI5Popup) => {
|
|
58
|
+
Popup.setInitialZIndex(getCurrentZIndex());
|
|
59
|
+
resolve();
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
static getConfigurationSettingsObject() {
|
|
66
|
+
const core = getCore();
|
|
67
|
+
if (!core) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const config = core.getConfiguration();
|
|
72
|
+
const LocaleData = window.sap.ui.require("sap/ui/core/LocaleData");
|
|
73
|
+
|
|
74
|
+
return {
|
|
75
|
+
animationMode: config.getAnimationMode(),
|
|
76
|
+
language: config.getLanguage(),
|
|
77
|
+
theme: config.getTheme(),
|
|
78
|
+
themeRoot: config.getThemeRoot(),
|
|
79
|
+
rtl: config.getRTL(),
|
|
80
|
+
calendarType: config.getCalendarType(),
|
|
81
|
+
formatSettings: {
|
|
82
|
+
firstDayOfWeek: LocaleData ? LocaleData.getInstance(config.getLocale()).getFirstDayOfWeek() : undefined,
|
|
83
|
+
legacyDateCalendarCustomizing: config.getFormatSettings().getLegacyDateCalendarCustomizing(),
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
static getLocaleDataObject() {
|
|
89
|
+
const core = getCore();
|
|
90
|
+
if (!core) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
const config = core.getConfiguration();
|
|
95
|
+
const LocaleData = window.sap.ui.require("sap/ui/core/LocaleData") as LocaleData;
|
|
96
|
+
return LocaleData.getInstance(config.getLocale())._get();
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
static _listenForThemeChange() {
|
|
100
|
+
const core = getCore();
|
|
101
|
+
const config = core.getConfiguration();
|
|
102
|
+
core.attachThemeChanged(async () => {
|
|
103
|
+
await setTheme(config.getTheme());
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
static attachListeners() {
|
|
108
|
+
const core = getCore();
|
|
109
|
+
if (!core) {
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
OpenUI5Support._listenForThemeChange();
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
static cssVariablesLoaded() {
|
|
117
|
+
const core = getCore();
|
|
118
|
+
if (!core) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
const link = [...document.head.children].find(el => el.id === "sap-ui-theme-sap.ui.core") as HTMLLinkElement; // more reliable than querySelector early
|
|
123
|
+
if (!link) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
return !!link.href.match(/\/css(-|_)variables\.css/);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
static getNextZIndex() {
|
|
131
|
+
const core = getCore();
|
|
132
|
+
if (!core) {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
const Popup = window.sap.ui.require("sap/ui/core/Popup") as OpenUI5Popup;
|
|
137
|
+
return Popup.getNextZIndex();
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
static setInitialZIndex() {
|
|
141
|
+
const core = getCore();
|
|
142
|
+
if (!core) {
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
const Popup = window.sap.ui.require("sap/ui/core/Popup") as OpenUI5Popup;
|
|
147
|
+
Popup.setInitialZIndex(getCurrentZIndex());
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
registerFeature("OpenUI5Support", OpenUI5Support);
|
|
152
|
+
|
|
153
|
+
export default OpenUI5Support;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { StyleData } from "../../types.js";
|
|
2
|
+
|
|
3
|
+
const styleData: StyleData = {
|
|
4
|
+
packageName: "@ui5/webcomponents-base",
|
|
5
|
+
fileName: "BusyIndicator.css",
|
|
6
|
+
content: `.busy-indicator-wrapper{position:relative;height:100%;width:100%}.busy-indicator-overlay{display:var(--ui5_web_components_busy_indicator_display);position:absolute;inset:0;background:var(--ui5_web_components_busy_indicator_background-color);z-index:99}.busy-indicator-busy-area{display:var(--ui5_web_components_busy_indicator_display);position:absolute;z-index:99;inset:0;justify-content:center;align-items:center;background-color:inherit;flex-direction:column;color:var(--_ui5_busy_indicator_color)}:host([__is-busy]) .busy-indicator-wrapper>:not(.busy-indicator-busy-area):not(.busy-indicator-overlay):not([busy-indicator-before-span]){--ui5_web_components_busy_indicator_display:none}.busy-indicator-busy-area:focus{outline:var(--_ui5_busy_indicator_focus_outline);outline-offset:-.125rem}.busy-indicator-circle{width:1rem;height:1rem;display:inline-block;background-color:currentColor;border-radius:50%}.circle-animation-0{animation:grow 1.6s infinite cubic-bezier(.32,.06,.85,1.11)}.circle-animation-1{animation:grow 1.6s infinite cubic-bezier(.32,.06,.85,1.11);animation-delay:.2s}.circle-animation-2{animation:grow 1.6s infinite cubic-bezier(.32,.06,.85,1.11);animation-delay:.4s}.sapUiLocalBusy{--ui5_web_components_busy_indicator_display:none}.busy-indicator-wrapper [ui5-busy-indicator]{display:none}@keyframes grow{0%,100%,50%{-webkit-transform:scale(.5);-moz-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}25%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}`,
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export default styleData;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { StyleData } from "../../types.js";
|
|
2
|
+
|
|
3
|
+
const styleData: StyleData = {
|
|
4
|
+
packageName: "@ui5/webcomponents-base",
|
|
5
|
+
fileName: "FontFace.css",
|
|
6
|
+
content: `@font-face{font-family:"72";font-style:normal;font-weight:400;src:local("72"),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72full";font-style:normal;font-weight:400;src:local('72-full'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72";font-style:normal;font-weight:700;src:local('72-Bold'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72full";font-style:normal;font-weight:700;src:local('72-Bold-full'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Bold';font-style:normal;src:local('72-Bold'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Boldfull';font-style:normal;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Light';font-style:normal;src:local('72-Light'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Lightfull';font-style:normal;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72Black";font-style:bold;font-weight:900;src:local('72Black'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black.woff2?ui5-webcomponents) format("woff2")}`,
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export default styleData;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { StyleData } from "../../types.js";
|
|
2
|
+
|
|
3
|
+
const styleData: StyleData = {
|
|
4
|
+
packageName: "@ui5/webcomponents-base",
|
|
5
|
+
fileName: "OverrideFontFace.css",
|
|
6
|
+
content: `@font-face{font-family:'72override';unicode-range:U+0102-0103,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EB7,U+1EB8-1EC7,U+1EC8-1ECB,U+1ECC-1EE3,U+1EE4-1EF1,U+1EF4-1EF7;src:local('Arial'),local('Helvetica'),local('sans-serif')}`,
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export default styleData;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { StyleData } from "../../types.js";
|
|
2
|
+
|
|
3
|
+
const styleData: StyleData = {
|
|
4
|
+
packageName: "@ui5/webcomponents-base",
|
|
5
|
+
fileName: "SystemCSSVars.css",
|
|
6
|
+
content: `:root{--_ui5_content_density:cozy}.sapUiSizeCompact,.ui5-content-density-compact,[data-ui5-compact-size]{--_ui5_content_density:compact}[dir=rtl]{--_ui5_dir:rtl}[dir=ltr]{--_ui5_dir:ltr}`,
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export default styleData;
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import getSingletonElementInstance from "./util/getSingletonElementInstance.js";
|
|
2
2
|
|
|
3
|
-
const getSharedResourcesInstance = () =>
|
|
3
|
+
const getSharedResourcesInstance = (): Record<string, unknown> | null => {
|
|
4
|
+
if (typeof document === "undefined") {
|
|
5
|
+
return null;
|
|
6
|
+
}
|
|
7
|
+
return getSingletonElementInstance("ui5-shared-resources", document.head) as unknown as Record<string, unknown>;
|
|
8
|
+
};
|
|
4
9
|
|
|
5
10
|
/**
|
|
6
11
|
* Use this method to initialize/get resources that you would like to be shared among UI5 Web Components runtime instances.
|
|
@@ -11,9 +16,13 @@ const getSharedResourcesInstance = () => getSingletonElementInstance("ui5-shared
|
|
|
11
16
|
* @param initialValue Object or primitive that will be used as an initial value if the resource does not exist
|
|
12
17
|
* @returns {*}
|
|
13
18
|
*/
|
|
14
|
-
const getSharedResource = (namespace, initialValue) => {
|
|
19
|
+
const getSharedResource = <T>(namespace: string, initialValue: T): T => {
|
|
15
20
|
const parts = namespace.split(".");
|
|
16
|
-
let current = getSharedResourcesInstance()
|
|
21
|
+
let current = getSharedResourcesInstance() as Record<string, any>;
|
|
22
|
+
|
|
23
|
+
if (!current) {
|
|
24
|
+
return initialValue;
|
|
25
|
+
}
|
|
17
26
|
|
|
18
27
|
for (let i = 0; i < parts.length; i++) {
|
|
19
28
|
const part = parts[i];
|
|
@@ -24,7 +33,7 @@ const getSharedResource = (namespace, initialValue) => {
|
|
|
24
33
|
current = current[part];
|
|
25
34
|
}
|
|
26
35
|
|
|
27
|
-
return current;
|
|
36
|
+
return current as T;
|
|
28
37
|
};
|
|
29
38
|
|
|
30
39
|
export default getSharedResource;
|
package/src/global.d.ts
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
|
|
3
|
+
declare global {
|
|
4
|
+
|
|
5
|
+
type VersionInfo = {
|
|
6
|
+
version: string,
|
|
7
|
+
major: number,
|
|
8
|
+
minor: number,
|
|
9
|
+
patch: number,
|
|
10
|
+
suffix: string,
|
|
11
|
+
isNext: boolean,
|
|
12
|
+
buildTime: number,
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
interface Window {
|
|
16
|
+
sap: any;
|
|
17
|
+
chrome: any;
|
|
18
|
+
v8: any;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
module "*generated/AssetParameters.js" {
|
|
22
|
+
const DEFAULT_THEME: string;
|
|
23
|
+
const DEFAULT_LANGUAGE: string;
|
|
24
|
+
const DEFAULT_LOCALE: string;
|
|
25
|
+
const SUPPORTED_LOCALES: Array<string>;
|
|
26
|
+
export {
|
|
27
|
+
DEFAULT_THEME,
|
|
28
|
+
DEFAULT_LANGUAGE,
|
|
29
|
+
DEFAULT_LOCALE,
|
|
30
|
+
SUPPORTED_LOCALES,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
module "*generated/VersionInfo.js" {
|
|
35
|
+
const content: VersionInfo;
|
|
36
|
+
export default content;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -1,16 +1,25 @@
|
|
|
1
1
|
import { registerI18nLoader, fetchI18nBundle, getI18nBundleData } from "./asset-registries/i18n.js";
|
|
2
2
|
import formatMessage from "./util/formatMessage.js";
|
|
3
3
|
|
|
4
|
-
const I18nBundleInstances = new Map();
|
|
4
|
+
const I18nBundleInstances = new Map<string, I18nBundle>();
|
|
5
5
|
|
|
6
|
-
let customGetI18nBundle;
|
|
6
|
+
let customGetI18nBundle: I18nBundleGetter;
|
|
7
|
+
|
|
8
|
+
type I18nText = {
|
|
9
|
+
key: string,
|
|
10
|
+
defaultText: string,
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
type I18nBundleGetter = (packageName: string) => Promise<I18nBundle>;
|
|
7
14
|
|
|
8
15
|
/**
|
|
9
16
|
* @class
|
|
10
17
|
* @public
|
|
11
18
|
*/
|
|
12
19
|
class I18nBundle {
|
|
13
|
-
|
|
20
|
+
packageName: string;
|
|
21
|
+
|
|
22
|
+
constructor(packageName: string) {
|
|
14
23
|
this.packageName = packageName;
|
|
15
24
|
}
|
|
16
25
|
|
|
@@ -20,9 +29,9 @@ class I18nBundle {
|
|
|
20
29
|
* @public
|
|
21
30
|
* @param {Object|String} textObj key/defaultText pair or just the key
|
|
22
31
|
* @param params Values for the placeholders
|
|
23
|
-
* @returns {
|
|
32
|
+
* @returns {string}
|
|
24
33
|
*/
|
|
25
|
-
getText(textObj, ...params) {
|
|
34
|
+
getText(textObj: I18nText, ...params: Array<number | string>): string {
|
|
26
35
|
if (typeof textObj === "string") {
|
|
27
36
|
textObj = { key: textObj, defaultText: textObj };
|
|
28
37
|
}
|
|
@@ -37,13 +46,20 @@ class I18nBundle {
|
|
|
37
46
|
}
|
|
38
47
|
const messageText = bundle && bundle[textObj.key] ? bundle[textObj.key] : (textObj.defaultText || textObj.key);
|
|
39
48
|
|
|
40
|
-
return
|
|
49
|
+
return formatMessage(messageText, params);
|
|
41
50
|
}
|
|
42
51
|
}
|
|
43
52
|
|
|
44
|
-
|
|
53
|
+
/**
|
|
54
|
+
* Returns the I18nBundle instance for the given package synchronously.
|
|
55
|
+
*
|
|
56
|
+
* @public
|
|
57
|
+
* @param packageName
|
|
58
|
+
* @returns { I18nBundle }
|
|
59
|
+
*/
|
|
60
|
+
const getI18nBundleSync = (packageName: string): I18nBundle => {
|
|
45
61
|
if (I18nBundleInstances.has(packageName)) {
|
|
46
|
-
return I18nBundleInstances.get(packageName)
|
|
62
|
+
return I18nBundleInstances.get(packageName)!;
|
|
47
63
|
}
|
|
48
64
|
|
|
49
65
|
const i18nBundle = new I18nBundle(packageName);
|
|
@@ -52,25 +68,13 @@ const getI18nBundleSync = packageName => {
|
|
|
52
68
|
};
|
|
53
69
|
|
|
54
70
|
/**
|
|
55
|
-
*
|
|
56
|
-
* If this function is called, the custom implementation will be used for all components and will completely
|
|
57
|
-
* replace the default implementation.
|
|
58
|
-
*
|
|
59
|
-
* @public
|
|
60
|
-
* @param customGet the function to use instead of the standard getI18nBundle implementation
|
|
61
|
-
*/
|
|
62
|
-
const registerCustomI18nBundleGetter = customGet => {
|
|
63
|
-
customGetI18nBundle = customGet;
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Fetches and returns the I18nBundle instance for the given package
|
|
71
|
+
* Fetches and returns the I18nBundle instance for the given package.
|
|
68
72
|
*
|
|
69
73
|
* @public
|
|
70
74
|
* @param packageName
|
|
71
|
-
* @returns {Promise<I18nBundle>}
|
|
75
|
+
* @returns { Promise<I18nBundle> }
|
|
72
76
|
*/
|
|
73
|
-
const getI18nBundle = async packageName => {
|
|
77
|
+
const getI18nBundle = async (packageName: string): Promise<I18nBundle> => {
|
|
74
78
|
if (customGetI18nBundle) {
|
|
75
79
|
return customGetI18nBundle(packageName);
|
|
76
80
|
}
|
|
@@ -79,8 +83,26 @@ const getI18nBundle = async packageName => {
|
|
|
79
83
|
return getI18nBundleSync(packageName);
|
|
80
84
|
};
|
|
81
85
|
|
|
86
|
+
/**
|
|
87
|
+
* Allows developers to provide a custom getI18nBundle implementation
|
|
88
|
+
* If this function is called, the custom implementation will be used for all components and will completely
|
|
89
|
+
* replace the default implementation.
|
|
90
|
+
*
|
|
91
|
+
* @public
|
|
92
|
+
* @param customGet the function to use instead of the standard getI18nBundle implementation
|
|
93
|
+
*/
|
|
94
|
+
const registerCustomI18nBundleGetter = (customGet: I18nBundleGetter) => {
|
|
95
|
+
customGetI18nBundle = customGet;
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
export default I18nBundle;
|
|
99
|
+
|
|
82
100
|
export {
|
|
83
101
|
registerI18nLoader,
|
|
84
102
|
getI18nBundle,
|
|
85
103
|
registerCustomI18nBundleGetter,
|
|
86
104
|
};
|
|
105
|
+
|
|
106
|
+
export type {
|
|
107
|
+
I18nText,
|
|
108
|
+
};
|
|
@@ -1,15 +1,25 @@
|
|
|
1
|
+
import { DEFAULT_LANGUAGE } from "../generated/AssetParameters.js";
|
|
2
|
+
|
|
1
3
|
const rLocale = /^((?:[A-Z]{2,3}(?:-[A-Z]{3}){0,3})|[A-Z]{4}|[A-Z]{5,8})(?:-([A-Z]{4}))?(?:-([A-Z]{2}|[0-9]{3}))?((?:-[0-9A-Z]{5,8}|-[0-9][0-9A-Z]{3})*)((?:-[0-9A-WYZ](?:-[0-9A-Z]{2,8})+)*)(?:-(X(?:-[0-9A-Z]{1,8})+))?$/i;
|
|
2
4
|
|
|
3
5
|
class Locale {
|
|
4
|
-
|
|
6
|
+
sLocaleId: string;
|
|
7
|
+
sLanguage: string;
|
|
8
|
+
sScript: string;
|
|
9
|
+
sRegion: string;
|
|
10
|
+
sVariant: string | null;
|
|
11
|
+
sExtension: string | null;
|
|
12
|
+
sPrivateUse: string | null;
|
|
13
|
+
|
|
14
|
+
constructor(sLocaleId: string) {
|
|
5
15
|
const aResult = rLocale.exec(sLocaleId.replace(/_/g, "-"));
|
|
6
16
|
if (aResult === null) {
|
|
7
17
|
throw new Error(`The given language ${sLocaleId} does not adhere to BCP-47.`);
|
|
8
18
|
}
|
|
9
19
|
this.sLocaleId = sLocaleId;
|
|
10
|
-
this.sLanguage = aResult[1] ||
|
|
11
|
-
this.sScript = aResult[2] ||
|
|
12
|
-
this.sRegion = aResult[3] ||
|
|
20
|
+
this.sLanguage = aResult[1] || DEFAULT_LANGUAGE;
|
|
21
|
+
this.sScript = aResult[2] || "";
|
|
22
|
+
this.sRegion = aResult[3] || "";
|
|
13
23
|
this.sVariant = (aResult[4] && aResult[4].slice(1)) || null;
|
|
14
24
|
this.sExtension = (aResult[5] && aResult[5].slice(1)) || null;
|
|
15
25
|
this.sPrivateUse = aResult[6] || null;
|
|
@@ -62,7 +72,7 @@ class Locale {
|
|
|
62
72
|
return this.sPrivateUse ? this.sPrivateUse.slice(2).split("-") : [];
|
|
63
73
|
}
|
|
64
74
|
|
|
65
|
-
hasPrivateUseSubtag(sSubtag) {
|
|
75
|
+
hasPrivateUseSubtag(sSubtag: string) {
|
|
66
76
|
return this.getPrivateUseSubtags().indexOf(sSubtag) >= 0;
|
|
67
77
|
}
|
|
68
78
|
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type UI5Element from "../UI5Element";
|
|
2
|
+
|
|
3
|
+
const rtlAwareSet = new Set<typeof UI5Element>();
|
|
4
|
+
|
|
5
|
+
const markAsRtlAware = (klass: typeof UI5Element) => {
|
|
6
|
+
rtlAwareSet.add(klass);
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
const isRtlAware = (klass: typeof UI5Element) => {
|
|
10
|
+
return rtlAwareSet.has(klass);
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export {
|
|
14
|
+
markAsRtlAware,
|
|
15
|
+
isRtlAware,
|
|
16
|
+
};
|
|
@@ -3,12 +3,13 @@ import { fireDirectionChange } from "./directionChange.js";
|
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Re-renders all RTL-aware UI5 Elements.
|
|
6
|
-
* Call this method whenever you change the "dir" property anywhere in your HTML page
|
|
7
|
-
* Example: document.body.dir = "rtl"; applyDirection();
|
|
8
6
|
*
|
|
7
|
+
* <b>Note:</b> Call this method whenever you change the "dir" property anywhere in your HTML page.
|
|
8
|
+
* <b>Example:</b> <code>document.body.dir = "rtl"; applyDirection();</code>
|
|
9
|
+
* @public
|
|
9
10
|
* @returns {Promise<void>}
|
|
10
11
|
*/
|
|
11
|
-
const applyDirection = async () => {
|
|
12
|
+
const applyDirection = async (): Promise<void> => {
|
|
12
13
|
const listenersResults = fireDirectionChange();
|
|
13
14
|
await Promise.all(listenersResults);
|
|
14
15
|
await reRenderAllUI5Elements({ rtlAware: true });
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import EventProvider from "../EventProvider.js";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
type DirectionChangeCallback = () => void;
|
|
4
|
+
|
|
5
|
+
const eventProvider = new EventProvider<undefined, void>();
|
|
4
6
|
const DIR_CHANGE = "directionChange";
|
|
5
7
|
|
|
6
8
|
/**
|
|
@@ -8,7 +10,7 @@ const DIR_CHANGE = "directionChange";
|
|
|
8
10
|
* @public
|
|
9
11
|
* @param listener
|
|
10
12
|
*/
|
|
11
|
-
const attachDirectionChange = listener => {
|
|
13
|
+
const attachDirectionChange = (listener: DirectionChangeCallback) => {
|
|
12
14
|
eventProvider.attachEvent(DIR_CHANGE, listener);
|
|
13
15
|
};
|
|
14
16
|
|
|
@@ -17,12 +19,12 @@ const attachDirectionChange = listener => {
|
|
|
17
19
|
* @public
|
|
18
20
|
* @param listener
|
|
19
21
|
*/
|
|
20
|
-
const detachDirectionChange = listener => {
|
|
22
|
+
const detachDirectionChange = (listener: DirectionChangeCallback) => {
|
|
21
23
|
eventProvider.detachEvent(DIR_CHANGE, listener);
|
|
22
24
|
};
|
|
23
25
|
|
|
24
26
|
const fireDirectionChange = () => {
|
|
25
|
-
return eventProvider.fireEvent(DIR_CHANGE);
|
|
27
|
+
return eventProvider.fireEvent(DIR_CHANGE, undefined);
|
|
26
28
|
};
|
|
27
29
|
|
|
28
30
|
export {
|
|
@@ -2,7 +2,7 @@ import { getRTL } from "../config/RTL.js";
|
|
|
2
2
|
|
|
3
3
|
const GLOBAL_DIR_CSS_VAR = "--_ui5_dir";
|
|
4
4
|
|
|
5
|
-
const getEffectiveDir = element => {
|
|
5
|
+
const getEffectiveDir = (element: HTMLElement) => {
|
|
6
6
|
const doc = window.document;
|
|
7
7
|
const dirValues = ["ltr", "rtl"]; // exclude "auto" and "" from all calculations
|
|
8
8
|
const locallyAppliedDir = getComputedStyle(element).getPropertyValue(GLOBAL_DIR_CSS_VAR);
|