@ui5/webcomponents-base 0.0.0-a3eca7ade → 0.0.0-a7032d86e
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +1 -1
- package/CHANGELOG.md +219 -0
- package/README.md +28 -6
- package/bundle.esm.js +12 -10
- package/dist/AssetRegistry.d.ts +5 -0
- package/dist/AssetRegistry.js +2 -7
- package/dist/AssetRegistry.js.map +1 -0
- package/dist/Boot.d.ts +8 -0
- package/dist/Boot.js +29 -44
- 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 +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 +12 -54
- package/dist/DOMObserver.js.map +1 -0
- package/dist/Device.d.ts +12 -0
- package/dist/Device.js +54 -79
- 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 -276
- 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 +85 -87
- package/dist/StaticAreaItem.js.map +1 -0
- package/dist/SystemCSSVars.d.ts +2 -0
- package/dist/SystemCSSVars.js +4 -5
- package/dist/SystemCSSVars.js.map +1 -0
- package/dist/Theming.d.ts +3 -0
- package/dist/Theming.js +1 -1
- package/dist/Theming.js.map +1 -0
- package/dist/UI5Element.d.ts +373 -0
- package/dist/UI5Element.js +929 -985
- package/dist/UI5Element.js.map +1 -0
- package/dist/UI5ElementMetadata.d.ts +150 -0
- package/dist/UI5ElementMetadata.js +278 -314
- 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 +86 -121
- 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 -127
- package/dist/asset-registries/LocaleData.js.map +1 -0
- package/dist/asset-registries/Themes.d.ts +10 -0
- package/dist/asset-registries/Themes.js +38 -66
- package/dist/asset-registries/Themes.js.map +1 -0
- package/dist/asset-registries/i18n.d.ts +23 -0
- package/dist/asset-registries/i18n.js +55 -81
- package/dist/asset-registries/i18n.js.map +1 -0
- package/dist/assets/bundle.esm.0cfce34f.js +56 -0
- package/dist/assets-meta/IconCollectionsAlias.d.ts +17 -0
- package/dist/assets-meta/IconCollectionsAlias.js +4 -4
- package/dist/assets-meta/IconCollectionsAlias.js.map +1 -0
- package/dist/config/AnimationMode.d.ts +14 -0
- package/dist/config/AnimationMode.js +21 -18
- package/dist/config/AnimationMode.js.map +1 -0
- package/dist/config/CalendarType.d.ts +8 -0
- package/dist/config/CalendarType.js +13 -12
- package/dist/config/CalendarType.js.map +1 -0
- package/dist/config/FormatSettings.d.ts +11 -0
- package/dist/config/FormatSettings.js +10 -8
- package/dist/config/FormatSettings.js.map +1 -0
- package/dist/config/Icons.d.ts +30 -0
- package/dist/config/Icons.js +48 -0
- package/dist/config/Icons.js.map +1 -0
- package/dist/config/Language.d.ts +31 -0
- package/dist/config/Language.js +31 -43
- package/dist/config/Language.js.map +1 -0
- package/dist/config/NoConflict.d.ts +20 -0
- package/dist/config/NoConflict.js +40 -41
- package/dist/config/NoConflict.js.map +1 -0
- package/dist/config/RTL.d.ts +7 -0
- package/dist/config/RTL.js +23 -20
- package/dist/config/RTL.js.map +1 -0
- package/dist/config/Theme.d.ts +28 -0
- package/dist/config/Theme.js +38 -29
- 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 +31 -10
- package/dist/decorators/customElement.d.ts +8 -0
- package/dist/decorators/customElement.js +16 -0
- package/dist/decorators/customElement.js.map +1 -0
- package/dist/decorators/event.d.ts +10 -0
- package/dist/decorators/event.js +24 -0
- package/dist/decorators/event.js.map +1 -0
- package/dist/decorators/fastNavigation.d.ts +7 -0
- package/dist/decorators/fastNavigation.js +13 -0
- package/dist/decorators/fastNavigation.js.map +1 -0
- package/dist/decorators/languageAware.d.ts +7 -0
- package/dist/decorators/languageAware.js +13 -0
- package/dist/decorators/languageAware.js.map +1 -0
- package/dist/decorators/property.d.ts +9 -0
- package/dist/decorators/property.js +24 -0
- package/dist/decorators/property.js.map +1 -0
- package/dist/decorators/slot.d.ts +9 -0
- package/dist/decorators/slot.js +37 -0
- package/dist/decorators/slot.js.map +1 -0
- package/dist/decorators/themeAware.d.ts +7 -0
- package/dist/decorators/themeAware.js +13 -0
- package/dist/decorators/themeAware.js.map +1 -0
- package/dist/delegate/ItemNavigation.d.ts +113 -0
- package/dist/delegate/ItemNavigation.js +277 -312
- package/dist/delegate/ItemNavigation.js.map +1 -0
- package/dist/delegate/ResizeHandler.d.ts +24 -0
- package/dist/delegate/ResizeHandler.js +68 -91
- package/dist/delegate/ResizeHandler.js.map +1 -0
- package/dist/delegate/ScrollEnablement.d.ts +48 -0
- package/dist/delegate/ScrollEnablement.js +157 -180
- package/dist/delegate/ScrollEnablement.js.map +1 -0
- package/dist/features/F6Navigation.d.ts +16 -0
- package/dist/features/F6Navigation.js +106 -100
- 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 +91 -119
- package/dist/features/OpenUI5Support.js.map +1 -0
- package/dist/generated/AssetParameters.js +1 -1
- package/dist/generated/VersionInfo.js +3 -3
- package/dist/generated/css/BusyIndicator.css.js +5 -0
- package/dist/generated/css/FontFace.css.js +1 -1
- 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/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 +31 -24
- package/dist/renderer/LitRenderer.js.map +1 -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 +28 -29
- package/dist/sap/base/assert.js +5 -6
- package/dist/sap/base/security/URLListValidator.js +13 -2
- package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +1 -1
- package/dist/theming/CustomStyle.d.ts +6 -0
- package/dist/theming/CustomStyle.js +29 -43
- package/dist/theming/CustomStyle.js.map +1 -0
- package/dist/theming/ThemeLoaded.d.ts +5 -0
- package/dist/theming/ThemeLoaded.js +8 -16
- package/dist/theming/ThemeLoaded.js.map +1 -0
- package/dist/theming/applyTheme.d.ts +2 -0
- package/dist/theming/applyTheme.js +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 +13 -16
- package/dist/theming/getEffectiveLinksHrefs.js.map +1 -0
- package/dist/theming/getEffectiveStyle.d.ts +3 -0
- package/dist/theming/getEffectiveStyle.js +25 -23
- 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 +25 -0
- 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 +21 -17
- 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 +16 -38
- package/dist/util/Caret.js.map +1 -0
- package/dist/util/ColorConversion.d.ts +30 -0
- package/dist/util/ColorConversion.js +315 -348
- package/dist/util/ColorConversion.js.map +1 -0
- package/dist/util/FetchHelper.d.ts +3 -0
- package/dist/util/FetchHelper.js +19 -25
- package/dist/util/FetchHelper.js.map +1 -0
- package/dist/util/FocusableElements.d.ts +4 -0
- package/dist/util/FocusableElements.js +54 -71
- package/dist/util/FocusableElements.js.map +1 -0
- package/dist/util/HTMLSanitizer.d.ts +3 -0
- package/dist/util/HTMLSanitizer.js +4 -5
- package/dist/util/HTMLSanitizer.js.map +1 -0
- package/dist/util/InvisibleMessage.d.ts +10 -0
- package/dist/util/InvisibleMessage.js +41 -45
- 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 +400 -0
- package/dist/util/getClassCopy.js +7 -7
- package/dist/util/getClassCopy.js.map +1 -0
- package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -0
- package/dist/util/getDesigntimePropertyAsArray.js +4 -3
- package/dist/util/getDesigntimePropertyAsArray.js.map +1 -0
- package/dist/util/getEffectiveContentDensity.d.ts +2 -0
- package/dist/util/getEffectiveContentDensity.js +2 -3
- package/dist/util/getEffectiveContentDensity.js.map +1 -0
- package/dist/util/getEffectiveScrollbarStyle.d.ts +2 -0
- package/dist/util/getEffectiveScrollbarStyle.js +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 +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/global.d.ts +44 -0
- package/lib/generate-asset-parameters/index.js +8 -4
- package/lib/generate-styles/index.js +17 -9
- package/lib/generate-version-info/index.js +18 -13
- package/package-scripts.js +29 -29
- package/package.json +7 -6
- package/src/{AssetRegistry.js → AssetRegistry.ts} +0 -0
- package/src/Boot.ts +61 -0
- package/src/{CSP.js → CSP.ts} +14 -7
- package/src/{CustomElementsRegistry.js → CustomElementsRegistry.ts} +20 -17
- package/src/CustomElementsScope.ts +33 -0
- package/src/{CustomElementsScope.js → CustomElementsScopeUtils.ts} +14 -7
- package/src/DOMObserver.ts +28 -0
- package/src/{Device.js → Device.ts} +21 -13
- 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} +53 -12
- package/src/Keys.ts +295 -0
- package/src/ManagedStyles.ts +92 -0
- package/src/MarkedEvents.ts +20 -0
- package/src/{MediaRange.js → MediaRange.ts} +54 -53
- package/src/{PropertiesFileFormat.js → PropertiesFileFormat.ts} +8 -8
- package/src/{Render.js → Render.ts} +25 -20
- package/src/{RenderQueue.js → RenderQueue.ts} +10 -5
- package/src/{Runtimes.js → Runtimes.ts} +15 -8
- package/src/{StaticArea.js → StaticArea.ts} +0 -0
- package/src/{StaticAreaItem.js → StaticAreaItem.ts} +31 -19
- package/src/{SystemCSSVars.js → SystemCSSVars.ts} +0 -0
- package/src/{Theming.js → Theming.ts} +0 -0
- package/src/{UI5Element.js → UI5Element.ts} +280 -148
- package/src/{UI5ElementMetadata.js → UI5ElementMetadata.ts} +121 -59
- 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.js → LocaleData.ts} +42 -29
- package/src/asset-registries/Themes.ts +67 -0
- package/src/asset-registries/{i18n.js → i18n.ts} +21 -24
- package/src/assets-meta/{IconCollectionsAlias.js → IconCollectionsAlias.ts} +0 -0
- package/src/config/AnimationMode.ts +33 -0
- package/src/config/{CalendarType.js → CalendarType.ts} +8 -3
- package/src/config/FormatSettings.ts +21 -0
- package/src/config/Icons.ts +59 -0
- package/src/config/{Language.js → Language.ts} +22 -18
- package/src/config/NoConflict.ts +67 -0
- package/src/config/{RTL.js → RTL.ts} +14 -4
- package/src/config/Theme.ts +64 -0
- package/src/config/ThemeRoots.ts +41 -0
- package/src/css/BusyIndicator.css +80 -0
- package/src/css/FontFace.css +31 -10
- package/src/decorators/customElement.ts +17 -0
- package/src/decorators/event.ts +28 -0
- package/src/decorators/fastNavigation.ts +14 -0
- package/src/decorators/languageAware.ts +14 -0
- package/src/decorators/property.ts +30 -0
- package/src/decorators/slot.ts +49 -0
- package/src/decorators/themeAware.ts +14 -0
- package/src/delegate/{ItemNavigation.js → ItemNavigation.ts} +65 -23
- package/src/delegate/{ResizeHandler.js → ResizeHandler.ts} +25 -36
- package/src/delegate/ScrollEnablement.ts +221 -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/{i18nBundle.js → i18nBundle.ts} +44 -22
- 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.ts +40 -0
- package/src/theming/{CustomStyle.js → CustomStyle.ts} +11 -9
- package/src/theming/{ThemeLoaded.js → ThemeLoaded.ts} +6 -4
- package/src/theming/{applyTheme.js → applyTheme.ts} +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} +15 -4
- 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.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.js → HTMLSanitizer.ts} +2 -0
- package/src/util/{InvisibleMessage.js → InvisibleMessage.ts} +15 -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/{getActiveElement.js → getActiveElement.ts} +0 -0
- package/src/util/{getClassCopy.js → getClassCopy.ts} +3 -1
- package/src/util/{getDesigntimePropertyAsArray.js → getDesigntimePropertyAsArray.ts} +1 -1
- package/src/util/getEffectiveContentDensity.ts +5 -0
- package/src/util/getEffectiveScrollbarStyle.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.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/config/.eslintrc.js +0 -3
- package/config/rollup.config.js +0 -1
- package/dist/RenderScheduler.js +0 -44
- package/dist/animations/config.js +0 -5
- package/dist/isLegacyBrowser.js +0 -3
- package/dist/resources/bundle.esm.js +0 -37
- 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 -77
- package/dist/test-resources/pages/AllTestElements.html +0 -42
- package/dist/test-resources/pages/Configuration.html +0 -18
- package/dist/test-resources/pages/ConfigurationScript.html +0 -34
- 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 -33
- package/dist/test-resources/specs/ConfigurationChange.spec.js +0 -27
- package/dist/test-resources/specs/ConfigurationScript.spec.js +0 -63
- package/dist/test-resources/specs/ConfigurationURL.spec.js +0 -93
- package/dist/test-resources/specs/CustomTheme.spec.js +0 -27
- package/dist/test-resources/specs/EventProvider.spec.js +0 -63
- package/dist/test-resources/specs/StaticArea.spec.js +0 -78
- package/dist/test-resources/specs/Theming.spec.js +0 -33
- package/dist/test-resources/specs/UI5ElementInvalidation.js +0 -242
- package/dist/test-resources/specs/UI5ElementLifecycle.js +0 -98
- package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +0 -75
- package/dist/test-resources/specs/UI5ElementMetadataExt.js +0 -42
- package/dist/test-resources/specs/UI5ElementPropertyValidation.js +0 -14
- package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +0 -67
- package/dist/test-resources/specs/UI5ElementShadowDOM.js +0 -24
- package/dist/test-resources/specs/UI5ElementSlots.js +0 -36
- package/dist/types/CSSSize.js +0 -9
- package/dist/types/PopupState.js +0 -37
- 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/setToArray.js +0 -10
- package/hash.txt +0 -1
- package/src/Boot.js +0 -59
- package/src/DOMObserver.js +0 -65
- package/src/FeaturesRegistry.js +0 -14
- package/src/Keys.js +0 -280
- 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 -139
- package/src/asset-registries/Illustrations.js +0 -30
- package/src/asset-registries/Themes.js +0 -78
- package/src/config/AnimationMode.js +0 -23
- package/src/config/FormatSettings.js +0 -13
- package/src/config/NoConflict.js +0 -51
- package/src/config/Theme.js +0 -42
- package/src/delegate/ScrollEnablement.js +0 -188
- package/src/features/F6Navigation.js +0 -106
- package/src/features/OpenUI5Support.js +0 -125
- package/src/isLegacyBrowser.js +0 -3
- package/src/locale/RTLAwareRegistry.js +0 -14
- package/src/locale/languageChange.js +0 -22
- package/src/renderer/LitRenderer.js +0 -34
- package/src/renderer/executeTemplate.js +0 -17
- package/src/theming/getEffectiveLinksHrefs.js +0 -20
- 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 -30
- package/src/util/AriaLabelHelper.js +0 -41
- package/src/util/Caret.js +0 -45
- package/src/util/ColorConversion.js +0 -370
- 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/findNodeOwner.js +0 -35
- package/src/util/getEffectiveContentDensity.js +0 -5
- 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
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @param node Text node or HTML element
|
|
4
4
|
* @returns {string}
|
|
5
5
|
*/
|
|
6
|
-
const getSlotName = node => {
|
|
6
|
+
const getSlotName = (node: Node) => {
|
|
7
7
|
// Text nodes can only go to the default slot
|
|
8
8
|
if (!(node instanceof HTMLElement)) {
|
|
9
9
|
return "default";
|
|
@@ -20,24 +20,20 @@ const getSlotName = node => {
|
|
|
20
20
|
return "default";
|
|
21
21
|
};
|
|
22
22
|
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
if (isSlot(el)) {
|
|
27
|
-
return el.assignedNodes({ flatten: true }).filter(item => item instanceof HTMLElement);
|
|
23
|
+
const getSlottedNodes = (node: Node) => {
|
|
24
|
+
if (node instanceof HTMLSlotElement) {
|
|
25
|
+
return node.assignedNodes({ flatten: true }).filter(item => item instanceof HTMLElement);
|
|
28
26
|
}
|
|
29
27
|
|
|
30
|
-
return [
|
|
28
|
+
return [node];
|
|
31
29
|
};
|
|
32
30
|
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
return elList.reduce(reducer, []);
|
|
31
|
+
const getSlottedNodesList = (nodeList: Array<Node>) => {
|
|
32
|
+
return nodeList.reduce((acc, curr) => acc.concat(getSlottedNodes(curr)), [] as Array<Node>);
|
|
36
33
|
};
|
|
37
34
|
|
|
38
35
|
export {
|
|
39
36
|
getSlotName,
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
getSlottedElementsList,
|
|
37
|
+
getSlottedNodes,
|
|
38
|
+
getSlottedNodesList,
|
|
43
39
|
};
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
const kebabToCamelMap = new Map();
|
|
2
|
-
const camelToKebabMap = new Map();
|
|
1
|
+
const kebabToCamelMap = new Map<string, string>();
|
|
2
|
+
const camelToKebabMap = new Map<string, string>();
|
|
3
3
|
|
|
4
|
-
const kebabToCamelCase = string => {
|
|
4
|
+
const kebabToCamelCase = (string: string) => {
|
|
5
5
|
if (!kebabToCamelMap.has(string)) {
|
|
6
6
|
const result = toCamelCase(string.split("-"));
|
|
7
7
|
kebabToCamelMap.set(string, result);
|
|
8
8
|
}
|
|
9
|
-
return kebabToCamelMap.get(string)
|
|
9
|
+
return kebabToCamelMap.get(string)!;
|
|
10
10
|
};
|
|
11
11
|
|
|
12
|
-
const camelToKebabCase = string => {
|
|
12
|
+
const camelToKebabCase = (string: string) => {
|
|
13
13
|
if (!camelToKebabMap.has(string)) {
|
|
14
14
|
const result = string.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
|
|
15
15
|
camelToKebabMap.set(string, result);
|
|
16
16
|
}
|
|
17
|
-
return camelToKebabMap.get(string)
|
|
17
|
+
return camelToKebabMap.get(string)!;
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
-
const toCamelCase = parts => {
|
|
20
|
+
const toCamelCase = (parts: Array<string>) => {
|
|
21
21
|
return parts.map((string, index) => {
|
|
22
22
|
return index === 0 ? string.toLowerCase() : string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();
|
|
23
23
|
}).join("");
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import isElementTabbable from "./isElementTabbable.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Returns the tabbable elements within the provided HTMLElement.
|
|
5
|
+
*
|
|
6
|
+
* @public
|
|
7
|
+
* @param { HTMLElement } el the component to operate on (component that slots or contains within its shadow root the items the user navigates among)
|
|
8
|
+
* @returns { Array<HTMLElement> } the tabbable elements
|
|
9
|
+
*/
|
|
10
|
+
const getTabbableElements = (el: HTMLElement): Array<HTMLElement> => {
|
|
11
|
+
return getTabbables([...el.children]);
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Returns the last tabbable element within the provided HTMLElement.
|
|
16
|
+
*
|
|
17
|
+
* @public
|
|
18
|
+
* @param { HTMLElement } el the component to operate on (component that slots or contains within its shadow root the items the user navigates among)
|
|
19
|
+
* @returns { HTMLElement | null } the last tabbable element or "null" if not found
|
|
20
|
+
*/
|
|
21
|
+
const getLastTabbableElement = (el: HTMLElement): HTMLElement | null => {
|
|
22
|
+
const tabbables = getTabbables([...el.children]);
|
|
23
|
+
return tabbables.length ? tabbables[tabbables.length - 1] : null;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
const getTabbables = (nodes: Array<Node>, tabbables?: Array<HTMLElement>): Array<HTMLElement> => {
|
|
27
|
+
const tabbableElements = tabbables || [];
|
|
28
|
+
|
|
29
|
+
if (!nodes) {
|
|
30
|
+
return tabbableElements;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
nodes.forEach(currentNode => {
|
|
34
|
+
if (currentNode.nodeType === Node.TEXT_NODE || currentNode.nodeType === Node.COMMENT_NODE) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
let currentElement = currentNode as HTMLElement;
|
|
39
|
+
if (currentElement.hasAttribute("data-sap-no-tab-ref")) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
if (currentElement.shadowRoot) {
|
|
44
|
+
// get the root node of the ShadowDom (1st none style tag)
|
|
45
|
+
const children = currentElement.shadowRoot.children;
|
|
46
|
+
currentElement = Array.from(children).find(node => node.tagName !== "STYLE") as HTMLElement;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
if (!currentElement) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
if (isElementTabbable(currentElement)) {
|
|
54
|
+
tabbableElements.push(currentElement);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
if (currentElement.tagName === "SLOT") {
|
|
58
|
+
getTabbables((currentElement as HTMLSlotElement).assignedNodes() as Array<HTMLElement>, tabbableElements);
|
|
59
|
+
} else {
|
|
60
|
+
getTabbables([...currentElement.children], tabbableElements);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
return tabbableElements;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
export {
|
|
68
|
+
getTabbableElements,
|
|
69
|
+
getLastTabbableElement,
|
|
70
|
+
};
|
|
@@ -2,18 +2,24 @@
|
|
|
2
2
|
* Creates a <link> tag in the <head> tag
|
|
3
3
|
* @param href - the CSS
|
|
4
4
|
* @param attributes - optional attributes to add to the tag
|
|
5
|
-
* @returns {HTMLElement}
|
|
6
5
|
*/
|
|
7
|
-
const createLinkInHead = (href, attributes
|
|
6
|
+
const createLinkInHead = (href: string, attributes?: Record<string, string>) => {
|
|
8
7
|
const link = document.createElement("link");
|
|
9
8
|
link.type = "text/css";
|
|
10
9
|
link.rel = "stylesheet";
|
|
11
10
|
|
|
12
|
-
|
|
11
|
+
if (attributes) {
|
|
12
|
+
Object.entries(attributes).forEach(pair => link.setAttribute(...pair));
|
|
13
|
+
}
|
|
13
14
|
|
|
14
15
|
link.href = href;
|
|
16
|
+
|
|
15
17
|
document.head.appendChild(link);
|
|
16
|
-
|
|
18
|
+
|
|
19
|
+
return new Promise<Event>(resolve => {
|
|
20
|
+
link.addEventListener("load", resolve);
|
|
21
|
+
link.addEventListener("error", resolve); // intended
|
|
22
|
+
});
|
|
17
23
|
};
|
|
18
24
|
|
|
19
25
|
export default createLinkInHead;
|
|
@@ -4,11 +4,13 @@
|
|
|
4
4
|
* @param attributes - optional attributes to add to the tag
|
|
5
5
|
* @returns {HTMLElement}
|
|
6
6
|
*/
|
|
7
|
-
const createStyleInHead = (cssText, attributes
|
|
7
|
+
const createStyleInHead = (cssText: string, attributes?: Record<string, string>) => {
|
|
8
8
|
const style = document.createElement("style");
|
|
9
9
|
style.type = "text/css";
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
if (attributes) {
|
|
12
|
+
Object.entries(attributes).forEach(pair => style.setAttribute(...pair));
|
|
13
|
+
}
|
|
12
14
|
|
|
13
15
|
style.textContent = cssText;
|
|
14
16
|
document.head.appendChild(style);
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
+
import { Timeout } from "../types.js";
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Delays function execution by given threshold.
|
|
3
5
|
* @param fn {Function}
|
|
4
6
|
* @param delay {Integer}
|
|
5
7
|
*/
|
|
8
|
+
let debounceInterval: Timeout | null = null;
|
|
6
9
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const debounce = (fn, delay) => {
|
|
10
|
-
clearTimeout(debounceInterval);
|
|
10
|
+
const debounce = (fn: () => void, delay: number) => {
|
|
11
|
+
debounceInterval && clearTimeout(debounceInterval);
|
|
11
12
|
debounceInterval = setTimeout(() => {
|
|
12
13
|
debounceInterval = null;
|
|
13
14
|
fn();
|
|
@@ -7,7 +7,7 @@ export default () => {
|
|
|
7
7
|
return navigator.language;
|
|
8
8
|
};
|
|
9
9
|
|
|
10
|
-
const rawLocale = (browserLanguages && browserLanguages[0]) || navigatorLanguage()
|
|
10
|
+
const rawLocale = (browserLanguages && browserLanguages[0]) || navigatorLanguage();
|
|
11
11
|
|
|
12
12
|
return rawLocale || DEFAULT_LANGUAGE;
|
|
13
13
|
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Escapes a regular expression text so that it can be used in a regular expression.
|
|
3
|
+
*
|
|
4
|
+
* @param { string } text the string to be interpreted literally
|
|
5
|
+
* @returns { string } the escaped string
|
|
6
|
+
*/
|
|
7
|
+
const escapeRegex = (text: string) => {
|
|
8
|
+
return text.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export default escapeRegex;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
const messageFormatRegEX = /('')|'([^']+(?:''[^']*)*)(?:'|$)|\{([0-9]+(?:\s*,[^{}]*)?)\}|[{}]/g;
|
|
2
2
|
|
|
3
|
-
const formatMessage = (text, values) => {
|
|
3
|
+
const formatMessage = (text: string, values: Array<number | string>) => {
|
|
4
4
|
values = values || [];
|
|
5
5
|
|
|
6
|
-
return text.replace(messageFormatRegEX, ($0, $1, $2, $3, offset) => {
|
|
6
|
+
return text.replace(messageFormatRegEX, ($0, $1, $2, $3: string | number, offset: number) => {
|
|
7
7
|
if ($1) {
|
|
8
8
|
return '\''; /* eslint-disable-line */
|
|
9
9
|
}
|
|
@@ -13,7 +13,8 @@ const formatMessage = (text, values) => {
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
if ($3) {
|
|
16
|
-
|
|
16
|
+
const ind = typeof $3 === "string" ? parseInt($3) : $3;
|
|
17
|
+
return String(values[ind]);
|
|
17
18
|
}
|
|
18
19
|
|
|
19
20
|
throw new Error(`[i18n]: pattern syntax error at pos ${offset}`);
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import escapeRegex from "./escapeRegex.js";
|
|
2
|
+
// @ts-ignore
|
|
2
3
|
import encodeXML from "../sap/base/security/encodeXML.js";
|
|
3
4
|
|
|
4
5
|
// utility to replace all occurances of a string
|
|
5
|
-
function replaceAll(text, find, replace, caseInsensitive) {
|
|
6
|
-
return text.
|
|
6
|
+
function replaceAll(text: string, find: string, replace: string | ((substring: string, ...args: any[]) => string), caseInsensitive: boolean) {
|
|
7
|
+
return text.replaceAll(new RegExp(escapeRegex(find), `${caseInsensitive ? "i" : ""}g`), replace as string);
|
|
7
8
|
}
|
|
8
9
|
|
|
9
10
|
/**
|
|
@@ -13,13 +14,13 @@ function replaceAll(text, find, replace, caseInsensitive) {
|
|
|
13
14
|
* @param {string} textToHighlight The text which should be highlighted
|
|
14
15
|
* @return {string} the markup HTML which contains all occurrances of the input text surrounded with a `<b>` tag.
|
|
15
16
|
*/
|
|
16
|
-
function generateHighlightedMarkup(text, textToHighlight) {
|
|
17
|
+
function generateHighlightedMarkup(text: string, textToHighlight: string) {
|
|
17
18
|
if (!text || !textToHighlight) {
|
|
18
19
|
return text;
|
|
19
20
|
}
|
|
20
21
|
// a token is some string that does not appear in either of the input strings
|
|
21
22
|
// repeat the token until it does not appear in the string
|
|
22
|
-
const makeToken = t => {
|
|
23
|
+
const makeToken = (t: string) => {
|
|
23
24
|
const [s, e] = t.split("");
|
|
24
25
|
while (text.indexOf(t) >= 0 || textToHighlight.indexOf(t) >= 0) {
|
|
25
26
|
t = `${s}${t}${e}`;
|
|
@@ -31,10 +32,10 @@ function generateHighlightedMarkup(text, textToHighlight) {
|
|
|
31
32
|
const openToken = makeToken("12");
|
|
32
33
|
const closeToken = makeToken("34");
|
|
33
34
|
// wrap every occurance of the textToHighlight using the open/close tokens (instead of markup at this point)
|
|
34
|
-
let result = encodeXML(replaceAll(text, textToHighlight, match => `${openToken}${match}${closeToken}`, true));
|
|
35
|
+
let result = encodeXML(replaceAll(text, textToHighlight, (match: string) => `${openToken}${match}${closeToken}`, true)) as string;
|
|
35
36
|
// now replace the open and close tokens with the markup that we expect
|
|
36
37
|
[[openToken, "<b>"], [closeToken, "</b>"]].forEach(([find, replace]) => {
|
|
37
|
-
result = replaceAll(result, find, replace);
|
|
38
|
+
result = replaceAll(result, find, replace, false);
|
|
38
39
|
});
|
|
39
40
|
return result;
|
|
40
41
|
}
|
|
File without changes
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
let groups: Array<HTMLElement> = [];
|
|
2
|
+
|
|
3
|
+
const isFastNavGroupElemenet = (el: HTMLElement) => {
|
|
4
|
+
return el.getAttribute("data-sap-ui-fastnavgroup") === "true";
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
const isElementVisible = (el: HTMLElement) => {
|
|
8
|
+
const style = window.getComputedStyle(el);
|
|
9
|
+
|
|
10
|
+
return style.width !== "0px"
|
|
11
|
+
&& style.height !== "0px"
|
|
12
|
+
&& style.opacity !== "0"
|
|
13
|
+
&& style.display !== "none"
|
|
14
|
+
&& style.visibility !== "hidden";
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const findFastNavigationGroups = (container: HTMLElement, startFromContainer?: boolean) => {
|
|
18
|
+
let child,
|
|
19
|
+
assignedElements,
|
|
20
|
+
index = 0;
|
|
21
|
+
|
|
22
|
+
if (!isElementVisible(container)) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
if (isFastNavGroupElemenet(container)) {
|
|
27
|
+
groups.push(container);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
if (container.shadowRoot) {
|
|
31
|
+
child = container.shadowRoot.firstChild;
|
|
32
|
+
} else if (container instanceof HTMLSlotElement && container.assignedNodes()) {
|
|
33
|
+
assignedElements = container.assignedNodes();
|
|
34
|
+
child = assignedElements[0];
|
|
35
|
+
} else if (startFromContainer) {
|
|
36
|
+
child = container;
|
|
37
|
+
} else {
|
|
38
|
+
child = container.firstElementChild;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
while (child) {
|
|
42
|
+
const originalChild: HTMLElement = child as HTMLElement;
|
|
43
|
+
if (!child) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
if (child.nodeType === 1) {
|
|
48
|
+
findFastNavigationGroups(child as HTMLElement, false);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
child = assignedElements && assignedElements.length ? assignedElements[++index] : originalChild.nextElementSibling;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
const getFastNavigationGroups = (container: HTMLElement) => {
|
|
56
|
+
groups = [];
|
|
57
|
+
|
|
58
|
+
findFastNavigationGroups(container, true);
|
|
59
|
+
|
|
60
|
+
return groups;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
export default getFastNavigationGroups;
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
* "file.with.many.dots.doc" -> ".doc"
|
|
6
6
|
* ".gitignore" -> ""
|
|
7
7
|
*
|
|
8
|
-
* @param fileName - the file name
|
|
9
|
-
* @returns {string}
|
|
8
|
+
* @param { string } fileName - the file name
|
|
9
|
+
* @returns { string }
|
|
10
10
|
*/
|
|
11
|
-
const getFileExtension = fileName => {
|
|
11
|
+
const getFileExtension = (fileName: string) => {
|
|
12
12
|
const dotPos = fileName.lastIndexOf(".");
|
|
13
13
|
|
|
14
14
|
if (dotPos < 1) {
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns the normalized event target in cases when it has shadow root.
|
|
3
|
+
* @param {Object} target The original event target
|
|
4
|
+
* @returns {Object} The normalized target
|
|
5
|
+
*/
|
|
6
|
+
const getNormalizedTarget = (target: HTMLElement) => {
|
|
7
|
+
let element = target;
|
|
8
|
+
|
|
9
|
+
if (target.shadowRoot && target.shadowRoot.activeElement) {
|
|
10
|
+
element = target.shadowRoot.activeElement as HTMLElement;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
return element;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export default getNormalizedTarget;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
const rClickable = /^(?:a|area)$/i;
|
|
2
|
+
const rFocusable = /^(?:input|select|textarea|button)$/i;
|
|
3
|
+
|
|
4
|
+
const isElementClickable = (el: HTMLElement): boolean => {
|
|
5
|
+
if ((el as HTMLButtonElement).disabled) {
|
|
6
|
+
return false;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const tabIndex = el.getAttribute("tabindex");
|
|
10
|
+
if (tabIndex !== null && tabIndex !== undefined) {
|
|
11
|
+
return parseInt(tabIndex) >= 0;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
return rFocusable.test(el.nodeName)
|
|
15
|
+
|| (rClickable.test(el.nodeName)
|
|
16
|
+
&& !!(el as HTMLLinkElement).href);
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export default isElementClickable;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import isElementHidden from "./isElementHidden.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Returns if the HTMLElement is tabbable.
|
|
5
|
+
*
|
|
6
|
+
* @public
|
|
7
|
+
* @param { HTMLElement } el the component to operate on (component that slots or contains within its shadow root the items the user navigates among)
|
|
8
|
+
* @returns { boolean } true if the element is tabbable or false - if not
|
|
9
|
+
*/
|
|
10
|
+
const isElementTabbable = (el: HTMLElement): boolean => {
|
|
11
|
+
if (!el) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const nodeName = el.nodeName.toLowerCase();
|
|
16
|
+
|
|
17
|
+
if (el.hasAttribute("data-sap-no-tab-ref")) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if (isElementHidden(el)) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const tabIndex = el.getAttribute("tabindex");
|
|
26
|
+
if (tabIndex !== null && tabIndex !== undefined) {
|
|
27
|
+
return parseInt(tabIndex) >= 0;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
if (nodeName === "a" || /input|select|textarea|button|object/.test(nodeName)) {
|
|
31
|
+
return !(el as HTMLLinkElement).disabled;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return false;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export default isElementTabbable;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
const willShowContent = (childNodes: Array<Node>) => {
|
|
2
|
+
return Array.from(childNodes).filter(node => {
|
|
3
|
+
return node.nodeType !== Node.COMMENT_NODE && (node.nodeType !== Node.TEXT_NODE || (node.nodeValue || "").trim().length !== 0);
|
|
4
|
+
}).length > 0;
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
export default willShowContent;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
const getMetaTagValue = (metaTagName: string) => {
|
|
2
|
+
const metaTag = document.querySelector(`META[name="${metaTagName}"]`),
|
|
3
|
+
metaTagContent = metaTag && metaTag.getAttribute("content");
|
|
4
|
+
|
|
5
|
+
return metaTagContent;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
const validateThemeOrigin = (origin: string) => {
|
|
9
|
+
const allowedOrigins = getMetaTagValue("sap-allowedThemeOrigins");
|
|
10
|
+
|
|
11
|
+
return allowedOrigins && allowedOrigins.split(",").some(allowedOrigin => {
|
|
12
|
+
return allowedOrigin === "*" || origin === allowedOrigin.trim();
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const buildCorrectUrl = (oldUrl: string, newOrigin: string) => {
|
|
17
|
+
const oldUrlPath = new URL(oldUrl).pathname;
|
|
18
|
+
|
|
19
|
+
return new URL(oldUrlPath, newOrigin).toString();
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const validateThemeRoot = (themeRoot: string) => {
|
|
23
|
+
let themeRootURL,
|
|
24
|
+
resultUrl;
|
|
25
|
+
|
|
26
|
+
try {
|
|
27
|
+
themeRootURL = new URL(themeRoot);
|
|
28
|
+
|
|
29
|
+
const origin = themeRootURL.origin;
|
|
30
|
+
|
|
31
|
+
themeRootURL = themeRootURL.toString();
|
|
32
|
+
|
|
33
|
+
if (themeRootURL.startsWith(".") || themeRootURL.startsWith("/")) {
|
|
34
|
+
// Handle relative url
|
|
35
|
+
// new URL("/newExmPath", "http://example.com/exmPath") => http://example.com/newExmPath
|
|
36
|
+
// new URL("./newExmPath", "http://example.com/exmPath") => http://example.com/exmPath/newExmPath
|
|
37
|
+
// new URL("../newExmPath", "http://example.com/exmPath") => http://example.com/newExmPath
|
|
38
|
+
resultUrl = new URL(themeRootURL, window.location.href).toString();
|
|
39
|
+
} else if (origin && validateThemeOrigin(origin)) {
|
|
40
|
+
// If origin is allowed, use it
|
|
41
|
+
resultUrl = themeRootURL.toString();
|
|
42
|
+
} else {
|
|
43
|
+
// If origin is not allow and the URL is not relative, we have to replace the origin
|
|
44
|
+
// with current location
|
|
45
|
+
resultUrl = buildCorrectUrl(themeRootURL, window.location.href);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
if (!resultUrl.endsWith("/")) {
|
|
49
|
+
resultUrl = `${resultUrl}/`;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return `${resultUrl}UI5/`;
|
|
53
|
+
} catch (e) {
|
|
54
|
+
// Catch if URL is not correct
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
export default validateThemeRoot;
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"include": ["src/**/*", "global.d.ts"],
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"target": "ES2021",
|
|
5
|
+
// Generate d.ts files
|
|
6
|
+
"declaration": true,
|
|
7
|
+
"outDir": "dist",
|
|
8
|
+
"skipLibCheck": true,
|
|
9
|
+
"sourceMap": true,
|
|
10
|
+
"strict": true,
|
|
11
|
+
"moduleResolution": "node",
|
|
12
|
+
},
|
|
13
|
+
}
|
package/config/.eslintrc.js
DELETED
package/config/rollup.config.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require("@ui5/webcomponents-tools/components-package/rollup.js");
|