@ui5/webcomponents-base 0.0.0-4e00e5559 → 0.0.0-51202adee
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +4 -0
- package/CHANGELOG.md +511 -0
- package/README.md +53 -7
- package/bundle.esm.js +28 -17
- 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 +8 -0
- package/dist/Boot.js +44 -0
- package/dist/Boot.js.map +1 -0
- package/dist/CSP.d.ts +30 -0
- package/dist/CSP.js +51 -0
- package/dist/CSP.js.map +1 -0
- package/dist/CustomElementsRegistry.d.ts +5 -0
- package/dist/CustomElementsRegistry.js +78 -0
- 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 +84 -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/InitialConfiguration.d.ts +22 -0
- package/dist/InitialConfiguration.js +119 -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 +77 -0
- package/dist/ManagedStyles.js.map +1 -0
- package/dist/MarkedEvents.d.ts +9 -0
- package/dist/MarkedEvents.js +15 -0
- package/dist/MarkedEvents.js.map +1 -0
- package/dist/MediaRange.d.ts +37 -0
- package/dist/MediaRange.js +98 -0
- package/dist/MediaRange.js.map +1 -0
- package/dist/PropertiesFileFormat.d.ts +8 -0
- package/dist/PropertiesFileFormat.js +85 -0
- package/dist/PropertiesFileFormat.js.map +1 -0
- package/dist/Render.d.ts +47 -0
- package/dist/Render.js +143 -0
- package/dist/Render.js.map +1 -0
- package/dist/RenderQueue.d.ts +19 -0
- package/dist/RenderQueue.js +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 +0 -0
- package/dist/StaticArea.js +4 -39
- package/dist/StaticArea.js.map +1 -0
- package/dist/StaticAreaItem.d.ts +36 -0
- package/dist/StaticAreaItem.js +92 -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 +373 -0
- package/dist/UI5Element.js +947 -878
- package/dist/UI5Element.js.map +1 -0
- package/dist/UI5ElementMetadata.d.ts +150 -0
- package/dist/UI5ElementMetadata.js +278 -160
- package/dist/UI5ElementMetadata.js.map +1 -0
- package/dist/animations/AnimationQueue.d.ts +8 -0
- package/dist/animations/AnimationQueue.js +31 -38
- package/dist/animations/AnimationQueue.js.map +1 -0
- package/dist/animations/animate.d.ts +14 -0
- package/dist/animations/animate.js +46 -51
- package/dist/animations/animate.js.map +1 -0
- package/dist/animations/scroll.d.ts +5 -0
- package/dist/animations/scroll.js +18 -27
- package/dist/animations/scroll.js.map +1 -0
- package/dist/animations/slideDown.d.ts +5 -0
- package/dist/animations/slideDown.js +53 -78
- package/dist/animations/slideDown.js.map +1 -0
- package/dist/animations/slideUp.d.ts +5 -0
- package/dist/animations/slideUp.js +49 -70
- package/dist/animations/slideUp.js.map +1 -0
- package/dist/api.json +1 -0
- package/dist/asset-registries/Icons.d.ts +30 -0
- package/dist/asset-registries/Icons.js +104 -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 +10 -0
- package/dist/asset-registries/Themes.js +39 -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 +74 -58
- package/dist/asset-registries/i18n.js.map +1 -0
- package/dist/assets/bundle.esm.3a492d53.js +56 -0
- package/dist/assets-meta/IconCollectionsAlias.d.ts +17 -0
- package/dist/assets-meta/IconCollectionsAlias.js +18 -0
- package/dist/assets-meta/IconCollectionsAlias.js.map +1 -0
- package/dist/config/AnimationMode.d.ts +14 -0
- package/dist/config/AnimationMode.js +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 +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 +54 -10
- package/dist/config/Language.js.map +1 -0
- package/dist/config/NoConflict.d.ts +20 -0
- package/dist/config/NoConflict.js +40 -41
- package/dist/config/NoConflict.js.map +1 -0
- package/dist/config/RTL.d.ts +7 -0
- package/dist/config/RTL.js +23 -20
- package/dist/config/RTL.js.map +1 -0
- package/dist/config/Theme.d.ts +28 -0
- package/dist/config/Theme.js +45 -22
- package/dist/config/Theme.js.map +1 -0
- package/dist/config/ThemeRoots.d.ts +4 -0
- package/dist/config/ThemeRoots.js +28 -0
- package/dist/config/ThemeRoots.js.map +1 -0
- package/dist/css/BusyIndicator.css +80 -0
- package/dist/css/FontFace.css +66 -0
- package/dist/css/OverrideFontFace.css +32 -0
- package/dist/css/SystemCSSVars.css +17 -0
- package/dist/decorators/customElement.d.ts +8 -0
- package/dist/decorators/customElement.js +16 -0
- package/dist/decorators/customElement.js.map +1 -0
- package/dist/decorators/event.d.ts +10 -0
- package/dist/decorators/event.js +24 -0
- package/dist/decorators/event.js.map +1 -0
- package/dist/decorators/fastNavigation.d.ts +7 -0
- package/dist/decorators/fastNavigation.js +13 -0
- package/dist/decorators/fastNavigation.js.map +1 -0
- package/dist/decorators/languageAware.d.ts +7 -0
- package/dist/decorators/languageAware.js +13 -0
- package/dist/decorators/languageAware.js.map +1 -0
- package/dist/decorators/property.d.ts +9 -0
- package/dist/decorators/property.js +24 -0
- package/dist/decorators/property.js.map +1 -0
- package/dist/decorators/slot.d.ts +9 -0
- package/dist/decorators/slot.js +37 -0
- package/dist/decorators/slot.js.map +1 -0
- package/dist/decorators/themeAware.d.ts +7 -0
- package/dist/decorators/themeAware.js +13 -0
- package/dist/decorators/themeAware.js.map +1 -0
- package/dist/delegate/ItemNavigation.d.ts +113 -0
- package/dist/delegate/ItemNavigation.js +312 -274
- package/dist/delegate/ItemNavigation.js.map +1 -0
- package/dist/delegate/ResizeHandler.d.ts +24 -0
- package/dist/delegate/ResizeHandler.js +80 -63
- package/dist/delegate/ResizeHandler.js.map +1 -0
- package/dist/delegate/ScrollEnablement.d.ts +49 -0
- package/dist/delegate/ScrollEnablement.js +159 -120
- package/dist/delegate/ScrollEnablement.js.map +1 -0
- package/dist/features/F6Navigation.d.ts +16 -0
- package/dist/features/F6Navigation.js +112 -0
- package/dist/features/F6Navigation.js.map +1 -0
- package/dist/features/OpenUI5Element.d.ts +9 -0
- package/dist/features/OpenUI5Element.js +5 -0
- package/dist/features/OpenUI5Element.js.map +1 -0
- package/dist/features/OpenUI5Enablement.d.ts +11 -0
- package/dist/features/OpenUI5Enablement.js +96 -0
- package/dist/features/OpenUI5Enablement.js.map +1 -0
- package/dist/features/OpenUI5Support.d.ts +23 -0
- package/dist/features/OpenUI5Support.js +93 -86
- package/dist/features/OpenUI5Support.js.map +1 -0
- package/dist/generated/AssetParameters.js +1 -1
- package/dist/generated/VersionInfo.js +10 -0
- package/dist/generated/css/BusyIndicator.css.js +5 -0
- package/dist/generated/css/FontFace.css.js +5 -0
- package/dist/generated/css/OverrideFontFace.css.js +5 -0
- package/dist/generated/css/SystemCSSVars.css.js +5 -0
- package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +11 -0
- package/dist/getSharedResource.d.ts +11 -0
- package/dist/getSharedResource.js +26 -0
- package/dist/getSharedResource.js.map +1 -0
- package/dist/global.d.ts +44 -0
- package/dist/i18nBundle.d.ts +43 -0
- package/dist/i18nBundle.js +73 -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 +44 -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/applyTheme.d.ts +2 -0
- package/dist/theming/applyTheme.js +63 -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 +16 -0
- package/dist/types/CSSColor.js +19 -0
- package/dist/types/CSSColor.js.map +1 -0
- package/dist/types/CalendarType.d.ts +37 -0
- package/dist/types/CalendarType.js +35 -18
- package/dist/types/CalendarType.js.map +1 -0
- package/dist/types/DOMReference.d.ts +17 -0
- package/dist/types/DOMReference.js +25 -0
- package/dist/types/DOMReference.js.map +1 -0
- package/dist/types/DataType.d.ts +25 -0
- package/dist/types/DataType.js +33 -14
- package/dist/types/DataType.js.map +1 -0
- package/dist/types/Float.d.ts +18 -0
- package/dist/types/Float.js +22 -0
- package/dist/types/Float.js.map +1 -0
- package/dist/types/Integer.d.ts +18 -0
- package/dist/types/Integer.js +18 -5
- package/dist/types/Integer.js.map +1 -0
- package/dist/types/InvisibleMessageMode.d.ts +25 -0
- package/dist/types/InvisibleMessageMode.js +27 -0
- package/dist/types/InvisibleMessageMode.js.map +1 -0
- package/dist/types/ItemNavigationBehavior.d.ts +24 -0
- package/dist/types/ItemNavigationBehavior.js +22 -17
- package/dist/types/ItemNavigationBehavior.js.map +1 -0
- package/dist/types/NavigationMode.d.ts +32 -0
- package/dist/types/NavigationMode.js +33 -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 +34 -0
- package/dist/updateShadowRoot.js.map +1 -0
- package/dist/util/AriaLabelHelper.d.ts +6 -0
- package/dist/util/AriaLabelHelper.js +44 -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 +58 -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 -39
- 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/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 +10 -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 +20 -12
- package/dist/util/isValidPropertyName.js.map +1 -0
- package/dist/util/whenDOMReady.d.ts +2 -0
- package/dist/util/whenDOMReady.js +11 -10
- package/dist/util/whenDOMReady.js.map +1 -0
- package/dist/util/willShowContent.d.ts +2 -0
- package/dist/util/willShowContent.js +7 -0
- package/dist/util/willShowContent.js.map +1 -0
- package/dist/validateThemeRoot.d.ts +2 -0
- package/dist/validateThemeRoot.js +47 -0
- package/dist/validateThemeRoot.js.map +1 -0
- package/index.js +1 -1
- package/lib/generate-asset-parameters/index.js +8 -5
- package/lib/generate-styles/index.js +26 -0
- package/lib/generate-version-info/index.js +32 -0
- package/package-scripts.js +48 -28
- package/package.json +20 -12
- package/src/AssetRegistry.ts +11 -0
- package/src/Boot.ts +61 -0
- package/src/CSP.ts +66 -0
- package/src/CustomElementsRegistry.ts +98 -0
- package/src/CustomElementsScope.ts +33 -0
- package/src/CustomElementsScopeUtils.ts +115 -0
- package/src/DOMObserver.ts +28 -0
- package/src/Device.ts +124 -0
- package/src/EventProvider.ts +87 -0
- package/src/FeaturesRegistry.ts +14 -0
- package/src/FontFace.ts +31 -0
- package/src/InitialConfiguration.ts +207 -0
- package/src/Keys.ts +295 -0
- package/src/ManagedStyles.ts +92 -0
- package/src/MarkedEvents.ts +20 -0
- package/src/MediaRange.ts +110 -0
- package/src/PropertiesFileFormat.ts +95 -0
- package/src/Render.ts +180 -0
- package/src/RenderQueue.ts +71 -0
- package/src/Runtimes.ts +114 -0
- package/src/StaticArea.ts +3 -0
- package/src/StaticAreaItem.ts +113 -0
- package/src/SystemCSSVars.ts +10 -0
- package/src/Theming.ts +4 -0
- package/src/UI5Element.ts +1155 -0
- package/src/UI5ElementMetadata.ts +389 -0
- package/src/animations/{AnimationQueue.js → AnimationQueue.ts} +8 -7
- package/src/animations/animate.ts +64 -0
- package/src/animations/scroll.ts +21 -0
- package/src/animations/{slideDown.js → slideDown.ts} +27 -34
- package/src/animations/{slideUp.js → slideUp.ts} +28 -32
- package/src/asset-registries/Icons.ts +162 -0
- package/src/asset-registries/Illustrations.ts +75 -0
- package/src/asset-registries/LocaleData.ts +172 -0
- package/src/asset-registries/Themes.ts +67 -0
- package/src/asset-registries/i18n.ts +118 -0
- package/src/assets-meta/IconCollectionsAlias.ts +18 -0
- package/src/config/AnimationMode.ts +33 -0
- package/src/config/{CalendarType.js → CalendarType.ts} +8 -3
- package/src/config/FormatSettings.ts +21 -0
- package/src/config/Icons.ts +59 -0
- package/src/config/Language.ts +72 -0
- package/src/config/NoConflict.ts +67 -0
- package/src/config/{RTL.js → RTL.ts} +14 -4
- package/src/config/Theme.ts +64 -0
- package/src/config/ThemeRoots.ts +41 -0
- package/src/css/BusyIndicator.css +80 -0
- package/src/css/FontFace.css +66 -0
- package/src/css/OverrideFontFace.css +32 -0
- package/src/css/SystemCSSVars.css +17 -0
- package/src/decorators/customElement.ts +17 -0
- package/src/decorators/event.ts +28 -0
- package/src/decorators/fastNavigation.ts +14 -0
- package/src/decorators/languageAware.ts +14 -0
- package/src/decorators/property.ts +30 -0
- package/src/decorators/slot.ts +49 -0
- package/src/decorators/themeAware.ts +14 -0
- package/src/delegate/ItemNavigation.ts +393 -0
- package/src/delegate/ResizeHandler.ts +95 -0
- package/src/delegate/ScrollEnablement.ts +224 -0
- package/src/features/F6Navigation.ts +141 -0
- package/src/features/OpenUI5Element.ts +11 -0
- package/src/features/OpenUI5Enablement.ts +117 -0
- package/src/features/OpenUI5Support.ts +148 -0
- package/src/getSharedResource.ts +30 -0
- package/src/global.d.ts +44 -0
- package/src/i18nBundle.ts +108 -0
- package/src/locale/{Locale.js → Locale.ts} +15 -5
- package/src/locale/RTLAwareRegistry.ts +16 -0
- package/src/locale/applyDirection.ts +18 -0
- package/src/locale/directionChange.ts +34 -0
- package/src/locale/getEffectiveDir.ts +28 -0
- package/src/locale/{getLocale.js → getLocale.ts} +20 -5
- package/src/locale/languageChange.ts +24 -0
- package/src/locale/{nextFallbackLocale.js → nextFallbackLocale.ts} +1 -1
- package/src/locale/{normalizeLocale.js → normalizeLocale.ts} +5 -3
- package/src/renderer/LitRenderer.ts +60 -0
- package/src/renderer/directives/style-map.js +72 -0
- package/src/renderer/executeTemplate.ts +40 -0
- package/src/theming/CustomStyle.ts +62 -0
- package/src/theming/ThemeLoaded.ts +24 -0
- package/src/theming/applyTheme.ts +90 -0
- package/src/theming/getConstructableStyle.ts +31 -0
- package/src/theming/getEffectiveLinksHrefs.ts +26 -0
- package/src/theming/getEffectiveStyle.ts +41 -0
- package/src/theming/getStylesString.ts +15 -0
- package/src/theming/getThemeDesignerTheme.ts +101 -0
- package/src/theming/preloadLinks.ts +24 -0
- package/src/thirdparty/{_merge.js → _merge.ts} +2 -2
- package/src/thirdparty/{isPlainObject.js → isPlainObject.ts} +1 -1
- package/src/thirdparty/merge.ts +5 -0
- package/src/types/AnimationMode.ts +33 -0
- package/src/types/CSSColor.ts +20 -0
- package/src/types/CalendarType.ts +38 -0
- package/src/types/DOMReference.ts +28 -0
- package/src/types/DataType.ts +51 -0
- package/src/types/Float.ts +25 -0
- package/src/types/Integer.ts +25 -0
- package/src/types/InvisibleMessageMode.ts +27 -0
- package/src/types/ItemNavigationBehavior.ts +26 -0
- package/src/types/NavigationMode.ts +33 -0
- package/src/types/ValueState.ts +47 -0
- package/src/types.ts +30 -0
- package/src/updateShadowRoot.ts +37 -0
- package/src/util/AriaLabelHelper.ts +63 -0
- package/src/util/Caret.ts +28 -0
- package/src/util/ColorConversion.ts +399 -0
- package/src/util/{FetchHelper.js → FetchHelper.ts} +7 -7
- package/src/util/FocusableElements.ts +82 -0
- package/src/util/HTMLSanitizer.ts +9 -0
- package/src/util/InvisibleMessage.ts +69 -0
- package/src/util/PopupUtils.ts +112 -0
- package/src/util/SlotsHelper.ts +39 -0
- package/src/util/{StringHelper.js → StringHelper.ts} +7 -7
- package/src/util/TabbableElements.ts +70 -0
- package/src/util/arraysAreEqual.ts +15 -0
- package/src/util/clamp.ts +12 -0
- package/src/util/createLinkInHead.ts +25 -0
- package/src/util/{createStyleInHead.js → createStyleInHead.ts} +4 -2
- package/src/util/debounce.ts +18 -0
- package/src/util/{detectNavigatorLanguage.js → detectNavigatorLanguage.ts} +1 -1
- package/src/util/escapeRegex.ts +11 -0
- package/src/util/{formatMessage.js → formatMessage.ts} +4 -3
- package/src/util/generateHighlightedMarkup.ts +43 -0
- package/src/util/getActiveElement.ts +11 -0
- package/src/util/getClassCopy.ts +12 -0
- package/src/util/{getDesigntimePropertyAsArray.js → getDesigntimePropertyAsArray.ts} +1 -1
- package/src/util/getEffectiveContentDensity.ts +5 -0
- package/src/util/getEffectiveScrollbarStyle.ts +5 -0
- package/src/util/getFastNavigationGroups.ts +63 -0
- package/src/util/{getFileExtension.js → getFileExtension.ts} +3 -3
- package/src/util/getNormalizedTarget.ts +16 -0
- package/src/util/getSingletonElementInstance.ts +13 -0
- package/src/util/isElementClickable.ts +19 -0
- package/src/util/isElementHidden.ts +9 -0
- package/src/util/isElementInView.ts +15 -0
- package/src/util/isElementTabbable.ts +37 -0
- package/src/util/{isValidPropertyName.js → isValidPropertyName.ts} +12 -3
- package/src/util/{whenDOMReady.js → whenDOMReady.ts} +1 -1
- package/src/util/willShowContent.ts +7 -0
- package/src/validateThemeRoot.ts +58 -0
- package/tsconfig.json +13 -0
- package/used-modules.txt +10 -0
- package/bundle.es5.js +0 -28
- package/config/.eslintrc.js +0 -3
- package/config/rollup.config.js +0 -1
- package/dist/RenderScheduler.js +0 -165
- 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/webcomponentsjs/LICENSE.md +0 -19
- package/dist/webcomponentsjs/README.md +0 -229
- package/dist/webcomponentsjs/bundles/webcomponents-ce.js +0 -63
- package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -297
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -208
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
- package/dist/webcomponentsjs/bundles/webcomponents-sd.js +0 -166
- package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
- package/dist/webcomponentsjs/custom-elements-es5-adapter.js +0 -15
- package/dist/webcomponentsjs/package.json +0 -46
- package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
- package/dist/webcomponentsjs/webcomponents-bundle.js +0 -298
- package/dist/webcomponentsjs/webcomponents-bundle.js.map +0 -1
- package/dist/webcomponentsjs/webcomponents-loader.js +0 -185
- package/src/AssetRegistry.js +0 -9
- 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 -165
- 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 -898
- package/src/UI5ElementMetadata.js +0 -173
- 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 -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/FormatSettings.js +0 -13
- package/src/config/Language.js +0 -12
- package/src/config/NoConflict.js +0 -51
- package/src/config/Theme.js +0 -28
- package/src/delegate/CustomResize.js +0 -78
- package/src/delegate/ItemNavigation.js +0 -278
- package/src/delegate/NativeResize.js +0 -44
- package/src/delegate/ResizeHandler.js +0 -66
- package/src/delegate/ScrollEnablement.js +0 -126
- 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/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/es6-string-methods.js +0 -182
- package/src/thirdparty/events-polyfills.js +0 -89
- package/src/thirdparty/fetch.js +0 -1
- package/src/thirdparty/merge.js +0 -10
- package/src/thirdparty/template.js +0 -600
- package/src/thirdparty/webcomponents-sd-ce-pf.js +0 -318
- package/src/types/AnimationMode.js +0 -7
- package/src/types/CSSSize.js +0 -9
- package/src/types/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/FocusableElements.js +0 -60
- package/src/util/TabbableElements.js +0 -43
- package/src/util/findNodeOwner.js +0 -35
- package/src/util/isDescendantOf.js +0 -15
- package/src/util/isNodeClickable.js +0 -19
- package/src/util/isNodeHidden.js +0 -13
- package/src/util/isNodeTabbable.js +0 -28
|
@@ -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,13 @@
|
|
|
1
|
+
const getSingletonElementInstance = (tag: string, parentElement: HTMLElement = document.body) => {
|
|
2
|
+
let el = document.querySelector(tag);
|
|
3
|
+
|
|
4
|
+
if (el) {
|
|
5
|
+
return el;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
el = document.createElement(tag);
|
|
9
|
+
|
|
10
|
+
return parentElement.insertBefore(el, parentElement.firstChild);
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export default getSingletonElementInstance;
|
|
@@ -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,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Determines if the element is within the viewport.
|
|
3
|
+
* @param el {HTMLElement}
|
|
4
|
+
*/
|
|
5
|
+
const isElementInView = (el: HTMLElement) => {
|
|
6
|
+
const rect = el.getBoundingClientRect();
|
|
7
|
+
|
|
8
|
+
return (
|
|
9
|
+
rect.top >= 0 && rect.left >= 0
|
|
10
|
+
&& rect.bottom <= (window.innerHeight || document.documentElement.clientHeight)
|
|
11
|
+
&& rect.right <= (window.innerWidth || document.documentElement.clientWidth)
|
|
12
|
+
);
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export default isElementInView;
|
|
@@ -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;
|
|
@@ -1,12 +1,21 @@
|
|
|
1
|
+
// Note: disabled is present in IE so we explicitly allow it here.
|
|
2
|
+
// Others, such as title/hidden, we explicitly override, so valid too
|
|
3
|
+
const allowList = [
|
|
4
|
+
"disabled",
|
|
5
|
+
"title",
|
|
6
|
+
"hidden",
|
|
7
|
+
"role",
|
|
8
|
+
"draggable",
|
|
9
|
+
];
|
|
10
|
+
|
|
1
11
|
/**
|
|
2
12
|
* Checks whether a property name is valid (does not collide with existing DOM API properties)
|
|
3
|
-
* Note: disabled is present in IE so we explicitly allow it here.
|
|
4
13
|
*
|
|
5
14
|
* @param name
|
|
6
15
|
* @returns {boolean}
|
|
7
16
|
*/
|
|
8
|
-
const isValidPropertyName = name => {
|
|
9
|
-
if (name
|
|
17
|
+
const isValidPropertyName = (name: string) => {
|
|
18
|
+
if (allowList.includes(name) || name.startsWith("aria")) {
|
|
10
19
|
return true;
|
|
11
20
|
}
|
|
12
21
|
const classes = [
|
|
@@ -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/**/*", "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/used-modules.txt
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Needed files from OpenUI5
|
|
2
|
+
|
|
3
|
+
sap/base/util/now.js
|
|
4
|
+
sap/base/Log.js
|
|
5
|
+
sap/base/assert.js
|
|
6
|
+
sap/base/security/URLListValidator.js
|
|
7
|
+
sap/base/security/sanitizeHTML.js
|
|
8
|
+
sap/base/strings/toHex.js
|
|
9
|
+
sap/base/security/encodeXML.js
|
|
10
|
+
sap/base/security/encodeCSS.js
|
package/bundle.es5.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
// ES5 bundle targets IE11 only
|
|
2
|
-
import "./dist/features/browsersupport/IE11.js";
|
|
3
|
-
|
|
4
|
-
import "./bundle.esm.js";
|
|
5
|
-
|
|
6
|
-
import { getAnimationMode } from "./dist/config/AnimationMode.js";
|
|
7
|
-
import { getLanguage } from "./dist/config/Language.js";
|
|
8
|
-
import { getCalendarType } from "./dist/config/CalendarType.js";
|
|
9
|
-
import { getTheme, setTheme } from "./dist/config/Theme.js";
|
|
10
|
-
import { getNoConflict, setNoConflict } from "./dist/config/NoConflict.js";
|
|
11
|
-
import { getRTL } from "./dist/config/RTL.js";
|
|
12
|
-
import { getFirstDayOfWeek } from "./dist/config/FormatSettings.js";
|
|
13
|
-
import { getRegisteredNames as getIconNames } from "./dist/SVGIconRegistry.js"
|
|
14
|
-
const configuration = {
|
|
15
|
-
getAnimationMode,
|
|
16
|
-
getLanguage,
|
|
17
|
-
getTheme,
|
|
18
|
-
setTheme,
|
|
19
|
-
getNoConflict,
|
|
20
|
-
setNoConflict,
|
|
21
|
-
getCalendarType,
|
|
22
|
-
getRTL,
|
|
23
|
-
getFirstDayOfWeek,
|
|
24
|
-
};
|
|
25
|
-
export {
|
|
26
|
-
configuration,
|
|
27
|
-
getIconNames,
|
|
28
|
-
};
|
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");
|
package/dist/RenderScheduler.js
DELETED
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
import RenderQueue from "./RenderQueue.js";
|
|
2
|
-
|
|
3
|
-
const MAX_RERENDER_COUNT = 10;
|
|
4
|
-
|
|
5
|
-
// Tells whether a render task is currently scheduled
|
|
6
|
-
let renderTaskId;
|
|
7
|
-
|
|
8
|
-
// Queue for invalidated web components
|
|
9
|
-
const invalidatedWebComponents = new RenderQueue();
|
|
10
|
-
|
|
11
|
-
let renderTaskPromise,
|
|
12
|
-
renderTaskPromiseResolve,
|
|
13
|
-
taskResult;
|
|
14
|
-
|
|
15
|
-
let mutationObserverTimer;
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Class that manages the rendering/re-rendering of web components
|
|
19
|
-
* This is always asynchronous
|
|
20
|
-
*/
|
|
21
|
-
class RenderScheduler {
|
|
22
|
-
constructor() {
|
|
23
|
-
throw new Error("Static class");
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Queues a web component for re-rendering
|
|
28
|
-
* @param webComponent
|
|
29
|
-
*/
|
|
30
|
-
static renderDeferred(webComponent) {
|
|
31
|
-
// Enqueue the web component
|
|
32
|
-
const res = invalidatedWebComponents.add(webComponent);
|
|
33
|
-
|
|
34
|
-
// Schedule a rendering task
|
|
35
|
-
RenderScheduler.scheduleRenderTask();
|
|
36
|
-
return res;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
static renderImmediately(webComponent) {
|
|
40
|
-
// Enqueue the web component
|
|
41
|
-
const res = invalidatedWebComponents.add(webComponent);
|
|
42
|
-
|
|
43
|
-
// Immediately start a render task
|
|
44
|
-
RenderScheduler.runRenderTask();
|
|
45
|
-
return res;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Schedules a rendering task, if not scheduled already
|
|
50
|
-
*/
|
|
51
|
-
static scheduleRenderTask() {
|
|
52
|
-
if (!renderTaskId) {
|
|
53
|
-
// renderTaskId = window.setTimeout(RenderScheduler.renderWebComponents, 3000); // Task
|
|
54
|
-
// renderTaskId = Promise.resolve().then(RenderScheduler.renderWebComponents); // Micro task
|
|
55
|
-
renderTaskId = window.requestAnimationFrame(RenderScheduler.renderWebComponents); // AF
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
static runRenderTask() {
|
|
60
|
-
if (!renderTaskId) {
|
|
61
|
-
renderTaskId = 1; // prevent another rendering task from being scheduled, all web components should use this task
|
|
62
|
-
RenderScheduler.renderWebComponents();
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
static renderWebComponents() {
|
|
67
|
-
// console.log("------------- NEW RENDER TASK ---------------");
|
|
68
|
-
|
|
69
|
-
let webComponentInfo,
|
|
70
|
-
webComponent,
|
|
71
|
-
promise;
|
|
72
|
-
const renderStats = new Map();
|
|
73
|
-
while (webComponentInfo = invalidatedWebComponents.shift()) { // eslint-disable-line
|
|
74
|
-
webComponent = webComponentInfo.webComponent;
|
|
75
|
-
promise = webComponentInfo.promise;
|
|
76
|
-
|
|
77
|
-
const timesRerendered = renderStats.get(webComponent) || 0;
|
|
78
|
-
if (timesRerendered > MAX_RERENDER_COUNT) {
|
|
79
|
-
// console.warn("WARNING RERENDER", webComponent);
|
|
80
|
-
throw new Error(`Web component re-rendered too many times this task, max allowed is: ${MAX_RERENDER_COUNT}`);
|
|
81
|
-
}
|
|
82
|
-
webComponent._render();
|
|
83
|
-
promise._deferredResolve();
|
|
84
|
-
renderStats.set(webComponent, timesRerendered + 1);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
// wait for Mutation observer just in case
|
|
88
|
-
if (!mutationObserverTimer) {
|
|
89
|
-
mutationObserverTimer = setTimeout(() => {
|
|
90
|
-
mutationObserverTimer = undefined;
|
|
91
|
-
if (invalidatedWebComponents.getList().length === 0) {
|
|
92
|
-
RenderScheduler._resolveTaskPromise();
|
|
93
|
-
}
|
|
94
|
-
}, 200);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
renderTaskId = undefined;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* return a promise that will be resolved once all invalidated web components are rendered
|
|
102
|
-
*/
|
|
103
|
-
static whenDOMUpdated() {
|
|
104
|
-
if (renderTaskPromise) {
|
|
105
|
-
return renderTaskPromise;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
renderTaskPromise = new Promise(resolve => {
|
|
109
|
-
renderTaskPromiseResolve = resolve;
|
|
110
|
-
window.requestAnimationFrame(() => {
|
|
111
|
-
if (invalidatedWebComponents.getList().length === 0) {
|
|
112
|
-
renderTaskPromise = undefined;
|
|
113
|
-
resolve();
|
|
114
|
-
}
|
|
115
|
-
});
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
return renderTaskPromise;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
static getNotDefinedComponents() {
|
|
122
|
-
return Array.from(document.querySelectorAll("*")).filter(el => el.localName.startsWith("ui5-") && !el.isUI5Element);
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* return a promise that will be resolved once all ui5 webcomponents on the page have their shadow root ready
|
|
127
|
-
*/
|
|
128
|
-
static async whenShadowDOMReady() {
|
|
129
|
-
const undefinedElements = this.getNotDefinedComponents();
|
|
130
|
-
|
|
131
|
-
const definedPromises = undefinedElements.map(
|
|
132
|
-
el => customElements.whenDefined(el.localName)
|
|
133
|
-
);
|
|
134
|
-
const timeoutPromise = new Promise(resolve => setTimeout(resolve, 5000));
|
|
135
|
-
|
|
136
|
-
await Promise.race([Promise.all(definedPromises), timeoutPromise]);
|
|
137
|
-
const stillUndefined = this.getNotDefinedComponents();
|
|
138
|
-
if (stillUndefined.length) {
|
|
139
|
-
// eslint-disable-next-line
|
|
140
|
-
console.warn("undefined elements after 5 seconds are: " + [...stillUndefined].map(el => el.localName).join(" ; "));
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
return Promise.resolve();
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
static async whenFinished() {
|
|
147
|
-
await RenderScheduler.whenShadowDOMReady();
|
|
148
|
-
await RenderScheduler.whenDOMUpdated();
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
static _resolveTaskPromise() {
|
|
152
|
-
if (invalidatedWebComponents.getList().length > 0) {
|
|
153
|
-
// More updates are pending. Resolve will be called again
|
|
154
|
-
return;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
if (renderTaskPromiseResolve) {
|
|
158
|
-
renderTaskPromiseResolve.call(this, taskResult);
|
|
159
|
-
renderTaskPromiseResolve = undefined;
|
|
160
|
-
renderTaskPromise = undefined;
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
export default RenderScheduler;
|
package/dist/SVGIconRegistry.js
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
const registry = new Map();
|
|
2
|
-
const iconCollectionPromises = new Map();
|
|
3
|
-
|
|
4
|
-
const ICON_NOT_FOUND = "ICON_NOT_FOUND";
|
|
5
|
-
const DEFAULT_COLLECTION = "SAP-icons";
|
|
6
|
-
|
|
7
|
-
const calcKey = (name, collection) => {
|
|
8
|
-
// silently support ui5-compatible URIs
|
|
9
|
-
if (name.startsWith("sap-icon://")) {
|
|
10
|
-
name = name.replace("sap-icon://", "");
|
|
11
|
-
[name, collection] = name.split("/").reverse();
|
|
12
|
-
}
|
|
13
|
-
collection = collection || DEFAULT_COLLECTION;
|
|
14
|
-
return `${collection}:${name}`;
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
const registerIcon = (name, { pathData, accData, collection } = {}) => {
|
|
18
|
-
const key = calcKey(name, collection);
|
|
19
|
-
registry.set(key, { pathData, accData });
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
const getIconDataSync = (name, collection = DEFAULT_COLLECTION) => {
|
|
23
|
-
const key = calcKey(name, collection);
|
|
24
|
-
return registry.get(key);
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
const getIconData = async (name, collection = DEFAULT_COLLECTION) => {
|
|
28
|
-
const key = calcKey(name, collection);
|
|
29
|
-
|
|
30
|
-
if (!iconCollectionPromises.has(collection)) {
|
|
31
|
-
iconCollectionPromises.set(collection, Promise.resolve(ICON_NOT_FOUND));
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
const iconData = await iconCollectionPromises.get(collection);
|
|
35
|
-
|
|
36
|
-
if (iconData === ICON_NOT_FOUND) {
|
|
37
|
-
return iconData;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
return registry.get(key);
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
const getRegisteredNames = async () => {
|
|
44
|
-
if (iconCollectionPromises.has(DEFAULT_COLLECTION)) {
|
|
45
|
-
await iconCollectionPromises.get(DEFAULT_COLLECTION);
|
|
46
|
-
}
|
|
47
|
-
return Array.from(registry.keys()).map(k => k.split(":")[1]);
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
const registerCollectionPromise = (collection, promise) => {
|
|
51
|
-
iconCollectionPromises.set(collection, promise);
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
export {
|
|
55
|
-
getIconData,
|
|
56
|
-
getIconDataSync,
|
|
57
|
-
registerIcon,
|
|
58
|
-
getRegisteredNames,
|
|
59
|
-
registerCollectionPromise,
|
|
60
|
-
};
|
package/dist/boot.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import whenDOMReady from "./util/whenDOMReady.js";
|
|
2
|
-
import insertFontFace from "./FontFace.js";
|
|
3
|
-
import { getTheme } from "./config/Theme.js";
|
|
4
|
-
import applyTheme from "./theming/applyTheme.js";
|
|
5
|
-
import whenPolyfillLoaded from "./compatibility/whenPolyfillLoaded.js";
|
|
6
|
-
import { getFeature } from "./FeaturesRegistry.js";
|
|
7
|
-
|
|
8
|
-
let bootPromise;
|
|
9
|
-
|
|
10
|
-
const boot = () => {
|
|
11
|
-
if (bootPromise) {
|
|
12
|
-
return bootPromise;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
bootPromise = new Promise(async resolve => {
|
|
16
|
-
const OpenUI5Support = getFeature("OpenUI5Support");
|
|
17
|
-
if (OpenUI5Support) {
|
|
18
|
-
await OpenUI5Support.init();
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
await whenDOMReady();
|
|
22
|
-
await applyTheme(getTheme());
|
|
23
|
-
OpenUI5Support && OpenUI5Support.attachListeners();
|
|
24
|
-
insertFontFace();
|
|
25
|
-
await whenPolyfillLoaded();
|
|
26
|
-
resolve();
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
return bootPromise;
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
export default boot;
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
// Shorthands
|
|
2
|
-
const w = window;
|
|
3
|
-
|
|
4
|
-
// Map of observer objects per dom node
|
|
5
|
-
const observers = new WeakMap();
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Implements universal DOM node observation methods.
|
|
9
|
-
*/
|
|
10
|
-
class DOMObserver {
|
|
11
|
-
constructor() {
|
|
12
|
-
throw new Error("Static class");
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* This function abstracts out mutation observer usage inside shadow DOM.
|
|
17
|
-
* For native shadow DOM the native mutation observer is used.
|
|
18
|
-
* When the polyfill is used, the observeChildren ShadyDOM method is used instead.
|
|
19
|
-
*
|
|
20
|
-
* @throws Exception
|
|
21
|
-
* Note: does not allow several mutation observers per node. If there is a valid use-case, this behavior can be changed.
|
|
22
|
-
*
|
|
23
|
-
* @param node
|
|
24
|
-
* @param callback
|
|
25
|
-
* @param options - Only used for the native mutation observer
|
|
26
|
-
*/
|
|
27
|
-
static observeDOMNode(node, callback, options) {
|
|
28
|
-
let observerObject = observers.get(node);
|
|
29
|
-
if (observerObject) {
|
|
30
|
-
throw new Error("A mutation/ShadyDOM observer is already assigned to this node.");
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
if (w.ShadyDOM) {
|
|
34
|
-
observerObject = w.ShadyDOM.observeChildren(node, callback);
|
|
35
|
-
} else {
|
|
36
|
-
observerObject = new MutationObserver(callback);
|
|
37
|
-
observerObject.observe(node, options);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
observers.set(node, observerObject);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* De-registers the mutation observer, depending on its type
|
|
45
|
-
* @param node
|
|
46
|
-
*/
|
|
47
|
-
static unobserveDOMNode(node) {
|
|
48
|
-
const observerObject = observers.get(node);
|
|
49
|
-
if (!observerObject) {
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
if (observerObject instanceof MutationObserver) {
|
|
54
|
-
observerObject.disconnect();
|
|
55
|
-
} else {
|
|
56
|
-
w.ShadyDOM.unobserveChildren(observerObject);
|
|
57
|
-
}
|
|
58
|
-
observers.delete(node);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
export default DOMObserver;
|