@ui5/webcomponents-base 0.0.0-d9933bd82 → 0.0.0-db622d8a8
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 +8 -3
- package/.npsrc.json +3 -0
- package/CHANGELOG.md +758 -0
- package/README.md +57 -7
- package/bundle.esm.js +36 -18
- package/config/wdio.conf.cjs +400 -0
- package/dist/AssetRegistry.d.ts +5 -0
- package/dist/AssetRegistry.js +6 -9
- package/dist/AssetRegistry.js.map +1 -0
- package/dist/Boot.d.ts +9 -0
- package/dist/Boot.js +71 -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 +73 -18
- package/dist/CustomElementsRegistry.js.map +1 -0
- package/dist/CustomElementsScope.d.ts +7 -0
- package/dist/CustomElementsScope.js +11 -0
- 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 +159 -816
- package/dist/Device.js.map +1 -0
- package/dist/EventProvider.d.ts +25 -0
- package/dist/EventProvider.js +67 -70
- 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 +21 -69
- package/dist/FontFace.js.map +1 -0
- package/dist/IgnoreCustomElements.d.ts +27 -0
- package/dist/IgnoreCustomElements.js +39 -0
- package/dist/IgnoreCustomElements.js.map +1 -0
- package/dist/InitialConfiguration.d.ts +27 -0
- package/dist/InitialConfiguration.js +128 -103
- package/dist/InitialConfiguration.js.map +1 -0
- package/dist/Keys.d.ts +57 -0
- package/dist/Keys.js +175 -158
- package/dist/Keys.js.map +1 -0
- package/dist/ManagedStyles.d.ts +8 -0
- package/dist/ManagedStyles.js +84 -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 +53 -39
- 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 +3 -0
- package/dist/StaticArea.js +4 -38
- package/dist/StaticArea.js.map +1 -0
- package/dist/StaticAreaItem.d.ts +36 -0
- package/dist/StaticAreaItem.js +95 -98
- package/dist/StaticAreaItem.js.map +1 -0
- package/dist/SystemCSSVars.d.ts +2 -0
- package/dist/SystemCSSVars.js +9 -0
- package/dist/SystemCSSVars.js.map +1 -0
- package/dist/Theming.d.ts +3 -0
- package/dist/Theming.js +3 -2
- package/dist/Theming.js.map +1 -0
- package/dist/UI5Element.d.ts +380 -0
- package/dist/UI5Element.js +948 -906
- package/dist/UI5Element.js.map +1 -0
- package/dist/UI5ElementMetadata.d.ts +150 -0
- package/dist/UI5ElementMetadata.js +278 -158
- 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 +38 -0
- package/dist/asset-registries/Icons.js +125 -24
- 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 +125 -114
- package/dist/asset-registries/LocaleData.js.map +1 -0
- package/dist/asset-registries/Themes.d.ts +11 -0
- package/dist/asset-registries/Themes.js +41 -76
- package/dist/asset-registries/Themes.js.map +1 -0
- package/dist/asset-registries/i18n.d.ts +23 -0
- package/dist/asset-registries/i18n.js +80 -58
- package/dist/asset-registries/i18n.js.map +1 -0
- package/dist/assets/Boot.34b7cea0.css +1 -0
- package/dist/assets/Boot.48b53df7.js +9 -0
- package/dist/assets/bundle.esm.7885cd75.js +50 -0
- package/dist/assets-meta/IconCollectionsAlias.d.ts +31 -0
- package/dist/assets-meta/IconCollectionsAlias.js +38 -0
- package/dist/assets-meta/IconCollectionsAlias.js.map +1 -0
- package/dist/config/AnimationMode.d.ts +14 -0
- package/dist/config/AnimationMode.js +23 -10
- package/dist/config/AnimationMode.js.map +1 -0
- package/dist/config/CalendarType.d.ts +8 -0
- package/dist/config/CalendarType.js +13 -12
- package/dist/config/CalendarType.js.map +1 -0
- package/dist/config/FormatSettings.d.ts +15 -0
- package/dist/config/FormatSettings.js +15 -9
- package/dist/config/FormatSettings.js.map +1 -0
- package/dist/config/Icons.d.ts +55 -0
- package/dist/config/Icons.js +103 -0
- package/dist/config/Icons.js.map +1 -0
- package/dist/config/Language.d.ts +40 -0
- package/dist/config/Language.js +66 -10
- package/dist/config/Language.js.map +1 -0
- package/dist/config/NoConflict.d.ts +20 -0
- package/dist/config/NoConflict.js +41 -41
- package/dist/config/NoConflict.js.map +1 -0
- package/dist/config/RTL.d.ts +7 -0
- package/dist/config/RTL.js +26 -20
- package/dist/config/RTL.js.map +1 -0
- package/dist/config/Theme.d.ts +38 -0
- package/dist/config/Theme.js +64 -22
- package/dist/config/Theme.js.map +1 -0
- package/dist/config/ThemeRoot.d.ts +29 -0
- package/dist/config/ThemeRoot.js +59 -0
- package/dist/config/ThemeRoot.js.map +1 -0
- package/dist/config/Timezone.d.ts +17 -0
- package/dist/config/Timezone.js +30 -0
- package/dist/config/Timezone.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 +23 -0
- package/dist/decorators/customElement.js +37 -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/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/delegate/ItemNavigation.d.ts +113 -0
- package/dist/delegate/ItemNavigation.js +312 -274
- package/dist/delegate/ItemNavigation.js.map +1 -0
- package/dist/delegate/ResizeHandler.d.ts +25 -0
- package/dist/delegate/ResizeHandler.js +84 -63
- 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 +19 -0
- package/dist/features/F6Navigation.js +151 -0
- package/dist/features/F6Navigation.js.map +1 -0
- package/dist/features/LegacyDateFormats.d.ts +18 -0
- package/dist/features/LegacyDateFormats.js +20 -0
- package/dist/features/LegacyDateFormats.js.map +1 -0
- package/dist/features/OpenUI5Element.d.ts +9 -0
- package/dist/features/OpenUI5Element.js +5 -0
- package/dist/features/OpenUI5Element.js.map +1 -0
- package/dist/features/OpenUI5Enablement.d.ts +11 -0
- package/dist/features/OpenUI5Enablement.js +96 -0
- package/dist/features/OpenUI5Enablement.js.map +1 -0
- package/dist/features/OpenUI5Support.d.ts +26 -0
- package/dist/features/OpenUI5Support.js +95 -86
- package/dist/features/OpenUI5Support.js.map +1 -0
- package/dist/generated/AssetParameters.js +3 -1
- package/dist/generated/VersionInfo.js +10 -0
- package/dist/generated/css/BusyIndicator.css.d.ts +3 -0
- package/dist/generated/css/BusyIndicator.css.js +7 -0
- package/dist/generated/css/BusyIndicator.css.js.map +1 -0
- package/dist/generated/css/FontFace.css.d.ts +3 -0
- package/dist/generated/css/FontFace.css.js +7 -0
- package/dist/generated/css/FontFace.css.js.map +1 -0
- package/dist/generated/css/OverrideFontFace.css.d.ts +3 -0
- package/dist/generated/css/OverrideFontFace.css.js +7 -0
- package/dist/generated/css/OverrideFontFace.css.js.map +1 -0
- package/dist/generated/css/SystemCSSVars.css.d.ts +3 -0
- package/dist/generated/css/SystemCSSVars.css.js +7 -0
- package/dist/generated/css/SystemCSSVars.css.js.map +1 -0
- package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +9 -0
- package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js.map +1 -0
- package/dist/getSharedResource.d.ts +11 -0
- package/dist/getSharedResource.js +40 -0
- package/dist/getSharedResource.js.map +1 -0
- package/dist/global.d.ts +40 -0
- package/dist/i18nBundle.d.ts +43 -0
- package/dist/i18nBundle.js +74 -28
- 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 +9 -0
- package/dist/locale/RTLAwareRegistry.js.map +1 -0
- package/dist/locale/applyDirection.d.ts +10 -0
- package/dist/locale/applyDirection.js +17 -0
- 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 +28 -21
- package/dist/locale/getLocale.js.map +1 -0
- package/dist/locale/languageChange.d.ts +5 -0
- package/dist/locale/languageChange.js +14 -0
- 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 +38 -12
- 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 +30 -0
- 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 +46 -17
- package/dist/theming/CustomStyle.js.map +1 -0
- package/dist/theming/ThemeLoaded.d.ts +5 -0
- package/dist/theming/ThemeLoaded.js +14 -0
- package/dist/theming/ThemeLoaded.js.map +1 -0
- package/dist/theming/ThemeRegistered.d.ts +4 -0
- package/dist/theming/ThemeRegistered.js +11 -0
- package/dist/theming/ThemeRegistered.js.map +1 -0
- package/dist/theming/applyTheme.d.ts +2 -0
- package/dist/theming/applyTheme.js +64 -69
- package/dist/theming/applyTheme.js.map +1 -0
- package/dist/theming/getConstructableStyle.d.ts +9 -0
- package/dist/theming/getConstructableStyle.js +15 -15
- 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 +30 -13
- package/dist/theming/getEffectiveStyle.js.map +1 -0
- package/dist/theming/getStylesString.d.ts +3 -0
- package/dist/theming/getStylesString.js +11 -0
- 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 +15 -0
- package/dist/types/CSSColor.js +18 -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 +17 -0
- package/dist/types/Float.js +21 -0
- package/dist/types/Float.js.map +1 -0
- package/dist/types/Integer.d.ts +17 -0
- package/dist/types/Integer.js +17 -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 -5
- 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 +41 -0
- package/dist/updateShadowRoot.js.map +1 -0
- package/dist/util/AriaLabelHelper.d.ts +15 -0
- package/dist/util/AriaLabelHelper.js +171 -0
- 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 +68 -56
- 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 +13 -0
- 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 +9 -0
- 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/{src/util/getFileExtension.js → dist/util/getFileExtension.d.ts} +3 -12
- 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 +11 -0
- package/dist/util/getSingletonElementInstance.js +19 -0
- 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 +19 -14
- 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 +48 -0
- package/dist/validateThemeRoot.js.map +1 -0
- package/index.js +228 -2
- package/lib/generate-asset-parameters/index.js +11 -6
- package/lib/generate-styles/index.js +31 -0
- package/lib/generate-version-info/index.js +32 -0
- package/package-scripts.cjs +71 -0
- package/package.json +21 -12
- 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/renderer/directives/style-map.js +72 -0
- package/tsconfig.json +14 -0
- package/used-modules.txt +10 -0
- package/bundle.es5.js +0 -28
- package/config/rollup.config.js +0 -1
- package/config/wdio.conf.js +0 -1
- package/dist/RenderScheduler.js +0 -146
- package/dist/SVGIconRegistry.js +0 -60
- package/dist/animations/config.js +0 -5
- package/dist/boot.js +0 -32
- package/dist/compatibility/DOMObserver.js +0 -62
- package/dist/compatibility/patchNodeValue.js +0 -24
- package/dist/compatibility/whenPolyfillLoaded.js +0 -26
- package/dist/delegate/CustomResize.js +0 -78
- package/dist/delegate/NativeResize.js +0 -44
- package/dist/features/browsersupport/Edge.js +0 -6
- package/dist/features/browsersupport/IE11.js +0 -41
- package/dist/features/browsersupport/IE11WithWebComponentsPolyfill.js +0 -5
- package/dist/renderer/ifDefined.js +0 -21
- package/dist/resources/bundle.es5.js +0 -212
- 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 -13
- 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 -37
- 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/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 -258
- package/dist/test-resources/specs/UI5ElementLifecycle.js +0 -93
- package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +0 -101
- 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 -24
- package/dist/theming/adaptCSSForIE.js +0 -90
- package/dist/theming/createComponentStyleTag.js +0 -49
- 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.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/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 -13
- package/dist/util/isNodeTabbable.js +0 -28
- package/dist/util/isSlot.js +0 -3
- package/dist/webcomponentsjs/LICENSE.md +0 -19
- package/dist/webcomponentsjs/README.md +0 -229
- package/dist/webcomponentsjs/bundles/webcomponents-ce.js +0 -63
- package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -297
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -208
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
- package/dist/webcomponentsjs/bundles/webcomponents-sd.js +0 -166
- package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
- package/dist/webcomponentsjs/custom-elements-es5-adapter.js +0 -15
- package/dist/webcomponentsjs/package.json +0 -46
- package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
- package/dist/webcomponentsjs/webcomponents-bundle.js +0 -298
- package/dist/webcomponentsjs/webcomponents-bundle.js.map +0 -1
- package/dist/webcomponentsjs/webcomponents-loader.js +0 -185
- package/package-scripts.js +0 -47
- package/src/AssetRegistry.js +0 -9
- package/src/CustomElementsRegistry.js +0 -23
- package/src/Device.js +0 -823
- package/src/EventProvider.js +0 -73
- package/src/FeaturesRegistry.js +0 -11
- package/src/FontFace.js +0 -73
- package/src/InitialConfiguration.js +0 -131
- package/src/Keys.js +0 -161
- package/src/RenderQueue.js +0 -42
- package/src/RenderScheduler.js +0 -146
- package/src/SVGIconRegistry.js +0 -60
- package/src/StaticArea.js +0 -41
- package/src/StaticAreaItem.js +0 -105
- package/src/Theming.js +0 -3
- package/src/UI5Element.js +0 -926
- package/src/UI5ElementMetadata.js +0 -171
- package/src/animations/AnimationQueue.js +0 -42
- package/src/animations/animate.js +0 -53
- package/src/animations/config.js +0 -5
- package/src/animations/scroll.js +0 -28
- package/src/animations/slideDown.js +0 -79
- package/src/animations/slideUp.js +0 -71
- package/src/asset-registries/Icons.js +0 -24
- package/src/asset-registries/LocaleData.js +0 -125
- package/src/asset-registries/Themes.js +0 -87
- package/src/asset-registries/i18n.js +0 -79
- package/src/boot.js +0 -32
- 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 -13
- package/src/config/CalendarType.js +0 -18
- package/src/config/FormatSettings.js +0 -13
- package/src/config/Language.js +0 -12
- package/src/config/NoConflict.js +0 -51
- package/src/config/RTL.js +0 -31
- package/src/config/Theme.js +0 -28
- package/src/delegate/CustomResize.js +0 -78
- package/src/delegate/ItemNavigation.js +0 -278
- package/src/delegate/NativeResize.js +0 -44
- package/src/delegate/ResizeHandler.js +0 -66
- package/src/delegate/ScrollEnablement.js +0 -159
- package/src/features/OpenUI5Support.js +0 -90
- package/src/features/browsersupport/Edge.js +0 -6
- package/src/features/browsersupport/IE11.js +0 -41
- package/src/features/browsersupport/IE11WithWebComponentsPolyfill.js +0 -5
- package/src/i18nBundle.js +0 -33
- package/src/locale/Locale.js +0 -91
- package/src/locale/getLocale.js +0 -31
- package/src/locale/nextFallbackLocale.js +0 -28
- package/src/locale/normalizeLocale.js +0 -54
- package/src/renderer/LitRenderer.js +0 -15
- package/src/renderer/ifDefined.js +0 -21
- package/src/theming/CSSVarsPonyfill.js +0 -24
- package/src/theming/CustomStyle.js +0 -19
- package/src/theming/adaptCSSForIE.js +0 -90
- package/src/theming/applyTheme.js +0 -81
- package/src/theming/createComponentStyleTag.js +0 -49
- package/src/theming/createThemePropertiesStyleTag.js +0 -20
- package/src/theming/getConstructableStyle.js +0 -25
- package/src/theming/getEffectiveStyle.js +0 -15
- 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.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/_merge.js +0 -32
- 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/isPlainObject.js +0 -18
- 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/CalendarType.js +0 -22
- package/src/types/DataType.js +0 -25
- package/src/types/Integer.js +0 -9
- package/src/types/ItemNavigationBehavior.js +0 -21
- package/src/types/NavigationMode.js +0 -6
- package/src/types/PopupState.js +0 -37
- package/src/types/ValueState.js +0 -22
- package/src/util/FetchHelper.js +0 -31
- package/src/util/FocusableElements.js +0 -60
- package/src/util/StringHelper.js +0 -26
- package/src/util/TabbableElements.js +0 -47
- package/src/util/createStyleInHead.js +0 -18
- package/src/util/detectNavigatorLanguage.js +0 -13
- package/src/util/findNodeOwner.js +0 -35
- package/src/util/formatMessage.js +0 -23
- package/src/util/getDesigntimePropertyAsArray.js +0 -4
- package/src/util/isDescendantOf.js +0 -15
- package/src/util/isNodeClickable.js +0 -19
- package/src/util/isNodeHidden.js +0 -13
- package/src/util/isNodeTabbable.js +0 -28
- package/src/util/isSlot.js +0 -3
- package/src/util/isValidPropertyName.js +0 -23
- package/src/util/whenDOMReady.js +0 -13
- /package/{config/.eslintrc.js → .eslintrc.cjs} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScrollEnablement.js","sourceRoot":"","sources":["../../src/delegate/ScrollEnablement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAChD,OAAO,MAAM,MAAM,yBAAyB,CAAC;AAG7C,MAAM,eAAe,GAAG,QAAQ,CAAC;AACjC,MAAM,iBAAiB,GAAG,aAAa,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;AAQnE,MAAM,gBAAiB,SAAQ,aAAsF;IAcpH,YAAY,kBAA8B;QACzC,KAAK,EAAE,CAAC;QANT,kBAAa,GAAG,aAAa,EAAE,CAAC;QAO/B,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAI,CAAC,aAAa,GAAG,aAAa,EAAE,CAAC;QAErC,gGAAgG;QAChG,4FAA4F;QAC5F,oBAAoB;QACpB,IAAI,CAAC,WAAW,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAE1C,8FAA8F;QAC9F,4CAA4C;QAC5C,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAEhB,IAAI,IAAI,CAAC,aAAa,EAAE;YACvB,kBAAkB,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACtF,kBAAkB,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACpF,kBAAkB,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;SACjF;aAAM;YACN,kBAAkB,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;SACrF;IACF,CAAC;IAED,IAAI,eAAe,CAAC,SAAsB;QACzC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,IAAI,eAAe;QAClB,OAAO,IAAI,CAAC,UAAW,CAAC;IACzB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,GAAW,EAAE,UAAU,GAAG,CAAC,EAAE,aAAa,GAAG,CAAC;QAC1E,IAAI,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,GAAG,CAAC,CAAC;QAErG,mDAAmD;QACnD,OAAO,CAAC,gBAAgB,IAAI,UAAU,GAAG,CAAC,EAAE;YAC3C,MAAM,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;gBACjC,UAAU,CAAC,GAAG,EAAE;oBACf,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,GAAG,CAAC,CAAC;oBACjG,UAAU,EAAE,CAAC;oBACb,OAAO,EAAE,CAAC;gBACX,CAAC,EAAE,aAAa,CAAC,CAAC;YACnB,CAAC,CAAC,CAAC;SACH;QACD,mDAAmD;QAEnD,IAAI,CAAC,UAAW,CAAC,UAAU,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,UAAW,CAAC,SAAS,GAAG,GAAG,CAAC;IAClC,CAAC;IAED,IAAI,CAAC,EAAU,EAAE,EAAU,EAAE,gBAAyB;QACrD,IAAI,gBAAgB,EAAE;YACrB,IAAI,CAAC,UAAW,CAAC,UAAU,IAAI,EAAE,CAAC;YAClC,IAAI,CAAC,UAAW,CAAC,SAAS,IAAI,EAAE,CAAC;YACjC,OAAO;SACP;QAED,IAAI,IAAI,CAAC,UAAU,EAAE;YACpB,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;SACvC;IACF,CAAC;IAED,aAAa;QACZ,OAAO,IAAI,CAAC,UAAW,CAAC,UAAU,CAAC;IACpC,CAAC;IAED,YAAY;QACX,OAAO,IAAI,CAAC,UAAW,CAAC,SAAS,CAAC;IACnC,CAAC;IAED,cAAc,CAAC,KAA8B;QAC5C,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,IAAI,IAAI,CAAC,aAAa,IAAI,KAAK,YAAY,UAAU,EAAE;YACtD,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SACzB;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,UAAW,CAAC,qBAAqB,EAAE,CAAC;QACtD,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAE,KAAmB,CAAC,OAAO,CAAC,CAAC,CAAE,KAAoB,CAAC,CAAC,CAAC;QACtF,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAE,KAAmB,CAAC,OAAO,CAAC,CAAC,CAAE,KAAoB,CAAC,CAAC,CAAC;QAEtF,OAAO,CAAE,IAAI,IAAI,CAAC,IAAI,IAAI,CAAE,IAAI,IAAI,CAAC,KAAK;eACtC,CAAE,IAAI,IAAI,CAAC,GAAG,IAAI,CAAE,IAAI,IAAI,CAAC,MAAM,CAAC;IACzC,CAAC;IAED,YAAY,CAAC,KAA8B;QAC1C,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,IAAI,IAAI,CAAC,aAAa,IAAI,KAAK,YAAY,UAAU,EAAE;YACtD,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SACzB;QAED,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACxB,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACtE,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;SAC1E;aAAM;YACN,wBAAwB;YACxB,IAAI,CAAC,MAAM,GAAG,KAAM,CAAC,KAAK,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,KAAM,CAAC,KAAK,CAAC;SAC3B;QAED,IAAI,IAAI,CAAC,aAAa,IAAI,KAAK,YAAY,UAAU,EAAE;YACtD,IAAI,CAAC,UAAU,GAAG,KAAM,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,KAAM,CAAC,KAAK,CAAC;SAC/B;QAED,IAAI,KAAK,YAAY,UAAU,EAAE;YAChC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC;SAC1B;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,WAAW,CAAC,KAA8B;QACzC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACrB,OAAO;SACP;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAE,KAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE3E,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAE,KAAmB,CAAC,KAAK,CAAC,CAAC,CAAE,KAAoB,CAAC,CAAC,CAAC;QACxF,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAE,KAAmB,CAAC,KAAK,CAAC,CAAC,CAAE,KAAoB,CAAC,CAAC,CAAC;QAExF,SAAU,CAAC,UAAU,IAAI,IAAI,CAAC,UAAW,GAAG,KAAM,CAAC;QACnD,SAAU,CAAC,SAAS,IAAI,IAAI,CAAC,UAAW,GAAG,KAAM,CAAC;QAElD,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE;YAC/B,MAAM,EAAE,KAAM,GAAG,IAAI,CAAC,UAAW;YACjC,OAAO,EAAE,KAAM,GAAG,IAAI,CAAC,UAAW;SAClC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,UAAW,CAAC;QAC1C,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,UAAW,CAAC;QAE1C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,UAAU,CAAC,KAA8B;QACxC,IAAI,IAAI,CAAC,aAAa,EAAE;YACvB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAE,KAAoB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;YACrF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAE,KAAoB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;YAErF,IAAI,MAAM,GAAG,EAAE,IAAI,MAAM,GAAG,EAAE,EAAE;gBAC/B,OAAO;aACP;SACD;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACrB,OAAO;SACP;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAE,KAAoB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,KAAoB,CAAC,CAAC,CAAC;QAC3G,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAE,KAAoB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,KAAoB,CAAC,CAAC,CAAC;QAE3G,SAAU,CAAC,UAAU,IAAI,IAAI,CAAC,UAAW,GAAG,KAAK,CAAC;QAClD,SAAU,CAAC,SAAS,IAAI,IAAI,CAAC,UAAW,GAAG,KAAK,CAAC;QAEjD,MAAM,eAAe,GAAG,KAAK,KAAK,IAAI,CAAC,UAAU,CAAC;QAClD,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QAChE,iFAAiF;QAEjF,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE;YACjC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,UAAW;YACjC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC,UAAW;SAClC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAExB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACxB,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1D,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SACtD;IACF,CAAC;CACD;AAED,eAAe,gBAAgB,CAAC","sourcesContent":["import { supportsTouch } from \"../Device.js\";\nimport EventProvider from \"../EventProvider.js\";\nimport scroll from \"../animations/scroll.js\";\nimport type UI5Element from \"../UI5Element.js\";\n\nconst scrollEventName = \"scroll\";\nconst touchEndEventName = supportsTouch() ? \"touchend\" : \"mouseup\";\n\ntype ScrollEnablementEventListenerParam = {\n\tisLeft: boolean;\n\tisRight: boolean\n}\ntype ScrollEnablementEventListenerReturn = void;\n\nclass ScrollEnablement extends EventProvider<ScrollEnablementEventListenerParam, ScrollEnablementEventListenerReturn> {\n\tcontainerComponent: UI5Element;\n\tmouseMove: (event: MouseEvent | TouchEvent) => void;\n\tmouseUp: (event: MouseEvent | TouchEvent) => void;\n\ttouchStart: (event: MouseEvent | TouchEvent) => void;\n\tcachedValue: { dragX: number, dragY: number };\n\tstartX: number;\n\tstartY: number;\n\t_container?: HTMLElement;\n\tsupportsTouch = supportsTouch();\n\t_canScroll?: boolean;\n\t_prevDragX?: number;\n\t_prevDragY?: number;\n\n\tconstructor(containerComponent: UI5Element) {\n\t\tsuper();\n\t\tthis.containerComponent = containerComponent;\n\t\tthis.mouseMove = this.ontouchmove.bind(this);\n\t\tthis.mouseUp = this.ontouchend.bind(this);\n\t\tthis.touchStart = this.ontouchstart.bind(this);\n\n\t\tthis.supportsTouch = supportsTouch();\n\n\t\t// On Android devices touchmove is thrown one more time than neccessary (together with touchend)\n\t\t// so we have to cache the previus coordinates in order to provide correct parameters in the\n\t\t// event for Android\n\t\tthis.cachedValue = { dragX: 0, dragY: 0 };\n\n\t\t// In components like Carousel you need to know if the user has clicked on something or swiped\n\t\t// in order to throw the needed event or not\n\t\tthis.startX = 0;\n\t\tthis.startY = 0;\n\n\t\tif (this.supportsTouch) {\n\t\t\tcontainerComponent.addEventListener(\"touchstart\", this.touchStart, { passive: true });\n\t\t\tcontainerComponent.addEventListener(\"touchmove\", this.mouseMove, { passive: true });\n\t\t\tcontainerComponent.addEventListener(\"touchend\", this.mouseUp, { passive: true });\n\t\t} else {\n\t\t\tcontainerComponent.addEventListener(\"mousedown\", this.touchStart, { passive: true });\n\t\t}\n\t}\n\n\tset scrollContainer(container: HTMLElement) {\n\t\tthis._container = container;\n\t}\n\n\tget scrollContainer() {\n\t\treturn this._container!;\n\t}\n\n\t/**\n\t * Scrolls the container to the left/top position, retrying retryCount times, if the container is not yet painted\n\t *\n\t * @param left\n\t * @param top\n\t * @param retryCount\n\t * @param retryInterval\n\t * @returns {Promise<void>} resolved when scrolled successfully\n\t */\n\tasync scrollTo(left: number, top: number, retryCount = 0, retryInterval = 0) {\n\t\tlet containerPainted = this.scrollContainer.clientHeight > 0 && this.scrollContainer.clientWidth > 0;\n\n\t\t/* eslint-disable no-loop-func, no-await-in-loop */\n\t\twhile (!containerPainted && retryCount > 0) {\n\t\t\tawait new Promise<void>(resolve => {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tcontainerPainted = this.scrollContainer.clientHeight > 0 && this.scrollContainer.clientWidth > 0;\n\t\t\t\t\tretryCount--;\n\t\t\t\t\tresolve();\n\t\t\t\t}, retryInterval);\n\t\t\t});\n\t\t}\n\t\t/* eslint-disable no-loop-func, no-await-in-loop */\n\n\t\tthis._container!.scrollLeft = left;\n\t\tthis._container!.scrollTop = top;\n\t}\n\n\tmove(dx: number, dy: number, disableAnimation: boolean) {\n\t\tif (disableAnimation) {\n\t\t\tthis._container!.scrollLeft += dx;\n\t\t\tthis._container!.scrollTop += dy;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._container) {\n\t\t\treturn scroll(this._container, dx, dy);\n\t\t}\n\t}\n\n\tgetScrollLeft() {\n\t\treturn this._container!.scrollLeft;\n\t}\n\n\tgetScrollTop() {\n\t\treturn this._container!.scrollTop;\n\t}\n\n\t_isTouchInside(event: TouchEvent | MouseEvent) {\n\t\tlet touch = null;\n\t\tif (this.supportsTouch && event instanceof TouchEvent) {\n\t\t\ttouch = event.touches[0];\n\t\t}\n\n\t\tconst rect = this._container!.getBoundingClientRect();\n\t\tconst x = this.supportsTouch ? (touch as TouchInit).clientX : (event as MouseEvent).x;\n\t\tconst y = this.supportsTouch ? (touch as TouchInit).clientY : (event as MouseEvent).y;\n\n\t\treturn x! >= rect.left && x! <= rect.right\n\t\t\t&& y! >= rect.top && y! <= rect.bottom;\n\t}\n\n\tontouchstart(event: TouchEvent | MouseEvent) {\n\t\tlet touch = null;\n\t\tif (this.supportsTouch && event instanceof TouchEvent) {\n\t\t\ttouch = event.touches[0];\n\t\t}\n\n\t\tif (!this.supportsTouch) {\n\t\t\tdocument.addEventListener(\"mouseup\", this.mouseUp, { passive: true });\n\t\t\tdocument.addEventListener(\"mousemove\", this.mouseMove, { passive: true });\n\t\t} else {\n\t\t\t// Needed only on mobile\n\t\t\tthis.startX = touch!.pageX;\n\t\t\tthis.startY = touch!.pageY;\n\t\t}\n\n\t\tif (this.supportsTouch && event instanceof TouchEvent) {\n\t\t\tthis._prevDragX = touch!.pageX;\n\t\t\tthis._prevDragY = touch!.pageY;\n\t\t}\n\n\t\tif (event instanceof MouseEvent) {\n\t\t\tthis._prevDragX = event.x;\n\t\t\tthis._prevDragY = event.y;\n\t\t}\n\n\t\tthis._canScroll = this._isTouchInside(event);\n\t}\n\n\tontouchmove(event: TouchEvent | MouseEvent) {\n\t\tif (!this._canScroll) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst container = this._container;\n\t\tconst touch = this.supportsTouch ? (event as TouchEvent).touches[0] : null;\n\n\t\tconst dragX = this.supportsTouch ? (touch as TouchInit).pageX : (event as MouseEvent).x;\n\t\tconst dragY = this.supportsTouch ? (touch as TouchInit).pageY : (event as MouseEvent).y;\n\n\t\tcontainer!.scrollLeft += this._prevDragX! - dragX!;\n\t\tcontainer!.scrollTop += this._prevDragY! - dragY!;\n\n\t\tthis.fireEvent(scrollEventName, {\n\t\t\tisLeft: dragX! > this._prevDragX!,\n\t\t\tisRight: dragX! < this._prevDragX!,\n\t\t});\n\n\t\tthis.cachedValue.dragX = this._prevDragX!;\n\t\tthis.cachedValue.dragY = this._prevDragY!;\n\n\t\tthis._prevDragX = dragX;\n\t\tthis._prevDragY = dragY;\n\t}\n\n\tontouchend(event: TouchEvent | MouseEvent) {\n\t\tif (this.supportsTouch) {\n\t\t\tconst deltaX = Math.abs((event as TouchEvent).changedTouches[0].pageX - this.startX);\n\t\t\tconst deltaY = Math.abs((event as TouchEvent).changedTouches[0].pageY - this.startY);\n\n\t\t\tif (deltaX < 10 && deltaY < 10) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (!this._canScroll) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst container = this._container;\n\t\tconst dragX = this.supportsTouch ? (event as TouchEvent).changedTouches[0].pageX : (event as MouseEvent).x;\n\t\tconst dragY = this.supportsTouch ? (event as TouchEvent).changedTouches[0].pageY : (event as MouseEvent).y;\n\n\t\tcontainer!.scrollLeft += this._prevDragX! - dragX;\n\t\tcontainer!.scrollTop += this._prevDragY! - dragY;\n\n\t\tconst useCachedValues = dragX === this._prevDragX;\n\t\tconst _dragX = useCachedValues ? this.cachedValue.dragX : dragX;\n\t\t// const _dragY = useCachedValues ? this.cachedValue.dragY : dragY; add if needed\n\n\t\tthis.fireEvent(touchEndEventName, {\n\t\t\tisLeft: _dragX < this._prevDragX!,\n\t\t\tisRight: _dragX > this._prevDragX!,\n\t\t});\n\n\t\tthis._prevDragX = dragX;\n\t\tthis._prevDragY = dragY;\n\n\t\tif (!this.supportsTouch) {\n\t\t\tdocument.removeEventListener(\"mousemove\", this.mouseMove);\n\t\t\tdocument.removeEventListener(\"mouseup\", this.mouseUp);\n\t\t}\n\t}\n}\n\nexport default ScrollEnablement;\nexport type {\n\tScrollEnablementEventListenerParam,\n};\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
declare class F6Navigation {
|
|
2
|
+
static _instance: F6Navigation;
|
|
3
|
+
keydownHandler: (event: KeyboardEvent) => void;
|
|
4
|
+
selectedGroup: HTMLElement | null;
|
|
5
|
+
groups: Array<HTMLElement>;
|
|
6
|
+
constructor();
|
|
7
|
+
attachEventListeners(): void;
|
|
8
|
+
groupElementToFocus(nextElement: HTMLElement): Promise<HTMLElement | undefined>;
|
|
9
|
+
findNextFocusableGroupElement(currentIndex: number): Promise<HTMLElement | undefined>;
|
|
10
|
+
findPreviousFocusableGroupElement(currentIndex: number): Promise<HTMLElement | undefined>;
|
|
11
|
+
_keydownHandler(event: KeyboardEvent): Promise<void>;
|
|
12
|
+
removeEventListeners(): void;
|
|
13
|
+
updateGroups(): void;
|
|
14
|
+
setSelectedGroup(root?: DocumentOrShadowRoot): void;
|
|
15
|
+
deepActive(root: DocumentOrShadowRoot): Element | null;
|
|
16
|
+
destroy(): void;
|
|
17
|
+
static init(): F6Navigation;
|
|
18
|
+
}
|
|
19
|
+
export default F6Navigation;
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { registerFeature } from "../FeaturesRegistry.js";
|
|
2
|
+
import { isF6Next, isF6Previous } from "../Keys.js";
|
|
3
|
+
import { instanceOfUI5Element } from "../UI5Element.js";
|
|
4
|
+
import { getFirstFocusableElement } from "../util/FocusableElements.js";
|
|
5
|
+
import getFastNavigationGroups from "../util/getFastNavigationGroups.js";
|
|
6
|
+
import isElementClickable from "../util/isElementClickable.js";
|
|
7
|
+
class F6Navigation {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.selectedGroup = null;
|
|
10
|
+
this.groups = [];
|
|
11
|
+
this.keydownHandler = this._keydownHandler.bind(this);
|
|
12
|
+
this.attachEventListeners();
|
|
13
|
+
}
|
|
14
|
+
attachEventListeners() {
|
|
15
|
+
document.addEventListener("keydown", this.keydownHandler);
|
|
16
|
+
}
|
|
17
|
+
async groupElementToFocus(nextElement) {
|
|
18
|
+
const nextElementDomRef = instanceOfUI5Element(nextElement) ? nextElement.getDomRef() : nextElement;
|
|
19
|
+
if (nextElementDomRef) {
|
|
20
|
+
if (isElementClickable(nextElementDomRef)) {
|
|
21
|
+
return nextElementDomRef;
|
|
22
|
+
}
|
|
23
|
+
const elementToFocus = await getFirstFocusableElement(nextElementDomRef);
|
|
24
|
+
if (elementToFocus) {
|
|
25
|
+
return elementToFocus;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
async findNextFocusableGroupElement(currentIndex) {
|
|
30
|
+
let elementToFocus;
|
|
31
|
+
/* eslint-disable no-await-in-loop */
|
|
32
|
+
for (let index = 0; index < this.groups.length; index++) {
|
|
33
|
+
let nextElement;
|
|
34
|
+
if (currentIndex > -1) {
|
|
35
|
+
if (currentIndex + 1 >= this.groups.length) {
|
|
36
|
+
currentIndex = 0;
|
|
37
|
+
nextElement = this.groups[currentIndex];
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
currentIndex += 1;
|
|
41
|
+
nextElement = this.groups[currentIndex];
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
currentIndex = 0;
|
|
46
|
+
nextElement = this.groups[currentIndex];
|
|
47
|
+
}
|
|
48
|
+
elementToFocus = await this.groupElementToFocus(nextElement);
|
|
49
|
+
if (elementToFocus) {
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/* eslint-enable no-await-in-loop */
|
|
54
|
+
return elementToFocus;
|
|
55
|
+
}
|
|
56
|
+
async findPreviousFocusableGroupElement(currentIndex) {
|
|
57
|
+
let elementToFocus;
|
|
58
|
+
/* eslint-disable no-await-in-loop */
|
|
59
|
+
for (let index = 0; index < this.groups.length; index++) {
|
|
60
|
+
let nextElement;
|
|
61
|
+
if (currentIndex > 0) {
|
|
62
|
+
// Handle the situation where the first focusable element of two neighbor groups is the same
|
|
63
|
+
// For example:
|
|
64
|
+
// <ui5-flexible-column-layout>
|
|
65
|
+
// <ui5-list>
|
|
66
|
+
// <ui5-li>List Item</ui5-li>
|
|
67
|
+
// </ui5-list>
|
|
68
|
+
// </ui5-flexible-column-layout>
|
|
69
|
+
// Here for both FCL & List the firstFoccusableElement is the same (the ui5-li)
|
|
70
|
+
const firstFocusable = await this.groupElementToFocus(this.groups[currentIndex - 1]);
|
|
71
|
+
const shouldSkipParent = firstFocusable === await this.groupElementToFocus(this.groups[currentIndex]);
|
|
72
|
+
currentIndex = shouldSkipParent ? currentIndex - 2 : currentIndex - 1;
|
|
73
|
+
if (currentIndex < 0) {
|
|
74
|
+
currentIndex = this.groups.length - 1;
|
|
75
|
+
}
|
|
76
|
+
nextElement = this.groups[currentIndex];
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
currentIndex = this.groups.length - 1;
|
|
80
|
+
nextElement = this.groups[currentIndex];
|
|
81
|
+
}
|
|
82
|
+
elementToFocus = await this.groupElementToFocus(nextElement);
|
|
83
|
+
if (elementToFocus) {
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/* eslint-enable no-await-in-loop */
|
|
88
|
+
return elementToFocus;
|
|
89
|
+
}
|
|
90
|
+
async _keydownHandler(event) {
|
|
91
|
+
const forward = isF6Next(event);
|
|
92
|
+
const backward = isF6Previous(event);
|
|
93
|
+
if (!(forward || backward)) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
this.updateGroups();
|
|
97
|
+
if (this.groups.length < 1) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
event.preventDefault();
|
|
101
|
+
let elementToFocus;
|
|
102
|
+
if (this.groups.length === 0) {
|
|
103
|
+
elementToFocus = await this.groupElementToFocus(this.groups[0]);
|
|
104
|
+
return elementToFocus?.focus();
|
|
105
|
+
}
|
|
106
|
+
let currentIndex = -1;
|
|
107
|
+
if (this.selectedGroup) {
|
|
108
|
+
currentIndex = this.groups.indexOf(this.selectedGroup);
|
|
109
|
+
}
|
|
110
|
+
if (forward) {
|
|
111
|
+
elementToFocus = await this.findNextFocusableGroupElement(currentIndex);
|
|
112
|
+
}
|
|
113
|
+
if (backward) {
|
|
114
|
+
elementToFocus = await this.findPreviousFocusableGroupElement(currentIndex);
|
|
115
|
+
}
|
|
116
|
+
elementToFocus?.focus();
|
|
117
|
+
}
|
|
118
|
+
removeEventListeners() {
|
|
119
|
+
document.removeEventListener("keydown", this.keydownHandler);
|
|
120
|
+
}
|
|
121
|
+
updateGroups() {
|
|
122
|
+
this.setSelectedGroup();
|
|
123
|
+
this.groups = getFastNavigationGroups(document.body);
|
|
124
|
+
}
|
|
125
|
+
setSelectedGroup(root = window.document) {
|
|
126
|
+
const htmlElement = window.document.querySelector("html");
|
|
127
|
+
let element = this.deepActive(root);
|
|
128
|
+
while (element && element.getAttribute("data-sap-ui-fastnavgroup") !== "true" && element !== htmlElement) {
|
|
129
|
+
element = element.parentElement ? element.parentNode : element.parentNode.host;
|
|
130
|
+
}
|
|
131
|
+
this.selectedGroup = element;
|
|
132
|
+
}
|
|
133
|
+
deepActive(root) {
|
|
134
|
+
if (root.activeElement && root.activeElement.shadowRoot) {
|
|
135
|
+
return this.deepActive(root.activeElement.shadowRoot);
|
|
136
|
+
}
|
|
137
|
+
return root.activeElement;
|
|
138
|
+
}
|
|
139
|
+
destroy() {
|
|
140
|
+
this.removeEventListeners();
|
|
141
|
+
}
|
|
142
|
+
static init() {
|
|
143
|
+
if (!this._instance) {
|
|
144
|
+
this._instance = new F6Navigation();
|
|
145
|
+
}
|
|
146
|
+
return this._instance;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
registerFeature("F6Navigation", F6Navigation);
|
|
150
|
+
export default F6Navigation;
|
|
151
|
+
//# sourceMappingURL=F6Navigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"F6Navigation.js","sourceRoot":"","sources":["../../src/features/F6Navigation.ts"],"names":[],"mappings":"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","sourcesContent":["import { registerFeature } from \"../FeaturesRegistry.js\";\nimport { isF6Next, isF6Previous } from \"../Keys.js\";\nimport { instanceOfUI5Element } from \"../UI5Element.js\";\nimport { getFirstFocusableElement } from \"../util/FocusableElements.js\";\nimport getFastNavigationGroups from \"../util/getFastNavigationGroups.js\";\nimport isElementClickable from \"../util/isElementClickable.js\";\n\nclass F6Navigation {\n\tstatic _instance: F6Navigation;\n\tkeydownHandler: (event: KeyboardEvent) => void;\n\tselectedGroup: HTMLElement | null = null;\n\tgroups: Array<HTMLElement> = [];\n\n\tconstructor() {\n\t\tthis.keydownHandler = this._keydownHandler.bind(this) as (event: KeyboardEvent) => void;\n\t\tthis.attachEventListeners();\n\t}\n\n\tattachEventListeners() {\n\t\tdocument.addEventListener(\"keydown\", this.keydownHandler);\n\t}\n\n\tasync groupElementToFocus(nextElement: HTMLElement) {\n\t\tconst nextElementDomRef = instanceOfUI5Element(nextElement) ? nextElement.getDomRef() : nextElement;\n\n\t\tif (nextElementDomRef) {\n\t\t\tif (isElementClickable(nextElementDomRef)) {\n\t\t\t\treturn nextElementDomRef;\n\t\t\t}\n\n\t\t\tconst elementToFocus = await getFirstFocusableElement(nextElementDomRef);\n\n\t\t\tif (elementToFocus) {\n\t\t\t\treturn elementToFocus;\n\t\t\t}\n\t\t}\n\t}\n\n\tasync findNextFocusableGroupElement(currentIndex: number) {\n\t\tlet elementToFocus;\n\n\t\t/* eslint-disable no-await-in-loop */\n\t\tfor (let index = 0; index < this.groups.length; index++) {\n\t\t\tlet nextElement;\n\n\t\t\tif (currentIndex > -1) {\n\t\t\t\tif (currentIndex + 1 >= this.groups.length) {\n\t\t\t\t\tcurrentIndex = 0;\n\t\t\t\t\tnextElement = this.groups[currentIndex];\n\t\t\t\t} else {\n\t\t\t\t\tcurrentIndex += 1;\n\t\t\t\t\tnextElement = this.groups[currentIndex];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcurrentIndex = 0;\n\t\t\t\tnextElement = this.groups[currentIndex];\n\t\t\t}\n\n\t\t\telementToFocus = await this.groupElementToFocus(nextElement);\n\n\t\t\tif (elementToFocus) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t/* eslint-enable no-await-in-loop */\n\n\t\treturn elementToFocus;\n\t}\n\n\tasync findPreviousFocusableGroupElement(currentIndex: number) {\n\t\tlet elementToFocus;\n\n\t\t/* eslint-disable no-await-in-loop */\n\t\tfor (let index = 0; index < this.groups.length; index++) {\n\t\t\tlet nextElement;\n\n\t\t\tif (currentIndex > 0) {\n\t\t\t\t// Handle the situation where the first focusable element of two neighbor groups is the same\n\t\t\t\t// For example:\n\t\t\t\t// <ui5-flexible-column-layout>\n\t\t\t\t// <ui5-list>\n\t\t\t\t// <ui5-li>List Item</ui5-li>\n\t\t\t\t// </ui5-list>\n\t\t\t\t// </ui5-flexible-column-layout>\n\t\t\t\t// Here for both FCL & List the firstFoccusableElement is the same (the ui5-li)\n\t\t\t\tconst firstFocusable = await this.groupElementToFocus(this.groups[currentIndex - 1]);\n\t\t\t\tconst shouldSkipParent = firstFocusable === await this.groupElementToFocus(this.groups[currentIndex]);\n\n\t\t\t\tcurrentIndex = shouldSkipParent ? currentIndex - 2 : currentIndex - 1;\n\n\t\t\t\tif (currentIndex < 0) {\n\t\t\t\t\tcurrentIndex = this.groups.length - 1;\n\t\t\t\t}\n\n\t\t\t\tnextElement = this.groups[currentIndex];\n\t\t\t} else {\n\t\t\t\tcurrentIndex = this.groups.length - 1;\n\t\t\t\tnextElement = this.groups[currentIndex];\n\t\t\t}\n\n\t\t\telementToFocus = await this.groupElementToFocus(nextElement);\n\n\t\t\tif (elementToFocus) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t/* eslint-enable no-await-in-loop */\n\n\t\treturn elementToFocus;\n\t}\n\n\tasync _keydownHandler(event: KeyboardEvent) {\n\t\tconst forward = isF6Next(event);\n\t\tconst backward = isF6Previous(event);\n\t\tif (!(forward || backward)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.updateGroups();\n\n\t\tif (this.groups.length < 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\n\t\tlet elementToFocus;\n\n\t\tif (this.groups.length === 0) {\n\t\t\telementToFocus = await this.groupElementToFocus(this.groups[0]);\n\n\t\t\treturn elementToFocus?.focus();\n\t\t}\n\n\t\tlet currentIndex = -1;\n\n\t\tif (this.selectedGroup) {\n\t\t\tcurrentIndex = this.groups.indexOf(this.selectedGroup);\n\t\t}\n\n\t\tif (forward) {\n\t\t\telementToFocus = await this.findNextFocusableGroupElement(currentIndex);\n\t\t}\n\n\t\tif (backward) {\n\t\t\telementToFocus = await this.findPreviousFocusableGroupElement(currentIndex);\n\t\t}\n\n\t\telementToFocus?.focus();\n\t}\n\n\tremoveEventListeners() {\n\t\tdocument.removeEventListener(\"keydown\", this.keydownHandler);\n\t}\n\n\tupdateGroups() {\n\t\tthis.setSelectedGroup();\n\t\tthis.groups = getFastNavigationGroups(document.body);\n\t}\n\n\tsetSelectedGroup(root: DocumentOrShadowRoot = window.document) {\n\t\tconst htmlElement = window.document.querySelector(\"html\");\n\t\tlet element: Element | null | ParentNode = this.deepActive(root);\n\n\t\twhile (element && (element as Element).getAttribute(\"data-sap-ui-fastnavgroup\") !== \"true\" && element !== htmlElement) {\n\t\t\telement = element.parentElement ? element.parentNode : (element.parentNode as ShadowRoot).host;\n\t\t}\n\n\t\tthis.selectedGroup = element as HTMLElement;\n\t}\n\n\tdeepActive(root: DocumentOrShadowRoot): Element | null {\n\t\tif (root.activeElement && root.activeElement.shadowRoot) {\n\t\t\treturn this.deepActive(root.activeElement.shadowRoot);\n\t\t}\n\n\t\treturn root.activeElement;\n\t}\n\n\tdestroy() {\n\t\tthis.removeEventListeners();\n\t}\n\n\tstatic init() {\n\t\tif (!this._instance) {\n\t\t\tthis._instance = new F6Navigation();\n\t\t}\n\n\t\treturn this._instance;\n\t}\n}\n\nregisterFeature(\"F6Navigation\", F6Navigation);\n\nexport default F6Navigation;\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { FormatSettings } from "../config/FormatSettings.js";
|
|
2
|
+
type IslamicToGregorianMapping = {
|
|
3
|
+
dateFormat: string;
|
|
4
|
+
islamicMonthStart: string;
|
|
5
|
+
gregDate: string;
|
|
6
|
+
};
|
|
7
|
+
type LegacyDateCalendarCustomizing = Array<IslamicToGregorianMapping>;
|
|
8
|
+
declare class LegacyDateFormats {
|
|
9
|
+
/**
|
|
10
|
+
* Returns the currently set customizing data for Islamic calendar support
|
|
11
|
+
*
|
|
12
|
+
* @return {object[]} Returns an array that contains the customizing data.
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
static getLegacyDateCalendarCustomizing(this: void): LegacyDateCalendarCustomizing;
|
|
16
|
+
}
|
|
17
|
+
export default LegacyDateFormats;
|
|
18
|
+
export type { FormatSettings, LegacyDateCalendarCustomizing, };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { getFormatSettings } from "../InitialConfiguration.js";
|
|
2
|
+
import { registerFeature } from "../FeaturesRegistry.js";
|
|
3
|
+
let formatSettings;
|
|
4
|
+
class LegacyDateFormats {
|
|
5
|
+
/**
|
|
6
|
+
* Returns the currently set customizing data for Islamic calendar support
|
|
7
|
+
*
|
|
8
|
+
* @return {object[]} Returns an array that contains the customizing data.
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
static getLegacyDateCalendarCustomizing() {
|
|
12
|
+
if (formatSettings === undefined) {
|
|
13
|
+
formatSettings = getFormatSettings();
|
|
14
|
+
}
|
|
15
|
+
return formatSettings.legacyDateCalendarCustomizing || [];
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
registerFeature("LegacyDateFormats", LegacyDateFormats);
|
|
19
|
+
export default LegacyDateFormats;
|
|
20
|
+
//# sourceMappingURL=LegacyDateFormats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LegacyDateFormats.js","sourceRoot":"","sources":["../../src/features/LegacyDateFormats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAazD,IAAI,cAA8B,CAAC;AAEnC,MAAM,iBAAiB;IACtB;;;;;OAKG;IACH,MAAM,CAAC,gCAAgC;QACtC,IAAI,cAAc,KAAK,SAAS,EAAE;YACjC,cAAc,GAAG,iBAAiB,EAAE,CAAC;SACrC;QAED,OAAO,cAAc,CAAC,6BAA6B,IAAI,EAAE,CAAC;IAC3D,CAAC;CACD;AAED,eAAe,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;AAExD,eAAe,iBAAiB,CAAC","sourcesContent":["import { getFormatSettings } from \"../InitialConfiguration.js\";\nimport type { FormatSettings } from \"../config/FormatSettings.js\";\nimport { registerFeature } from \"../FeaturesRegistry.js\";\n\n// Allows specifying the customizing data for Islamic calendar support\n// dateFormat - The date format\n// islamicMonthStart - The Islamic date in string format // 14360101\n// gregDate - Corresponding Gregorian date to the Islamic one in string format // 20141024\ntype IslamicToGregorianMapping = {\n\tdateFormat: string,\n\tislamicMonthStart: string,\n\tgregDate: string,\n};\ntype LegacyDateCalendarCustomizing = Array<IslamicToGregorianMapping>;\n\nlet formatSettings: FormatSettings;\n\nclass LegacyDateFormats {\n\t/**\n\t * Returns the currently set customizing data for Islamic calendar support\n\t *\n\t * @return {object[]} Returns an array that contains the customizing data.\n\t * @public\n\t */\n\tstatic getLegacyDateCalendarCustomizing(this: void): LegacyDateCalendarCustomizing {\n\t\tif (formatSettings === undefined) {\n\t\t\tformatSettings = getFormatSettings();\n\t\t}\n\n\t\treturn formatSettings.legacyDateCalendarCustomizing || [];\n\t}\n}\n\nregisterFeature(\"LegacyDateFormats\", LegacyDateFormats);\n\nexport default LegacyDateFormats;\nexport type {\n\tFormatSettings,\n\tLegacyDateCalendarCustomizing,\n};\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import UI5Element from "../UI5Element.js";
|
|
2
|
+
declare class OpenUI5Element extends UI5Element {
|
|
3
|
+
__isBusy?: boolean;
|
|
4
|
+
isOpenUI5Component?: boolean;
|
|
5
|
+
__suppressFocusIn?: () => void;
|
|
6
|
+
__suppressFocusBack?: (e: KeyboardEvent) => void;
|
|
7
|
+
__redirectFocus?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export default OpenUI5Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenUI5Element.js","sourceRoot":"","sources":["../../src/features/OpenUI5Element.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAE1C,MAAM,cAAe,SAAQ,UAAU;CAMtC;AAED,eAAe,cAAc,CAAC","sourcesContent":["import UI5Element from \"../UI5Element.js\";\n\nclass OpenUI5Element extends UI5Element {\n\t__isBusy?: boolean;\n\tisOpenUI5Component?: boolean;\n\t__suppressFocusIn?: () => void;\n\t__suppressFocusBack?: (e: KeyboardEvent) => void;\n\t__redirectFocus?: boolean;\n}\n\nexport default OpenUI5Element;\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { TemplateResult } from "lit-html";
|
|
2
|
+
import type UI5Element from "../UI5Element.js";
|
|
3
|
+
import type OpenUI5Element from "./OpenUI5Element.js";
|
|
4
|
+
declare class OpenUI5Enablement {
|
|
5
|
+
static wrapTemplateResultInBusyMarkup(html: (strings: TemplateStringsArray, ...values: Array<unknown>) => TemplateResult, host: OpenUI5Element, templateResult: TemplateResult): TemplateResult<1 | 2>;
|
|
6
|
+
static enrichBusyIndicatorSettings(klass: typeof UI5Element): void;
|
|
7
|
+
static enrichBusyIndicatorMetadata(klass: typeof UI5Element): void;
|
|
8
|
+
static enrichBusyIndicatorMethods(UI5ElementPrototype: typeof OpenUI5Element.prototype): void;
|
|
9
|
+
static getBusyIndicatorStyles(): import("../types.js").StyleData;
|
|
10
|
+
}
|
|
11
|
+
export default OpenUI5Enablement;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { registerFeature } from "../FeaturesRegistry.js";
|
|
2
|
+
import BusyIndicatorStyles from "../generated/css/BusyIndicator.css.js";
|
|
3
|
+
import merge from "../thirdparty/merge.js";
|
|
4
|
+
import { isTabPrevious, } from "../Keys.js";
|
|
5
|
+
const busyIndicatorMetadata = {
|
|
6
|
+
properties: {
|
|
7
|
+
__isBusy: {
|
|
8
|
+
type: Boolean,
|
|
9
|
+
},
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
class OpenUI5Enablement {
|
|
13
|
+
static wrapTemplateResultInBusyMarkup(html, host, templateResult) {
|
|
14
|
+
if (host.isOpenUI5Component && host.__isBusy) {
|
|
15
|
+
templateResult = html `
|
|
16
|
+
<div class="busy-indicator-wrapper">
|
|
17
|
+
<span tabindex="0" busy-indicator-before-span @focusin=${host.__suppressFocusIn}></span>
|
|
18
|
+
${templateResult}
|
|
19
|
+
<div class="busy-indicator-overlay"></div>
|
|
20
|
+
<div busy-indicator
|
|
21
|
+
class="busy-indicator-busy-area"
|
|
22
|
+
tabindex="0"
|
|
23
|
+
role="progressbar"
|
|
24
|
+
@keydown=${host.__suppressFocusBack}
|
|
25
|
+
aria-valuemin="0"
|
|
26
|
+
aria-valuemax="100"
|
|
27
|
+
aria-valuetext="Busy">
|
|
28
|
+
<div>
|
|
29
|
+
<div class="busy-indicator-circle circle-animation-0"></div>
|
|
30
|
+
<div class="busy-indicator-circle circle-animation-1"></div>
|
|
31
|
+
<div class="busy-indicator-circle circle-animation-2"></div>
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
34
|
+
</div>`;
|
|
35
|
+
}
|
|
36
|
+
return templateResult;
|
|
37
|
+
}
|
|
38
|
+
static enrichBusyIndicatorSettings(klass) {
|
|
39
|
+
OpenUI5Enablement.enrichBusyIndicatorMetadata(klass);
|
|
40
|
+
OpenUI5Enablement.enrichBusyIndicatorMethods(klass.prototype);
|
|
41
|
+
}
|
|
42
|
+
static enrichBusyIndicatorMetadata(klass) {
|
|
43
|
+
klass.metadata = merge(klass.metadata, busyIndicatorMetadata);
|
|
44
|
+
}
|
|
45
|
+
static enrichBusyIndicatorMethods(UI5ElementPrototype) {
|
|
46
|
+
Object.defineProperties(UI5ElementPrototype, {
|
|
47
|
+
"__redirectFocus": { value: true, writable: true },
|
|
48
|
+
"__suppressFocusBack": {
|
|
49
|
+
get() {
|
|
50
|
+
return {
|
|
51
|
+
handleEvent: (e) => {
|
|
52
|
+
if (isTabPrevious(e)) {
|
|
53
|
+
const beforeElem = this.shadowRoot.querySelector("[busy-indicator-before-span]");
|
|
54
|
+
this.__redirectFocus = false;
|
|
55
|
+
beforeElem.focus();
|
|
56
|
+
this.__redirectFocus = true;
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
capture: true,
|
|
60
|
+
passive: false,
|
|
61
|
+
};
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
"isOpenUI5Component": { get: () => { return true; } },
|
|
65
|
+
});
|
|
66
|
+
UI5ElementPrototype.__suppressFocusIn = function handleFocusIn() {
|
|
67
|
+
const busyIndicator = this.shadowRoot?.querySelector("[busy-indicator]");
|
|
68
|
+
if (busyIndicator && this.__redirectFocus) {
|
|
69
|
+
busyIndicator.focus();
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
UI5ElementPrototype.getDomRef = function getDomRef() {
|
|
73
|
+
// If a component set _getRealDomRef to its children, use the return value of this function
|
|
74
|
+
if (typeof this._getRealDomRef === "function") {
|
|
75
|
+
return this._getRealDomRef();
|
|
76
|
+
}
|
|
77
|
+
if (!this.shadowRoot || this.shadowRoot.children.length === 0) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
const children = [...this.shadowRoot.children].filter(child => !["link", "style"].includes(child.localName));
|
|
81
|
+
if (children.length !== 1) {
|
|
82
|
+
console.warn(`The shadow DOM for ${this.constructor.getMetadata().getTag()} does not have a top level element, the getDomRef() method might not work as expected`); // eslint-disable-line
|
|
83
|
+
}
|
|
84
|
+
if (this.__isBusy) {
|
|
85
|
+
return children[0].querySelector(".busy-indicator-wrapper > :not([busy-indicator-before-span]):not(.busy-indicator-overlay):not(.busy-indicator-busy-area)");
|
|
86
|
+
}
|
|
87
|
+
return children[0];
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
static getBusyIndicatorStyles() {
|
|
91
|
+
return BusyIndicatorStyles;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
registerFeature("OpenUI5Enablement", OpenUI5Enablement);
|
|
95
|
+
export default OpenUI5Enablement;
|
|
96
|
+
//# sourceMappingURL=OpenUI5Enablement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenUI5Enablement.js","sourceRoot":"","sources":["../../src/features/OpenUI5Enablement.ts"],"names":[],"mappings":"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","sourcesContent":["import { TemplateResult } from \"lit-html\";\nimport { registerFeature } from \"../FeaturesRegistry.js\";\nimport BusyIndicatorStyles from \"../generated/css/BusyIndicator.css.js\";\nimport merge from \"../thirdparty/merge.js\";\nimport {\n\tisTabPrevious,\n} from \"../Keys.js\";\n\nimport type UI5Element from \"../UI5Element.js\";\nimport type OpenUI5Element from \"./OpenUI5Element.js\";\n\nconst busyIndicatorMetadata = {\n\tproperties: {\n\t\t__isBusy: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n};\n\nclass OpenUI5Enablement {\n\tstatic wrapTemplateResultInBusyMarkup(html: (strings: TemplateStringsArray, ...values: Array<unknown>) => TemplateResult, host: OpenUI5Element, templateResult: TemplateResult) {\n\t\tif (host.isOpenUI5Component && host.__isBusy) {\n\t\t\ttemplateResult = html`\n\t\t\t<div class=\"busy-indicator-wrapper\">\n\t\t\t\t<span tabindex=\"0\" busy-indicator-before-span @focusin=${host.__suppressFocusIn}></span>\n\t\t\t\t${templateResult}\n\t\t\t\t<div class=\"busy-indicator-overlay\"></div>\n\t\t\t\t<div busy-indicator\n\t\t\t\t\tclass=\"busy-indicator-busy-area\"\n\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\trole=\"progressbar\"\n\t\t\t\t\t@keydown=${host.__suppressFocusBack}\n\t\t\t\t\taria-valuemin=\"0\"\n\t\t\t\t\taria-valuemax=\"100\"\n\t\t\t\t\taria-valuetext=\"Busy\">\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"busy-indicator-circle circle-animation-0\"></div>\n\t\t\t\t\t\t<div class=\"busy-indicator-circle circle-animation-1\"></div>\n\t\t\t\t\t\t<div class=\"busy-indicator-circle circle-animation-2\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>`;\n\t\t}\n\n\t\treturn templateResult;\n\t}\n\n\tstatic enrichBusyIndicatorSettings(klass: typeof UI5Element) {\n\t\tOpenUI5Enablement.enrichBusyIndicatorMetadata(klass);\n\t\tOpenUI5Enablement.enrichBusyIndicatorMethods(klass.prototype);\n\t}\n\n\tstatic enrichBusyIndicatorMetadata(klass: typeof UI5Element) {\n\t\tklass.metadata = merge(klass.metadata, busyIndicatorMetadata);\n\t}\n\n\tstatic enrichBusyIndicatorMethods(UI5ElementPrototype: typeof OpenUI5Element.prototype) {\n\t\tObject.defineProperties(UI5ElementPrototype, {\n\t\t\t\"__redirectFocus\": { value: true, writable: true },\n\t\t\t\"__suppressFocusBack\": {\n\t\t\t\tget() {\n\t\t\t\t\treturn {\n\t\t\t\t\t\thandleEvent: (e: KeyboardEvent) => {\n\t\t\t\t\t\t\tif (isTabPrevious(e)) {\n\t\t\t\t\t\t\t\tconst beforeElem = this.shadowRoot.querySelector(\"[busy-indicator-before-span]\");\n\t\t\t\t\t\t\t\tthis.__redirectFocus = false;\n\t\t\t\t\t\t\t\tbeforeElem.focus();\n\t\t\t\t\t\t\t\tthis.__redirectFocus = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcapture: true,\n\t\t\t\t\t\tpassive: false,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"isOpenUI5Component\": { get: () => { return true; } },\n\t\t});\n\n\t\tUI5ElementPrototype.__suppressFocusIn = function handleFocusIn() {\n\t\t\tconst busyIndicator = this.shadowRoot?.querySelector(\"[busy-indicator]\") as HTMLElement;\n\t\t\tif (busyIndicator && this.__redirectFocus) {\n\t\t\t\tbusyIndicator.focus();\n\t\t\t}\n\t\t};\n\n\t\tUI5ElementPrototype.getDomRef = function getDomRef() {\n\t\t\t// If a component set _getRealDomRef to its children, use the return value of this function\n\t\t\tif (typeof this._getRealDomRef === \"function\") {\n\t\t\t\treturn this._getRealDomRef();\n\t\t\t}\n\n\t\t\tif (!this.shadowRoot || this.shadowRoot.children.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst children = [...this.shadowRoot.children].filter(child => ![\"link\", \"style\"].includes(child.localName));\n\n\t\t\tif (children.length !== 1) {\n\t\t\t\tconsole.warn(`The shadow DOM for ${(this.constructor as typeof UI5Element).getMetadata().getTag()} does not have a top level element, the getDomRef() method might not work as expected`); // eslint-disable-line\n\t\t\t}\n\n\t\t\tif (this.__isBusy) {\n\t\t\t\treturn children[0].querySelector(\".busy-indicator-wrapper > :not([busy-indicator-before-span]):not(.busy-indicator-overlay):not(.busy-indicator-busy-area)\") as HTMLElement;\n\t\t\t}\n\n\t\t\treturn children[0] as HTMLElement;\n\t\t};\n\t}\n\n\tstatic getBusyIndicatorStyles() {\n\t\treturn BusyIndicatorStyles;\n\t}\n}\n\nregisterFeature(\"OpenUI5Enablement\", OpenUI5Enablement);\n\nexport default OpenUI5Enablement;\n"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { CLDRData } from "../asset-registries/LocaleData.js";
|
|
2
|
+
import type { LegacyDateCalendarCustomizing } from "../features/LegacyDateFormats.js";
|
|
3
|
+
declare class OpenUI5Support {
|
|
4
|
+
static isLoaded(): boolean;
|
|
5
|
+
static init(): Promise<void>;
|
|
6
|
+
static getConfigurationSettingsObject(): {
|
|
7
|
+
animationMode: string;
|
|
8
|
+
language: string;
|
|
9
|
+
theme: string;
|
|
10
|
+
themeRoot: string;
|
|
11
|
+
rtl: string;
|
|
12
|
+
timezone: string;
|
|
13
|
+
calendarType: string;
|
|
14
|
+
formatSettings: {
|
|
15
|
+
firstDayOfWeek: any;
|
|
16
|
+
legacyDateCalendarCustomizing: LegacyDateCalendarCustomizing;
|
|
17
|
+
};
|
|
18
|
+
} | undefined;
|
|
19
|
+
static getLocaleDataObject(): CLDRData | undefined;
|
|
20
|
+
static _listenForThemeChange(): void;
|
|
21
|
+
static attachListeners(): void;
|
|
22
|
+
static cssVariablesLoaded(): boolean | undefined;
|
|
23
|
+
static getNextZIndex(): number | undefined;
|
|
24
|
+
static setInitialZIndex(): void;
|
|
25
|
+
}
|
|
26
|
+
export default OpenUI5Support;
|
|
@@ -1,90 +1,99 @@
|
|
|
1
1
|
import { registerFeature } from "../FeaturesRegistry.js";
|
|
2
2
|
import { setTheme } from "../config/Theme.js";
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const isLoaded = () => {
|
|
8
|
-
return !!core;
|
|
3
|
+
import { getCurrentZIndex } from "../util/PopupUtils.js";
|
|
4
|
+
const getCore = () => {
|
|
5
|
+
return window.sap?.ui?.getCore?.();
|
|
9
6
|
};
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
7
|
+
class OpenUI5Support {
|
|
8
|
+
static isLoaded() {
|
|
9
|
+
return !!getCore();
|
|
10
|
+
}
|
|
11
|
+
static init() {
|
|
12
|
+
const core = getCore();
|
|
13
|
+
if (!core) {
|
|
14
|
+
return Promise.resolve();
|
|
15
|
+
}
|
|
16
|
+
return new Promise(resolve => {
|
|
17
|
+
core.attachInit(() => {
|
|
18
|
+
window.sap.ui.require(["sap/ui/core/LocaleData", "sap/ui/core/Popup"], (LocaleData, Popup) => {
|
|
19
|
+
Popup.setInitialZIndex(getCurrentZIndex());
|
|
20
|
+
resolve();
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
static getConfigurationSettingsObject() {
|
|
26
|
+
const core = getCore();
|
|
27
|
+
if (!core) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const config = core.getConfiguration();
|
|
31
|
+
const LocaleData = window.sap.ui.require("sap/ui/core/LocaleData");
|
|
32
|
+
return {
|
|
33
|
+
animationMode: config.getAnimationMode(),
|
|
34
|
+
language: config.getLanguage(),
|
|
35
|
+
theme: config.getTheme(),
|
|
36
|
+
themeRoot: config.getThemeRoot(),
|
|
37
|
+
rtl: config.getRTL(),
|
|
38
|
+
timezone: config.getTimezone(),
|
|
39
|
+
calendarType: config.getCalendarType(),
|
|
40
|
+
formatSettings: {
|
|
41
|
+
firstDayOfWeek: LocaleData ? LocaleData.getInstance(config.getLocale()).getFirstDayOfWeek() : undefined,
|
|
42
|
+
legacyDateCalendarCustomizing: config.getFormatSettings().getLegacyDateCalendarCustomizing(),
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
static getLocaleDataObject() {
|
|
47
|
+
const core = getCore();
|
|
48
|
+
if (!core) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const config = core.getConfiguration();
|
|
52
|
+
const LocaleData = window.sap.ui.require("sap/ui/core/LocaleData");
|
|
53
|
+
return LocaleData.getInstance(config.getLocale())._get();
|
|
54
|
+
}
|
|
55
|
+
static _listenForThemeChange() {
|
|
56
|
+
const core = getCore();
|
|
57
|
+
const config = core.getConfiguration();
|
|
58
|
+
core.attachThemeChanged(async () => {
|
|
59
|
+
await setTheme(config.getTheme());
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
static attachListeners() {
|
|
63
|
+
const core = getCore();
|
|
64
|
+
if (!core) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
OpenUI5Support._listenForThemeChange();
|
|
68
|
+
}
|
|
69
|
+
static cssVariablesLoaded() {
|
|
70
|
+
const core = getCore();
|
|
71
|
+
if (!core) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const link = [...document.head.children].find(el => el.id === "sap-ui-theme-sap.ui.core"); // more reliable than querySelector early
|
|
75
|
+
if (!link) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
return !!link.href.match(/\/css(-|_)variables\.css/);
|
|
79
|
+
}
|
|
80
|
+
static getNextZIndex() {
|
|
81
|
+
const core = getCore();
|
|
82
|
+
if (!core) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
const Popup = window.sap.ui.require("sap/ui/core/Popup");
|
|
86
|
+
return Popup.getNextZIndex();
|
|
87
|
+
}
|
|
88
|
+
static setInitialZIndex() {
|
|
89
|
+
const core = getCore();
|
|
90
|
+
if (!core) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
const Popup = window.sap.ui.require("sap/ui/core/Popup");
|
|
94
|
+
Popup.setInitialZIndex(getCurrentZIndex());
|
|
95
|
+
}
|
|
96
|
+
}
|
|
90
97
|
registerFeature("OpenUI5Support", OpenUI5Support);
|
|
98
|
+
export default OpenUI5Support;
|
|
99
|
+
//# sourceMappingURL=OpenUI5Support.js.map
|