@ui5/webcomponents-base 0.0.0-50304f58c → 0.0.0-51202adee
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 +4 -0
- package/CHANGELOG.md +426 -0
- package/README.md +53 -7
- package/bundle.esm.js +25 -21
- package/dist/AssetRegistry.d.ts +5 -0
- package/dist/AssetRegistry.js +6 -12
- package/dist/AssetRegistry.js.map +1 -0
- package/dist/Boot.d.ts +8 -0
- package/dist/Boot.js +44 -0
- package/dist/Boot.js.map +1 -0
- package/dist/CSP.d.ts +30 -0
- package/dist/CSP.js +51 -0
- package/dist/CSP.js.map +1 -0
- package/dist/CustomElementsRegistry.d.ts +5 -0
- package/dist/CustomElementsRegistry.js +69 -30
- package/dist/CustomElementsRegistry.js.map +1 -0
- package/dist/CustomElementsScope.d.ts +7 -0
- package/dist/CustomElementsScope.js +11 -108
- package/dist/CustomElementsScope.js.map +1 -0
- package/dist/CustomElementsScopeUtils.d.ts +55 -0
- package/dist/CustomElementsScopeUtils.js +90 -0
- package/dist/CustomElementsScopeUtils.js.map +1 -0
- package/dist/DOMObserver.d.ts +11 -0
- package/dist/DOMObserver.js +23 -0
- package/dist/DOMObserver.js.map +1 -0
- package/dist/Device.d.ts +12 -0
- package/dist/Device.js +84 -816
- package/dist/Device.js.map +1 -0
- package/dist/EventProvider.d.ts +25 -0
- package/dist/EventProvider.js +67 -78
- package/dist/EventProvider.js.map +1 -0
- package/dist/FeaturesRegistry.d.ts +3 -0
- package/dist/FeaturesRegistry.js +5 -7
- package/dist/FeaturesRegistry.js.map +1 -0
- package/dist/FontFace.d.ts +2 -0
- package/dist/FontFace.js +17 -110
- package/dist/FontFace.js.map +1 -0
- package/dist/InitialConfiguration.d.ts +22 -0
- package/dist/InitialConfiguration.js +115 -118
- package/dist/InitialConfiguration.js.map +1 -0
- package/dist/Keys.d.ts +57 -0
- package/dist/Keys.js +174 -193
- package/dist/Keys.js.map +1 -0
- package/dist/ManagedStyles.d.ts +8 -0
- package/dist/ManagedStyles.js +77 -0
- 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 +98 -0
- package/dist/MediaRange.js.map +1 -0
- package/dist/PropertiesFileFormat.d.ts +8 -0
- package/dist/PropertiesFileFormat.js +85 -0
- package/dist/PropertiesFileFormat.js.map +1 -0
- package/dist/Render.d.ts +47 -0
- package/dist/Render.js +143 -0
- 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 +86 -0
- package/dist/Runtimes.js.map +1 -0
- package/dist/StaticArea.d.ts +0 -0
- package/dist/StaticArea.js +4 -29
- package/dist/StaticArea.js.map +1 -0
- package/dist/StaticAreaItem.d.ts +36 -0
- package/dist/StaticAreaItem.js +92 -101
- package/dist/StaticAreaItem.js.map +1 -0
- package/dist/SystemCSSVars.d.ts +2 -0
- package/dist/SystemCSSVars.js +6 -28
- 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 +936 -1138
- package/dist/UI5Element.js.map +1 -0
- package/dist/UI5ElementMetadata.d.ts +150 -0
- package/dist/UI5ElementMetadata.js +278 -267
- 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 +104 -32
- package/dist/asset-registries/Icons.js.map +1 -0
- package/dist/asset-registries/Illustrations.d.ts +17 -0
- package/dist/asset-registries/Illustrations.js +46 -0
- package/dist/asset-registries/Illustrations.js.map +1 -0
- package/dist/asset-registries/LocaleData.d.ts +7 -0
- package/dist/asset-registries/LocaleData.js +119 -118
- package/dist/asset-registries/LocaleData.js.map +1 -0
- package/dist/asset-registries/Themes.d.ts +10 -0
- package/dist/asset-registries/Themes.js +39 -77
- package/dist/asset-registries/Themes.js.map +1 -0
- package/dist/asset-registries/i18n.d.ts +23 -0
- package/dist/asset-registries/i18n.js +71 -86
- package/dist/asset-registries/i18n.js.map +1 -0
- package/dist/assets/bundle.esm.3a492d53.js +56 -0
- package/dist/assets-meta/IconCollectionsAlias.d.ts +17 -0
- package/dist/assets-meta/IconCollectionsAlias.js +18 -0
- 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 +48 -0
- package/dist/config/Icons.js.map +1 -0
- package/dist/config/Language.d.ts +31 -0
- package/dist/config/Language.js +38 -52
- 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 +45 -22
- 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/css/BusyIndicator.css +80 -0
- package/dist/css/FontFace.css +66 -0
- package/dist/css/OverrideFontFace.css +32 -0
- package/dist/css/SystemCSSVars.css +17 -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 +280 -357
- package/dist/delegate/ItemNavigation.js.map +1 -0
- package/dist/delegate/ResizeHandler.d.ts +24 -0
- package/dist/delegate/ResizeHandler.js +80 -62
- package/dist/delegate/ResizeHandler.js.map +1 -0
- package/dist/delegate/ScrollEnablement.d.ts +49 -0
- package/dist/delegate/ScrollEnablement.js +159 -153
- package/dist/delegate/ScrollEnablement.js.map +1 -0
- package/dist/features/F6Navigation.d.ts +16 -0
- package/dist/features/F6Navigation.js +112 -0
- 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 +96 -0
- package/dist/features/OpenUI5Enablement.js.map +1 -0
- package/dist/features/OpenUI5Support.d.ts +23 -0
- package/dist/features/OpenUI5Support.js +93 -86
- package/dist/features/OpenUI5Support.js.map +1 -0
- package/dist/generated/AssetParameters.js +1 -1
- package/dist/generated/VersionInfo.js +10 -0
- package/dist/generated/css/BusyIndicator.css.js +5 -0
- package/dist/generated/css/FontFace.css.js +5 -0
- package/dist/generated/css/OverrideFontFace.css.js +5 -0
- package/dist/generated/css/SystemCSSVars.css.js +5 -0
- package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +11 -0
- 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 +68 -42
- 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 +10 -8
- package/dist/locale/applyDirection.js.map +1 -0
- package/dist/locale/directionChange.d.ts +15 -0
- package/dist/locale/directionChange.js +24 -0
- package/dist/locale/directionChange.js.map +1 -0
- package/dist/locale/getEffectiveDir.d.ts +2 -0
- package/dist/locale/getEffectiveDir.js +24 -0
- 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 +34 -24
- package/dist/renderer/LitRenderer.js.map +1 -0
- package/dist/renderer/directives/style-map.js +72 -0
- package/dist/renderer/executeTemplate.d.ts +13 -0
- package/dist/renderer/executeTemplate.js +20 -7
- package/dist/renderer/executeTemplate.js.map +1 -0
- package/dist/sap/base/Log.js +240 -0
- package/dist/sap/base/assert.js +7 -0
- package/dist/sap/base/security/URLListValidator.js +159 -0
- package/dist/sap/base/security/encodeCSS.js +14 -0
- package/dist/sap/base/security/encodeXML.js +23 -0
- package/dist/sap/base/security/sanitizeHTML.js +16 -0
- package/dist/sap/base/strings/toHex.js +8 -0
- package/dist/sap/base/util/now.js +7 -0
- package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +3585 -0
- package/dist/theming/CustomStyle.d.ts +6 -0
- package/dist/theming/CustomStyle.js +38 -32
- 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 +62 -71
- package/dist/theming/applyTheme.js.map +1 -0
- package/dist/theming/getConstructableStyle.d.ts +9 -0
- package/dist/theming/getConstructableStyle.js +13 -17
- package/dist/theming/getConstructableStyle.js.map +1 -0
- package/dist/theming/getEffectiveLinksHrefs.d.ts +3 -0
- package/dist/theming/getEffectiveLinksHrefs.js +17 -0
- package/dist/theming/getEffectiveLinksHrefs.js.map +1 -0
- package/dist/theming/getEffectiveStyle.d.ts +3 -0
- package/dist/theming/getEffectiveStyle.js +26 -17
- package/dist/theming/getEffectiveStyle.js.map +1 -0
- package/dist/theming/getStylesString.d.ts +3 -0
- package/dist/theming/getStylesString.js +9 -11
- package/dist/theming/getStylesString.js.map +1 -0
- package/dist/theming/getThemeDesignerTheme.d.ts +7 -0
- package/dist/theming/getThemeDesignerTheme.js +73 -60
- package/dist/theming/getThemeDesignerTheme.js.map +1 -0
- package/dist/theming/preloadLinks.d.ts +3 -0
- package/dist/theming/preloadLinks.js +19 -0
- 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 +19 -0
- 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 +25 -0
- package/dist/types/DOMReference.js.map +1 -0
- package/dist/types/DataType.d.ts +25 -0
- package/dist/types/DataType.js +33 -14
- package/dist/types/DataType.js.map +1 -0
- package/dist/types/Float.d.ts +18 -0
- package/dist/types/Float.js +18 -6
- package/dist/types/Float.js.map +1 -0
- package/dist/types/Integer.d.ts +18 -0
- package/dist/types/Integer.js +18 -5
- package/dist/types/Integer.js.map +1 -0
- package/dist/types/InvisibleMessageMode.d.ts +25 -0
- package/dist/types/InvisibleMessageMode.js +27 -0
- package/dist/types/InvisibleMessageMode.js.map +1 -0
- package/dist/types/ItemNavigationBehavior.d.ts +24 -0
- package/dist/types/ItemNavigationBehavior.js +22 -17
- 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 +34 -0
- package/dist/updateShadowRoot.js.map +1 -0
- package/dist/util/AriaLabelHelper.d.ts +6 -0
- package/dist/util/AriaLabelHelper.js +37 -34
- package/dist/util/AriaLabelHelper.js.map +1 -0
- package/dist/util/Caret.d.ts +7 -0
- package/dist/util/Caret.js +23 -0
- package/dist/util/Caret.js.map +1 -0
- package/dist/util/ColorConversion.d.ts +30 -0
- package/dist/util/ColorConversion.js +337 -0
- 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 +57 -68
- package/dist/util/FocusableElements.js.map +1 -0
- package/dist/util/HTMLSanitizer.d.ts +3 -0
- package/dist/util/HTMLSanitizer.js +6 -0
- package/dist/util/HTMLSanitizer.js.map +1 -0
- package/dist/util/InvisibleMessage.d.ts +10 -0
- package/dist/util/InvisibleMessage.js +56 -0
- package/dist/util/InvisibleMessage.js.map +1 -0
- package/dist/util/PopupUtils.d.ts +7 -0
- package/dist/util/PopupUtils.js +74 -0
- package/dist/util/PopupUtils.js.map +1 -0
- package/dist/util/SlotsHelper.d.ts +9 -0
- package/dist/util/SlotsHelper.js +30 -0
- 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 -43
- 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 +12 -0
- package/dist/util/clamp.js.map +1 -0
- package/dist/util/createLinkInHead.d.ts +7 -0
- package/dist/util/createLinkInHead.js +21 -0
- 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 +15 -0
- 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 +11 -0
- 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 +41 -0
- 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 +10 -0
- 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 +4 -0
- package/dist/util/getEffectiveContentDensity.js.map +1 -0
- package/dist/util/getEffectiveScrollbarStyle.d.ts +2 -0
- package/dist/util/getEffectiveScrollbarStyle.js +4 -0
- 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 +14 -0
- 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 +12 -0
- 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/index.js +1 -1
- package/lib/generate-asset-parameters/index.js +8 -5
- package/lib/generate-styles/index.js +26 -0
- package/lib/generate-version-info/index.js +32 -0
- package/package-scripts.js +48 -28
- package/package.json +20 -13
- package/src/AssetRegistry.ts +11 -0
- package/src/Boot.ts +61 -0
- package/src/CSP.ts +66 -0
- package/src/CustomElementsRegistry.ts +98 -0
- package/src/CustomElementsScope.ts +33 -0
- package/src/{CustomElementsScope.js → CustomElementsScopeUtils.ts} +14 -7
- package/src/DOMObserver.ts +28 -0
- package/src/Device.ts +124 -0
- package/src/EventProvider.ts +87 -0
- package/src/FeaturesRegistry.ts +14 -0
- package/src/FontFace.ts +31 -0
- package/src/InitialConfiguration.ts +207 -0
- package/src/Keys.ts +295 -0
- package/src/ManagedStyles.ts +92 -0
- package/src/MarkedEvents.ts +20 -0
- package/src/MediaRange.ts +110 -0
- package/{dist/util/parseProperties.js → src/PropertiesFileFormat.ts} +14 -8
- package/src/Render.ts +180 -0
- package/src/{RenderQueue.js → RenderQueue.ts} +10 -5
- package/src/Runtimes.ts +114 -0
- package/src/StaticArea.ts +3 -0
- package/src/StaticAreaItem.ts +113 -0
- package/src/SystemCSSVars.ts +10 -0
- package/src/{Theming.js → Theming.ts} +0 -0
- package/src/{UI5Element.js → UI5Element.ts} +347 -361
- package/src/{UI5ElementMetadata.js → UI5ElementMetadata.ts} +178 -69
- 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 +162 -0
- package/src/asset-registries/Illustrations.ts +75 -0
- package/src/asset-registries/LocaleData.ts +172 -0
- package/src/asset-registries/Themes.ts +67 -0
- package/src/asset-registries/i18n.ts +118 -0
- package/src/assets-meta/IconCollectionsAlias.ts +18 -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.ts +59 -0
- package/src/config/Language.ts +72 -0
- 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.ts +41 -0
- package/src/css/BusyIndicator.css +80 -0
- package/src/css/FontFace.css +66 -0
- package/src/css/OverrideFontFace.css +32 -0
- package/src/css/SystemCSSVars.css +17 -0
- 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.ts +393 -0
- package/src/delegate/ResizeHandler.ts +95 -0
- package/src/delegate/ScrollEnablement.ts +224 -0
- package/src/features/F6Navigation.ts +141 -0
- 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.ts +108 -0
- package/src/locale/{Locale.js → Locale.ts} +15 -5
- package/src/locale/RTLAwareRegistry.ts +16 -0
- package/src/locale/applyDirection.ts +18 -0
- package/src/locale/directionChange.ts +34 -0
- package/src/locale/getEffectiveDir.ts +28 -0
- 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/directives/style-map.js +72 -0
- package/src/renderer/executeTemplate.ts +40 -0
- package/src/theming/CustomStyle.ts +62 -0
- package/src/theming/{ThemeLoaded.js → ThemeLoaded.ts} +6 -4
- package/src/theming/applyTheme.ts +90 -0
- package/src/theming/getConstructableStyle.ts +31 -0
- package/src/theming/getEffectiveLinksHrefs.ts +26 -0
- package/src/theming/getEffectiveStyle.ts +41 -0
- package/src/theming/getStylesString.ts +15 -0
- package/src/theming/getThemeDesignerTheme.ts +101 -0
- package/src/theming/preloadLinks.ts +24 -0
- 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.ts +20 -0
- package/src/types/CalendarType.ts +38 -0
- package/src/types/DOMReference.ts +28 -0
- 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 +37 -0
- package/src/util/AriaLabelHelper.ts +63 -0
- package/src/util/Caret.ts +28 -0
- package/src/util/ColorConversion.ts +399 -0
- package/src/util/{FetchHelper.js → FetchHelper.ts} +7 -7
- package/src/util/FocusableElements.ts +82 -0
- package/src/util/HTMLSanitizer.ts +9 -0
- package/src/util/InvisibleMessage.ts +69 -0
- package/src/util/PopupUtils.ts +112 -0
- package/src/util/SlotsHelper.ts +39 -0
- 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.ts +12 -0
- package/src/util/createLinkInHead.ts +25 -0
- package/src/util/{createStyleInHead.js → createStyleInHead.ts} +4 -2
- package/src/util/debounce.ts +18 -0
- 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.ts +43 -0
- package/src/util/{getActiveElement.js → getActiveElement.ts} +0 -0
- package/src/util/getClassCopy.ts +12 -0
- package/src/util/{getDesigntimePropertyAsArray.js → getDesigntimePropertyAsArray.ts} +1 -1
- package/src/util/getEffectiveContentDensity.ts +5 -0
- package/src/util/getEffectiveScrollbarStyle.ts +5 -0
- package/src/util/getFastNavigationGroups.ts +63 -0
- package/src/util/{getFileExtension.js → getFileExtension.ts} +3 -3
- package/src/util/getNormalizedTarget.ts +16 -0
- 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.ts +15 -0
- 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/used-modules.txt +10 -0
- package/bundle.es5.js +0 -28
- package/config/.eslintrc.js +0 -3
- package/config/rollup.config.js +0 -1
- package/dist/RenderScheduler.js +0 -169
- package/dist/SVGIconRegistry.js +0 -73
- package/dist/animations/config.js +0 -5
- package/dist/boot.js +0 -34
- package/dist/compatibility/DOMObserver.js +0 -62
- package/dist/compatibility/patchNodeValue.js +0 -24
- package/dist/compatibility/whenPolyfillLoaded.js +0 -26
- package/dist/config/AssetsPath.js +0 -17
- package/dist/delegate/CustomResize.js +0 -78
- package/dist/delegate/NativeResize.js +0 -45
- package/dist/features/PropertiesFormatSupport.js +0 -8
- package/dist/features/browsersupport/Edge.js +0 -6
- package/dist/features/browsersupport/IE11.js +0 -42
- package/dist/features/browsersupport/IE11WithWebComponentsPolyfill.js +0 -5
- package/dist/renderer/ifDefined.js +0 -21
- package/dist/renderer/scopeHTML.js +0 -32
- package/dist/resources/bundle.es5.js +0 -225
- package/dist/resources/bundle.es5.js.map +0 -1
- package/dist/resources/bundle.esm.js +0 -129
- package/dist/resources/bundle.esm.js.map +0 -1
- package/dist/test-resources/assets/Themes.js +0 -17
- package/dist/test-resources/elements/Child.js +0 -35
- package/dist/test-resources/elements/Generic.js +0 -84
- package/dist/test-resources/elements/GenericExt.js +0 -26
- package/dist/test-resources/elements/NoShadowDOM.js +0 -13
- package/dist/test-resources/elements/Parent.js +0 -41
- package/dist/test-resources/elements/WithStaticArea.js +0 -76
- package/dist/test-resources/pages/AllTestElements.html +0 -42
- package/dist/test-resources/pages/Configuration.html +0 -20
- package/dist/test-resources/pages/ConfigurationScript.html +0 -36
- package/dist/test-resources/pages/assets/messagebundle_de.properties +0 -1
- package/dist/test-resources/pages/assets/messagebundle_en.properties +0 -1
- package/dist/test-resources/pages/assets/messagebundle_es.properties +0 -1
- package/dist/test-resources/pages/assets/messagebundle_fr.properties +0 -1
- package/dist/test-resources/pages/i18n.html +0 -40
- package/dist/test-resources/specs/ConfigurationChange.spec.js +0 -25
- package/dist/test-resources/specs/ConfigurationScript.spec.js +0 -61
- package/dist/test-resources/specs/ConfigurationURL.spec.js +0 -45
- package/dist/test-resources/specs/CustomTheme.spec.js +0 -25
- package/dist/test-resources/specs/StaticArea.spec.js +0 -34
- package/dist/test-resources/specs/Theming.spec.js +0 -31
- package/dist/test-resources/specs/UI5ElementInvalidation.js +0 -240
- package/dist/test-resources/specs/UI5ElementLifecycle.js +0 -96
- package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +0 -73
- package/dist/test-resources/specs/UI5ElementMetadataExt.js +0 -40
- package/dist/test-resources/specs/UI5ElementPropertyValidation.js +0 -12
- package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +0 -65
- package/dist/test-resources/specs/UI5ElementShadowDOM.js +0 -22
- package/dist/test-resources/specs/UI5ElementSlots.js +0 -34
- package/dist/theming/CSSVarsPonyfill.js +0 -68
- package/dist/theming/adaptCSSForIE.js +0 -95
- package/dist/theming/createComponentStyleTag.js +0 -54
- package/dist/theming/createThemePropertiesStyleTag.js +0 -20
- package/dist/thirdparty/Array.from.js +0 -16
- package/dist/thirdparty/Array.prototype.fill.js +0 -44
- package/dist/thirdparty/Array.prototype.find.js +0 -46
- package/dist/thirdparty/Array.prototype.includes.js +0 -51
- package/dist/thirdparty/Element.prototype.closest.js +0 -11
- package/dist/thirdparty/Element.prototype.matches.js +0 -6
- package/dist/thirdparty/Map.prototype.keys.js +0 -9
- package/dist/thirdparty/Number.isInteger.js +0 -5
- package/dist/thirdparty/Number.isNaN.js +0 -1
- package/dist/thirdparty/Number.parseFloat.js +0 -1
- package/dist/thirdparty/Number.parseInt.js +0 -1
- package/dist/thirdparty/Object.assign.js +0 -31
- package/dist/thirdparty/Object.entries.js +0 -11
- package/dist/thirdparty/Symbol.js +0 -2
- package/dist/thirdparty/WeakSet.js +0 -27
- package/dist/thirdparty/es6-string-methods.js +0 -182
- package/dist/thirdparty/events-polyfills.js +0 -89
- package/dist/thirdparty/fetch.js +0 -1
- package/dist/thirdparty/template.js +0 -600
- package/dist/thirdparty/webcomponents-sd-ce-pf.js +0 -318
- package/dist/types/CSSSize.js +0 -9
- package/dist/types/CalendarSelection.js +0 -17
- package/dist/types/PopupState.js +0 -37
- package/dist/util/EffectiveAssetPath.js +0 -27
- package/dist/util/encodeCSS.js +0 -24
- package/dist/util/findNodeOwner.js +0 -35
- 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/isSlot.js +0 -3
- package/dist/util/setToArray.js +0 -10
- package/dist/webcomponentsjs/LICENSE.md +0 -19
- package/dist/webcomponentsjs/README.md +0 -229
- package/dist/webcomponentsjs/bundles/webcomponents-ce.js +0 -63
- package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -297
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -208
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
- package/dist/webcomponentsjs/bundles/webcomponents-sd.js +0 -166
- package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
- package/dist/webcomponentsjs/custom-elements-es5-adapter.js +0 -15
- package/dist/webcomponentsjs/package.json +0 -46
- package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
- package/dist/webcomponentsjs/webcomponents-bundle.js +0 -298
- package/dist/webcomponentsjs/webcomponents-bundle.js.map +0 -1
- package/dist/webcomponentsjs/webcomponents-loader.js +0 -185
- package/src/AssetRegistry.js +0 -12
- package/src/CustomElementsRegistry.js +0 -39
- package/src/Device.js +0 -823
- package/src/EventProvider.js +0 -81
- package/src/FeaturesRegistry.js +0 -11
- package/src/FontFace.js +0 -118
- package/src/InitialConfiguration.js +0 -150
- package/src/Keys.js +0 -197
- package/src/RenderScheduler.js +0 -169
- package/src/SVGIconRegistry.js +0 -73
- package/src/StaticArea.js +0 -31
- package/src/StaticAreaItem.js +0 -108
- package/src/SystemCSSVars.js +0 -31
- 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 -32
- package/src/asset-registries/LocaleData.js +0 -135
- package/src/asset-registries/Themes.js +0 -88
- package/src/asset-registries/i18n.js +0 -110
- package/src/boot.js +0 -34
- package/src/compatibility/DOMObserver.js +0 -62
- package/src/compatibility/patchNodeValue.js +0 -24
- package/src/compatibility/whenPolyfillLoaded.js +0 -26
- package/src/config/AnimationMode.js +0 -23
- package/src/config/AssetsPath.js +0 -17
- package/src/config/FormatSettings.js +0 -13
- package/src/config/Language.js +0 -70
- package/src/config/NoConflict.js +0 -51
- package/src/config/Theme.js +0 -28
- package/src/delegate/CustomResize.js +0 -78
- package/src/delegate/ItemNavigation.js +0 -393
- package/src/delegate/NativeResize.js +0 -45
- package/src/delegate/ResizeHandler.js +0 -65
- package/src/delegate/ScrollEnablement.js +0 -159
- package/src/features/OpenUI5Support.js +0 -90
- package/src/features/PropertiesFormatSupport.js +0 -8
- package/src/features/browsersupport/Edge.js +0 -6
- package/src/features/browsersupport/IE11.js +0 -42
- package/src/features/browsersupport/IE11WithWebComponentsPolyfill.js +0 -5
- package/src/i18nBundle.js +0 -52
- package/src/locale/RTLAwareRegistry.js +0 -14
- package/src/locale/applyDirection.js +0 -15
- package/src/locale/languageChange.js +0 -22
- package/src/renderer/LitRenderer.js +0 -31
- package/src/renderer/executeTemplate.js +0 -17
- package/src/renderer/ifDefined.js +0 -21
- package/src/renderer/scopeHTML.js +0 -32
- package/src/theming/CSSVarsPonyfill.js +0 -68
- package/src/theming/CustomStyle.js +0 -40
- package/src/theming/adaptCSSForIE.js +0 -95
- package/src/theming/applyTheme.js +0 -84
- package/src/theming/createComponentStyleTag.js +0 -54
- package/src/theming/createThemePropertiesStyleTag.js +0 -20
- package/src/theming/getConstructableStyle.js +0 -29
- package/src/theming/getEffectiveStyle.js +0 -23
- package/src/theming/getStylesString.js +0 -13
- package/src/theming/getThemeDesignerTheme.js +0 -67
- package/src/thirdparty/Array.from.js +0 -16
- package/src/thirdparty/Array.prototype.fill.js +0 -44
- package/src/thirdparty/Array.prototype.find.js +0 -46
- package/src/thirdparty/Array.prototype.includes.js +0 -51
- package/src/thirdparty/Element.prototype.closest.js +0 -11
- package/src/thirdparty/Element.prototype.matches.js +0 -6
- package/src/thirdparty/Map.prototype.keys.js +0 -9
- package/src/thirdparty/Number.isInteger.js +0 -5
- package/src/thirdparty/Number.isNaN.js +0 -1
- package/src/thirdparty/Number.parseFloat.js +0 -1
- package/src/thirdparty/Number.parseInt.js +0 -1
- package/src/thirdparty/Object.assign.js +0 -31
- package/src/thirdparty/Object.entries.js +0 -11
- package/src/thirdparty/Symbol.js +0 -2
- package/src/thirdparty/WeakSet.js +0 -27
- package/src/thirdparty/es6-string-methods.js +0 -182
- package/src/thirdparty/events-polyfills.js +0 -89
- package/src/thirdparty/fetch.js +0 -1
- package/src/thirdparty/merge.js +0 -10
- package/src/thirdparty/template.js +0 -600
- package/src/thirdparty/webcomponents-sd-ce-pf.js +0 -318
- package/src/types/AnimationMode.js +0 -7
- package/src/types/CSSSize.js +0 -9
- package/src/types/CalendarSelection.js +0 -17
- package/src/types/CalendarType.js +0 -22
- package/src/types/DataType.js +0 -25
- package/src/types/Float.js +0 -10
- package/src/types/Integer.js +0 -9
- package/src/types/ItemNavigationBehavior.js +0 -21
- package/src/types/NavigationMode.js +0 -7
- package/src/types/PopupState.js +0 -37
- package/src/types/ValueState.js +0 -22
- package/src/util/AriaLabelHelper.js +0 -41
- package/src/util/EffectiveAssetPath.js +0 -27
- package/src/util/FocusableElements.js +0 -73
- package/src/util/TabbableElements.js +0 -47
- package/src/util/encodeCSS.js +0 -24
- package/src/util/findNodeOwner.js +0 -35
- 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/isSlot.js +0 -3
- package/src/util/parseProperties.js +0 -89
- package/src/util/setToArray.js +0 -10
package/src/RenderScheduler.js
DELETED
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
import RenderQueue from "./RenderQueue.js";
|
|
2
|
-
import { getAllRegisteredTags } from "./CustomElementsRegistry.js";
|
|
3
|
-
import { isRtlAware } from "./locale/RTLAwareRegistry.js";
|
|
4
|
-
|
|
5
|
-
const registeredElements = new Set();
|
|
6
|
-
|
|
7
|
-
// Queue for invalidated web components
|
|
8
|
-
const invalidatedWebComponents = new RenderQueue();
|
|
9
|
-
|
|
10
|
-
let renderTaskPromise,
|
|
11
|
-
renderTaskPromiseResolve;
|
|
12
|
-
|
|
13
|
-
let mutationObserverTimer;
|
|
14
|
-
|
|
15
|
-
let queuePromise;
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Class that manages the rendering/re-rendering of web components
|
|
19
|
-
* This is always asynchronous
|
|
20
|
-
*/
|
|
21
|
-
class RenderScheduler {
|
|
22
|
-
constructor() {
|
|
23
|
-
throw new Error("Static class");
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Schedules a render task (if not already scheduled) to render the component
|
|
28
|
-
*
|
|
29
|
-
* @param webComponent
|
|
30
|
-
* @returns {Promise}
|
|
31
|
-
*/
|
|
32
|
-
static async renderDeferred(webComponent) {
|
|
33
|
-
// Enqueue the web component
|
|
34
|
-
invalidatedWebComponents.add(webComponent);
|
|
35
|
-
|
|
36
|
-
// Schedule a rendering task
|
|
37
|
-
await RenderScheduler.scheduleRenderTask();
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Renders a component synchronously
|
|
42
|
-
*
|
|
43
|
-
* @param webComponent
|
|
44
|
-
*/
|
|
45
|
-
static renderImmediately(webComponent) {
|
|
46
|
-
webComponent._render();
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Cancels the rendering of a component, added to the queue with renderDeferred
|
|
51
|
-
*
|
|
52
|
-
* @param webComponent
|
|
53
|
-
*/
|
|
54
|
-
static cancelRender(webComponent) {
|
|
55
|
-
invalidatedWebComponents.remove(webComponent);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Schedules a rendering task, if not scheduled already
|
|
60
|
-
*/
|
|
61
|
-
static async scheduleRenderTask() {
|
|
62
|
-
if (!queuePromise) {
|
|
63
|
-
queuePromise = new Promise(resolve => {
|
|
64
|
-
window.requestAnimationFrame(() => {
|
|
65
|
-
// Render all components in the queue
|
|
66
|
-
|
|
67
|
-
// console.log(`--------------------RENDER TASK START------------------------------`); // eslint-disable-line
|
|
68
|
-
invalidatedWebComponents.process(component => component._render());
|
|
69
|
-
// console.log(`--------------------RENDER TASK END------------------------------`); // eslint-disable-line
|
|
70
|
-
|
|
71
|
-
// Resolve the promise so that callers of renderDeferred can continue
|
|
72
|
-
queuePromise = null;
|
|
73
|
-
resolve();
|
|
74
|
-
|
|
75
|
-
// Wait for Mutation observer before the render task is considered finished
|
|
76
|
-
if (!mutationObserverTimer) {
|
|
77
|
-
mutationObserverTimer = setTimeout(() => {
|
|
78
|
-
mutationObserverTimer = undefined;
|
|
79
|
-
if (invalidatedWebComponents.isEmpty()) {
|
|
80
|
-
RenderScheduler._resolveTaskPromise();
|
|
81
|
-
}
|
|
82
|
-
}, 200);
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
await queuePromise;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* return a promise that will be resolved once all invalidated web components are rendered
|
|
93
|
-
*/
|
|
94
|
-
static whenDOMUpdated() {
|
|
95
|
-
if (renderTaskPromise) {
|
|
96
|
-
return renderTaskPromise;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
renderTaskPromise = new Promise(resolve => {
|
|
100
|
-
renderTaskPromiseResolve = resolve;
|
|
101
|
-
window.requestAnimationFrame(() => {
|
|
102
|
-
if (invalidatedWebComponents.isEmpty()) {
|
|
103
|
-
renderTaskPromise = undefined;
|
|
104
|
-
resolve();
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
return renderTaskPromise;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
static whenAllCustomElementsAreDefined() {
|
|
113
|
-
const definedPromises = getAllRegisteredTags().map(tag => customElements.whenDefined(tag));
|
|
114
|
-
return Promise.all(definedPromises);
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
static async whenFinished() {
|
|
118
|
-
await RenderScheduler.whenAllCustomElementsAreDefined();
|
|
119
|
-
await RenderScheduler.whenDOMUpdated();
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
static _resolveTaskPromise() {
|
|
123
|
-
if (!invalidatedWebComponents.isEmpty()) {
|
|
124
|
-
// More updates are pending. Resolve will be called again
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
if (renderTaskPromiseResolve) {
|
|
129
|
-
renderTaskPromiseResolve.call(this);
|
|
130
|
-
renderTaskPromiseResolve = undefined;
|
|
131
|
-
renderTaskPromise = undefined;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
static register(element) {
|
|
136
|
-
registeredElements.add(element);
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
static deregister(element) {
|
|
140
|
-
registeredElements.delete(element);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
|
-
* Re-renders all UI5 Elements on the page, with the option to specify filters to rerender only some components.
|
|
145
|
-
*
|
|
146
|
-
* Usage:
|
|
147
|
-
* reRenderAllUI5Elements() -> rerenders all components
|
|
148
|
-
* reRenderAllUI5Elements({tag: "ui5-button"}) -> re-renders only instances of ui5-button
|
|
149
|
-
* reRenderAllUI5Elements({rtlAware: true}) -> re-renders only rtlAware components
|
|
150
|
-
* reRenderAllUI5Elements({languageAware: true}) -> re-renders only languageAware components
|
|
151
|
-
* reRenderAllUI5Elements({rtlAware: true, languageAware: true}) -> re-renders components that are rtlAware or languageAware
|
|
152
|
-
* etc...
|
|
153
|
-
*
|
|
154
|
-
* @public
|
|
155
|
-
* @param {Object|undefined} filters - Object with keys that can be "rtlAware" or "languageAware"
|
|
156
|
-
*/
|
|
157
|
-
static reRenderAllUI5Elements(filters) {
|
|
158
|
-
registeredElements.forEach(element => {
|
|
159
|
-
const tag = element.constructor.getMetadata().getTag();
|
|
160
|
-
const rtlAware = isRtlAware(element.constructor);
|
|
161
|
-
const languageAware = element.constructor.getMetadata().isLanguageAware();
|
|
162
|
-
if (!filters || (filters.tag === tag) || (filters.rtlAware && rtlAware) || (filters.languageAware && languageAware)) {
|
|
163
|
-
RenderScheduler.renderDeferred(element);
|
|
164
|
-
}
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
export default RenderScheduler;
|
package/src/SVGIconRegistry.js
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import getSharedResource from "./getSharedResource.js";
|
|
2
|
-
|
|
3
|
-
const registry = getSharedResource("SVGIcons.registry", new Map());
|
|
4
|
-
const iconCollectionPromises = getSharedResource("SVGIcons.promises", new Map());
|
|
5
|
-
|
|
6
|
-
const ICON_NOT_FOUND = "ICON_NOT_FOUND";
|
|
7
|
-
const DEFAULT_COLLECTION = "SAP-icons";
|
|
8
|
-
|
|
9
|
-
const parseName = name => {
|
|
10
|
-
// silently support ui5-compatible URIs
|
|
11
|
-
if (name.startsWith("sap-icon://")) {
|
|
12
|
-
name = name.replace("sap-icon://", "");
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
let collection;
|
|
16
|
-
[name, collection] = name.split("/").reverse();
|
|
17
|
-
collection = collection || DEFAULT_COLLECTION;
|
|
18
|
-
// hardcoded alias in case icon explorer is used, resolve `SAP-icons-TNT` to `tnt`
|
|
19
|
-
// aliases can be made a feature in the future if more collections need it or more aliases are needed.
|
|
20
|
-
if (collection === "SAP-icons-TNT") {
|
|
21
|
-
collection = "tnt";
|
|
22
|
-
}
|
|
23
|
-
const registryKey = `${collection}/${name}`;
|
|
24
|
-
return { name, collection, registryKey };
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
const registerIcon = (name, { pathData, ltr, accData, collection } = {}) => { // eslint-disable-line
|
|
29
|
-
if (!collection) {
|
|
30
|
-
collection = DEFAULT_COLLECTION;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const key = `${collection}/${name}`;
|
|
34
|
-
registry.set(key, { pathData, ltr, accData });
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
const getIconDataSync = nameProp => {
|
|
38
|
-
const { registryKey } = parseName(nameProp);
|
|
39
|
-
return registry.get(registryKey);
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
const getIconData = async nameProp => {
|
|
43
|
-
const { collection, registryKey } = parseName(nameProp);
|
|
44
|
-
|
|
45
|
-
if (!iconCollectionPromises.has(collection)) {
|
|
46
|
-
iconCollectionPromises.set(collection, Promise.resolve(ICON_NOT_FOUND));
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
const iconData = await iconCollectionPromises.get(collection);
|
|
50
|
-
|
|
51
|
-
if (iconData === ICON_NOT_FOUND) {
|
|
52
|
-
return iconData;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
return registry.get(registryKey);
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
const getRegisteredNames = async () => {
|
|
59
|
-
await Promise.all(Array.from(iconCollectionPromises.values()));
|
|
60
|
-
return Array.from(registry.keys());
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
const registerCollectionPromise = (collection, promise) => {
|
|
64
|
-
iconCollectionPromises.set(collection, promise);
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
export {
|
|
68
|
-
getIconData,
|
|
69
|
-
getIconDataSync,
|
|
70
|
-
registerIcon,
|
|
71
|
-
getRegisteredNames,
|
|
72
|
-
registerCollectionPromise,
|
|
73
|
-
};
|
package/src/StaticArea.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import getSingletonElementInstance from "./util/getSingletonElementInstance.js";
|
|
2
|
-
|
|
3
|
-
const getStaticAreaInstance = () => getSingletonElementInstance("ui5-static-area");
|
|
4
|
-
|
|
5
|
-
const removeStaticArea = () => {
|
|
6
|
-
getStaticAreaInstance().destroy();
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
class StaticAreaElement extends HTMLElement {
|
|
10
|
-
constructor() {
|
|
11
|
-
super();
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
get isUI5Element() {
|
|
15
|
-
return true;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
destroy() {
|
|
19
|
-
const staticAreaDomRef = document.querySelector(this.tagName.toLowerCase());
|
|
20
|
-
staticAreaDomRef.parentElement.removeChild(staticAreaDomRef);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
if (!customElements.get("ui5-static-area")) {
|
|
25
|
-
customElements.define("ui5-static-area", StaticAreaElement);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export {
|
|
29
|
-
getStaticAreaInstance,
|
|
30
|
-
removeStaticArea,
|
|
31
|
-
};
|
package/src/StaticAreaItem.js
DELETED
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import { getStaticAreaInstance, removeStaticArea } from "./StaticArea.js";
|
|
2
|
-
import RenderScheduler from "./RenderScheduler.js";
|
|
3
|
-
import getStylesString from "./theming/getStylesString.js";
|
|
4
|
-
import executeTemplate from "./renderer/executeTemplate.js";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* @class
|
|
8
|
-
* @author SAP SE
|
|
9
|
-
* @private
|
|
10
|
-
* Defines and takes care of ui5-static-are-item items
|
|
11
|
-
*/
|
|
12
|
-
class StaticAreaItem {
|
|
13
|
-
constructor(_ui5ElementContext) {
|
|
14
|
-
this.ui5ElementContext = _ui5ElementContext;
|
|
15
|
-
this._rendered = false;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
isRendered() {
|
|
19
|
-
return this._rendered;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* @protected
|
|
24
|
-
*/
|
|
25
|
-
_updateFragment() {
|
|
26
|
-
const renderResult = executeTemplate(this.ui5ElementContext.constructor.staticAreaTemplate, this.ui5ElementContext),
|
|
27
|
-
stylesToAdd = window.ShadyDOM ? false : getStylesString(this.ui5ElementContext.constructor.staticAreaStyles);
|
|
28
|
-
|
|
29
|
-
if (!this.staticAreaItemDomRef) {
|
|
30
|
-
// Initial rendering of fragment
|
|
31
|
-
|
|
32
|
-
this.staticAreaItemDomRef = document.createElement("ui5-static-area-item");
|
|
33
|
-
this.staticAreaItemDomRef.attachShadow({ mode: "open" });
|
|
34
|
-
this.staticAreaItemDomRef.classList.add(this.ui5ElementContext._id); // used for getting the popover in the tests
|
|
35
|
-
|
|
36
|
-
getStaticAreaInstance().appendChild(this.staticAreaItemDomRef);
|
|
37
|
-
this._rendered = true;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
this._updateContentDensity(this.ui5ElementContext.isCompact);
|
|
41
|
-
this.ui5ElementContext.constructor.render(renderResult, this.staticAreaItemDomRef.shadowRoot, stylesToAdd, { eventContext: this.ui5ElementContext });
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* @protected
|
|
46
|
-
*/
|
|
47
|
-
_removeFragmentFromStaticArea() {
|
|
48
|
-
if (!this.staticAreaItemDomRef) {
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
const staticArea = getStaticAreaInstance();
|
|
53
|
-
|
|
54
|
-
staticArea.removeChild(this.staticAreaItemDomRef);
|
|
55
|
-
|
|
56
|
-
this.staticAreaItemDomRef = null;
|
|
57
|
-
|
|
58
|
-
// remove static area
|
|
59
|
-
if (staticArea.childElementCount < 1) {
|
|
60
|
-
removeStaticArea();
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* @protected
|
|
66
|
-
*/
|
|
67
|
-
_updateContentDensity(isCompact) {
|
|
68
|
-
if (!this.staticAreaItemDomRef) {
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
if (isCompact) {
|
|
73
|
-
this.staticAreaItemDomRef.classList.add("sapUiSizeCompact");
|
|
74
|
-
this.staticAreaItemDomRef.classList.add("ui5-content-density-compact");
|
|
75
|
-
} else {
|
|
76
|
-
this.staticAreaItemDomRef.classList.remove("sapUiSizeCompact");
|
|
77
|
-
this.staticAreaItemDomRef.classList.remove("ui5-content-density-compact");
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* @protected
|
|
83
|
-
* Returns reference to the DOM element where the current fragment is added.
|
|
84
|
-
*/
|
|
85
|
-
async getDomRef() {
|
|
86
|
-
if (!this._rendered || !this.staticAreaItemDomRef) {
|
|
87
|
-
this._updateFragment();
|
|
88
|
-
}
|
|
89
|
-
await RenderScheduler.whenDOMUpdated(); // Wait for the content of the ui5-static-area-item to be rendered
|
|
90
|
-
return this.staticAreaItemDomRef && this.staticAreaItemDomRef.shadowRoot;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
class StaticAreaItemElement extends HTMLElement {
|
|
95
|
-
constructor() {
|
|
96
|
-
super();
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
get isUI5Element() {
|
|
100
|
-
return true;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
if (!customElements.get("ui5-static-area-item")) {
|
|
105
|
-
customElements.define("ui5-static-area-item", StaticAreaItemElement);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
export default StaticAreaItem;
|
package/src/SystemCSSVars.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import createStyleInHead from "./util/createStyleInHead.js";
|
|
2
|
-
|
|
3
|
-
const systemCSSVars = `
|
|
4
|
-
:root {
|
|
5
|
-
--_ui5_content_density:cozy;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
[data-ui5-compact-size],
|
|
9
|
-
.ui5-content-density-compact,
|
|
10
|
-
.sapUiSizeCompact {
|
|
11
|
-
--_ui5_content_density:compact;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
[dir="rtl"] {
|
|
15
|
-
--_ui5_dir:rtl;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
[dir="ltr"] {
|
|
19
|
-
--_ui5_dir:ltr;
|
|
20
|
-
}
|
|
21
|
-
`;
|
|
22
|
-
|
|
23
|
-
const insertSystemCSSVars = () => {
|
|
24
|
-
if (document.querySelector(`head>style[data-ui5-system-css-vars]`)) {
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
createStyleInHead(systemCSSVars, { "data-ui5-system-css-vars": "" });
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
export default insertSystemCSSVars;
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import AnimationQueue from "./AnimationQueue.js";
|
|
2
|
-
import animationConfig from "./config.js";
|
|
3
|
-
|
|
4
|
-
export default ({
|
|
5
|
-
beforeStart = animationConfig.identity,
|
|
6
|
-
duration = animationConfig.defaultDuration,
|
|
7
|
-
element = animationConfig.element,
|
|
8
|
-
progress: progressCallback = animationConfig.identity,
|
|
9
|
-
}) => {
|
|
10
|
-
let start = null;
|
|
11
|
-
let stopped = false;
|
|
12
|
-
let animationFrame;
|
|
13
|
-
let stop;
|
|
14
|
-
let animate;
|
|
15
|
-
|
|
16
|
-
const promise = new Promise((resolve, reject) => {
|
|
17
|
-
animate = timestamp => {
|
|
18
|
-
start = start || timestamp;
|
|
19
|
-
|
|
20
|
-
const timeElapsed = timestamp - start;
|
|
21
|
-
const remaining = duration - timeElapsed;
|
|
22
|
-
|
|
23
|
-
if (timeElapsed <= duration) {
|
|
24
|
-
const progress = 1 - remaining / duration; // easing formula (currently linear)
|
|
25
|
-
progressCallback(progress);
|
|
26
|
-
animationFrame = !stopped && requestAnimationFrame(animate);
|
|
27
|
-
} else {
|
|
28
|
-
progressCallback(1);
|
|
29
|
-
resolve();
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
stop = () => {
|
|
34
|
-
stopped = true;
|
|
35
|
-
cancelAnimationFrame(animationFrame);
|
|
36
|
-
reject(new Error("animation stopped"));
|
|
37
|
-
};
|
|
38
|
-
}).catch(oReason => oReason);
|
|
39
|
-
|
|
40
|
-
AnimationQueue.push(element, () => {
|
|
41
|
-
beforeStart();
|
|
42
|
-
requestAnimationFrame(animate);
|
|
43
|
-
|
|
44
|
-
return new Promise(resolve => {
|
|
45
|
-
promise.then(() => resolve());
|
|
46
|
-
});
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
return {
|
|
50
|
-
promise: () => promise,
|
|
51
|
-
stop: () => stop,
|
|
52
|
-
};
|
|
53
|
-
};
|
package/src/animations/config.js
DELETED
package/src/animations/scroll.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import animate from "./animate.js";
|
|
2
|
-
import animationConfig from "./config.js";
|
|
3
|
-
|
|
4
|
-
export default ({
|
|
5
|
-
element = animationConfig.element,
|
|
6
|
-
duration = animationConfig.duration,
|
|
7
|
-
progress: progressCallback = animationConfig.identity,
|
|
8
|
-
dx = 0,
|
|
9
|
-
dy = 0,
|
|
10
|
-
}) => {
|
|
11
|
-
let scrollLeft;
|
|
12
|
-
let scrollTop;
|
|
13
|
-
|
|
14
|
-
return animate({
|
|
15
|
-
beforeStart: () => {
|
|
16
|
-
scrollLeft = element.scrollLeft;
|
|
17
|
-
scrollTop = element.scrollTop;
|
|
18
|
-
},
|
|
19
|
-
duration,
|
|
20
|
-
element,
|
|
21
|
-
progress: progress => {
|
|
22
|
-
progressCallback(progress);
|
|
23
|
-
|
|
24
|
-
element.scrollLeft = scrollLeft + (progress * dx); // easing - linear
|
|
25
|
-
element.scrollTop = scrollTop + (progress * dy); // easing - linear
|
|
26
|
-
},
|
|
27
|
-
});
|
|
28
|
-
};
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { registerIcon, registerCollectionPromise } from "../SVGIconRegistry.js";
|
|
2
|
-
import { fetchJsonOnce } from "../util/FetchHelper.js";
|
|
3
|
-
import { getEffectiveAssetPath } from "../util/EffectiveAssetPath.js";
|
|
4
|
-
|
|
5
|
-
const registerIconBundle = async (collectionName, bundleData) => {
|
|
6
|
-
let resolveFn;
|
|
7
|
-
const collectionFetched = new Promise(resolve => {
|
|
8
|
-
resolveFn = resolve;
|
|
9
|
-
});
|
|
10
|
-
registerCollectionPromise(collectionName, collectionFetched);
|
|
11
|
-
|
|
12
|
-
if (typeof bundleData !== "object") { // not inlined from build -> fetch it
|
|
13
|
-
bundleData = await fetchJsonOnce(getEffectiveAssetPath(bundleData));
|
|
14
|
-
}
|
|
15
|
-
fillRegistry(bundleData);
|
|
16
|
-
resolveFn();
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
const fillRegistry = bundleData => {
|
|
20
|
-
Object.keys(bundleData.data).forEach(iconName => {
|
|
21
|
-
const iconData = bundleData.data[iconName];
|
|
22
|
-
|
|
23
|
-
registerIcon(iconName, {
|
|
24
|
-
pathData: iconData.path,
|
|
25
|
-
ltr: iconData.ltr,
|
|
26
|
-
accData: iconData.acc,
|
|
27
|
-
collection: bundleData.collection,
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
export { registerIconBundle }; // eslint-disable-line
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import { fetchJsonOnce } from "../util/FetchHelper.js";
|
|
2
|
-
import { attachLanguageChange } from "../locale/languageChange.js";
|
|
3
|
-
import getLocale from "../locale/getLocale.js";
|
|
4
|
-
import { getFeature } from "../FeaturesRegistry.js";
|
|
5
|
-
import { DEFAULT_LOCALE, SUPPORTED_LOCALES } from "../generated/AssetParameters.js";
|
|
6
|
-
import { getEffectiveAssetPath } from "../util/EffectiveAssetPath.js";
|
|
7
|
-
|
|
8
|
-
const resources = new Map();
|
|
9
|
-
const cldrData = {};
|
|
10
|
-
const cldrUrls = {};
|
|
11
|
-
|
|
12
|
-
// externally configurable mapping function for resolving (localeId -> URL)
|
|
13
|
-
// default implementation - ui5 CDN
|
|
14
|
-
let cldrMappingFn = locale => `https://ui5.sap.com/1.60.2/resources/sap/ui/core/cldr/${locale}.json`;
|
|
15
|
-
|
|
16
|
-
const M_ISO639_OLD_TO_NEW = {
|
|
17
|
-
"iw": "he",
|
|
18
|
-
"ji": "yi",
|
|
19
|
-
"in": "id",
|
|
20
|
-
"sh": "sr",
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
const calcLocale = (language, region, script) => {
|
|
24
|
-
// normalize language and handle special cases
|
|
25
|
-
language = (language && M_ISO639_OLD_TO_NEW[language]) || language;
|
|
26
|
-
// Special case 1: in an SAP context, the inclusive language code "no" always means Norwegian Bokmal ("nb")
|
|
27
|
-
if (language === "no") {
|
|
28
|
-
language = "nb";
|
|
29
|
-
}
|
|
30
|
-
// Special case 2: for Chinese, derive a default region from the script (this behavior is inherited from Java)
|
|
31
|
-
if (language === "zh" && !region) {
|
|
32
|
-
if (script === "Hans") {
|
|
33
|
-
region = "CN";
|
|
34
|
-
} else if (script === "Hant") {
|
|
35
|
-
region = "TW";
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// try language + region
|
|
40
|
-
let localeId = `${language}_${region}`;
|
|
41
|
-
if (!SUPPORTED_LOCALES.includes(localeId)) {
|
|
42
|
-
// fallback to language only
|
|
43
|
-
localeId = language;
|
|
44
|
-
}
|
|
45
|
-
if (!SUPPORTED_LOCALES.includes(localeId)) {
|
|
46
|
-
// fallback to english
|
|
47
|
-
localeId = DEFAULT_LOCALE;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return localeId;
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
const resolveMissingMappings = () => {
|
|
55
|
-
if (!cldrMappingFn) {
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
const missingLocales = SUPPORTED_LOCALES.filter(locale => !cldrData[locale] && !cldrUrls[locale]);
|
|
60
|
-
missingLocales.forEach(locale => {
|
|
61
|
-
cldrUrls[locale] = cldrMappingFn(locale);
|
|
62
|
-
});
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
const registerModuleContent = (moduleName, content) => {
|
|
66
|
-
resources.set(moduleName, content);
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
const getModuleContent = moduleName => {
|
|
70
|
-
const moduleContent = resources.get(moduleName);
|
|
71
|
-
if (moduleContent) {
|
|
72
|
-
return moduleContent;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
const missingModule = moduleName.match(/sap\/ui\/core\/cldr\/(\w+)\.json/);
|
|
76
|
-
if (missingModule) {
|
|
77
|
-
throw new Error(`CLDR data for locale ${missingModule[1]} is not loaded!`);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
throw new Error(`Unknown module ${moduleName}`);
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
const fetchCldr = async (language, region, script) => {
|
|
84
|
-
resolveMissingMappings();
|
|
85
|
-
const localeId = calcLocale(language, region, script);
|
|
86
|
-
|
|
87
|
-
let cldrObj = cldrData[localeId];
|
|
88
|
-
const url = cldrUrls[localeId];
|
|
89
|
-
|
|
90
|
-
const OpenUI5Support = getFeature("OpenUI5Support");
|
|
91
|
-
if (!cldrObj && OpenUI5Support) {
|
|
92
|
-
cldrObj = OpenUI5Support.getLocaleDataObject();
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
if (cldrObj) {
|
|
96
|
-
// inlined from build or fetched independently
|
|
97
|
-
registerModuleContent(`sap/ui/core/cldr/${localeId}.json`, cldrObj);
|
|
98
|
-
} else if (url) {
|
|
99
|
-
// fetch it
|
|
100
|
-
const cldrContent = await fetchJsonOnce(getEffectiveAssetPath(url));
|
|
101
|
-
registerModuleContent(`sap/ui/core/cldr/${localeId}.json`, cldrContent);
|
|
102
|
-
}
|
|
103
|
-
};
|
|
104
|
-
|
|
105
|
-
const registerCldr = (locale, url) => {
|
|
106
|
-
cldrUrls[locale] = url;
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
const setCldrData = (locale, data) => {
|
|
110
|
-
cldrData[locale] = data;
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
const getCldrData = locale => {
|
|
114
|
-
return cldrData[locale];
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
const _registerMappingFunction = mappingFn => {
|
|
118
|
-
cldrMappingFn = mappingFn;
|
|
119
|
-
};
|
|
120
|
-
|
|
121
|
-
// When the language changes dynamically (the user calls setLanguage),
|
|
122
|
-
// re-fetch the required CDRD data.
|
|
123
|
-
attachLanguageChange(() => {
|
|
124
|
-
const locale = getLocale();
|
|
125
|
-
return fetchCldr(locale.getLanguage(), locale.getRegion(), locale.getScript());
|
|
126
|
-
});
|
|
127
|
-
|
|
128
|
-
export {
|
|
129
|
-
fetchCldr,
|
|
130
|
-
registerCldr,
|
|
131
|
-
setCldrData,
|
|
132
|
-
getCldrData,
|
|
133
|
-
getModuleContent,
|
|
134
|
-
_registerMappingFunction,
|
|
135
|
-
};
|