@ui5/webcomponents-base 0.0.0-0fcda382e → 0.0.0-111ecd79a
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 +5 -0
- package/CHANGELOG.md +540 -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 +48 -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/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 +374 -0
- package/dist/UI5Element.js +948 -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.d10f73cb.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 +26 -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 +25 -0
- package/dist/delegate/ResizeHandler.js +82 -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/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.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.js +11 -0
- package/dist/getSharedResource.d.ts +11 -0
- package/dist/getSharedResource.js +34 -0
- package/dist/getSharedResource.js.map +1 -0
- package/dist/global.d.ts +38 -0
- package/dist/i18nBundle.d.ts +43 -0
- package/dist/i18nBundle.js +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 +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/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 +67 -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/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 +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 +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 +31 -0
- package/lib/generate-version-info/index.js +32 -0
- package/package-scripts.js +50 -26
- package/package.json +20 -12
- package/src/AssetRegistry.ts +11 -0
- package/src/Boot.ts +65 -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 +203 -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 +1156 -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} +18 -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 +100 -0
- package/src/delegate/ScrollEnablement.ts +224 -0
- package/src/features/F6Navigation.ts +195 -0
- package/src/features/OpenUI5Element.ts +11 -0
- package/src/features/OpenUI5Enablement.ts +117 -0
- package/src/features/OpenUI5Support.ts +148 -0
- package/src/generated/css/BusyIndicator.css.ts +9 -0
- package/src/generated/css/FontFace.css.ts +9 -0
- package/src/generated/css/OverrideFontFace.css.ts +9 -0
- package/src/generated/css/SystemCSSVars.css.ts +9 -0
- package/src/getSharedResource.ts +39 -0
- package/src/global.d.ts +38 -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 +64 -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 +92 -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} +10 -4
- 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 -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/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/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 -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 -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/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 -47
- 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,64 @@
|
|
|
1
|
+
import { reRenderAllUI5Elements } from "../Render.js";
|
|
2
|
+
import getSharedResource from "../getSharedResource.js";
|
|
3
|
+
import EventProvider from "../EventProvider.js";
|
|
4
|
+
|
|
5
|
+
type CustomCSSChangeCallback = (tag: string) => void;
|
|
6
|
+
|
|
7
|
+
const getEventProvider = () => getSharedResource("CustomStyle.eventProvider", new EventProvider<string, void>());
|
|
8
|
+
const CUSTOM_CSS_CHANGE = "CustomCSSChange";
|
|
9
|
+
|
|
10
|
+
const attachCustomCSSChange = (listener: CustomCSSChangeCallback) => {
|
|
11
|
+
getEventProvider().attachEvent(CUSTOM_CSS_CHANGE, listener);
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const detachCustomCSSChange = (listener: CustomCSSChangeCallback) => {
|
|
15
|
+
getEventProvider().detachEvent(CUSTOM_CSS_CHANGE, listener);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const fireCustomCSSChange = (tag: string) => {
|
|
19
|
+
return getEventProvider().fireEvent(CUSTOM_CSS_CHANGE, tag);
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const getCustomCSSFor = () => getSharedResource<Record<string, Array<string>>>("CustomStyle.customCSSFor", {});
|
|
23
|
+
|
|
24
|
+
// Listen to the eventProvider, in case other copies of this CustomStyle module fire this
|
|
25
|
+
// event, and this copy would therefore need to reRender the ui5 webcomponents; but
|
|
26
|
+
// don't reRender if it was this copy that fired the event to begin with.
|
|
27
|
+
let skipRerender: boolean;
|
|
28
|
+
attachCustomCSSChange((tag: string) => {
|
|
29
|
+
if (!skipRerender) {
|
|
30
|
+
reRenderAllUI5Elements({ tag });
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
const addCustomCSS = (tag: string, css: string) => {
|
|
35
|
+
const customCSSFor = getCustomCSSFor();
|
|
36
|
+
if (!customCSSFor[tag]) {
|
|
37
|
+
customCSSFor[tag] = [];
|
|
38
|
+
}
|
|
39
|
+
customCSSFor[tag].push(css);
|
|
40
|
+
|
|
41
|
+
skipRerender = true;
|
|
42
|
+
try {
|
|
43
|
+
// The event is fired and the attached event listeners are all called synchronously
|
|
44
|
+
// The skipRerender flag will be used to avoid calling reRenderAllUI5Elements twice when it is this copy
|
|
45
|
+
// of CustomStyle.js which is firing the `CustomCSSChange` event.
|
|
46
|
+
fireCustomCSSChange(tag);
|
|
47
|
+
} finally {
|
|
48
|
+
skipRerender = false;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return reRenderAllUI5Elements({ tag });
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
const getCustomCSS = (tag: string) => {
|
|
55
|
+
const customCSSFor = getCustomCSSFor();
|
|
56
|
+
return customCSSFor[tag] ? customCSSFor[tag].join("") : "";
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
export {
|
|
60
|
+
addCustomCSS,
|
|
61
|
+
getCustomCSS,
|
|
62
|
+
attachCustomCSSChange,
|
|
63
|
+
detachCustomCSSChange,
|
|
64
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import EventProvider from "../EventProvider.js";
|
|
2
|
+
|
|
3
|
+
type ThemeLoadedCallback = (theme: string) => void;
|
|
4
|
+
|
|
5
|
+
const eventProvider = new EventProvider<string, void>();
|
|
6
|
+
const THEME_LOADED = "themeLoaded";
|
|
7
|
+
|
|
8
|
+
const attachThemeLoaded = (listener: ThemeLoadedCallback) => {
|
|
9
|
+
eventProvider.attachEvent(THEME_LOADED, listener);
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
const detachThemeLoaded = (listener: ThemeLoadedCallback) => {
|
|
13
|
+
eventProvider.detachEvent(THEME_LOADED, listener);
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const fireThemeLoaded = (theme: string) => {
|
|
17
|
+
return eventProvider.fireEvent(THEME_LOADED, theme);
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export {
|
|
21
|
+
attachThemeLoaded,
|
|
22
|
+
detachThemeLoaded,
|
|
23
|
+
fireThemeLoaded,
|
|
24
|
+
};
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { getThemeProperties, getRegisteredPackages, isThemeRegistered } from "../asset-registries/Themes.js";
|
|
2
|
+
import { removeStyle, createOrUpdateStyle } from "../ManagedStyles.js";
|
|
3
|
+
import getThemeDesignerTheme from "./getThemeDesignerTheme.js";
|
|
4
|
+
import { fireThemeLoaded } from "./ThemeLoaded.js";
|
|
5
|
+
import { getFeature } from "../FeaturesRegistry.js";
|
|
6
|
+
import { attachCustomThemeStylesToHead, getThemeRoot } from "../config/ThemeRoots.js";
|
|
7
|
+
import type OpenUI5Support from "../features/OpenUI5Support.js";
|
|
8
|
+
import { DEFAULT_THEME } from "../generated/AssetParameters.js";
|
|
9
|
+
|
|
10
|
+
const BASE_THEME_PACKAGE = "@ui5/webcomponents-theming";
|
|
11
|
+
|
|
12
|
+
const isThemeBaseRegistered = () => {
|
|
13
|
+
const registeredPackages = getRegisteredPackages();
|
|
14
|
+
return registeredPackages.has(BASE_THEME_PACKAGE);
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const loadThemeBase = async (theme: string) => {
|
|
18
|
+
if (!isThemeBaseRegistered()) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const cssData = await getThemeProperties(BASE_THEME_PACKAGE, theme);
|
|
23
|
+
if (cssData) {
|
|
24
|
+
createOrUpdateStyle(cssData, "data-ui5-theme-properties", BASE_THEME_PACKAGE);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const deleteThemeBase = () => {
|
|
29
|
+
removeStyle("data-ui5-theme-properties", BASE_THEME_PACKAGE);
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const loadComponentPackages = async (theme: string) => {
|
|
33
|
+
const registeredPackages = getRegisteredPackages();
|
|
34
|
+
|
|
35
|
+
const packagesStylesPromises = [...registeredPackages].map(async packageName => {
|
|
36
|
+
if (packageName === BASE_THEME_PACKAGE) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const cssData = await getThemeProperties(packageName, theme);
|
|
41
|
+
if (cssData) {
|
|
42
|
+
createOrUpdateStyle(cssData, "data-ui5-theme-properties", packageName);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
return Promise.all(packagesStylesPromises);
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
const detectExternalTheme = async (theme: string) => {
|
|
50
|
+
// If theme designer theme is detected, use this
|
|
51
|
+
const extTheme = getThemeDesignerTheme();
|
|
52
|
+
if (extTheme) {
|
|
53
|
+
return extTheme;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// If OpenUI5Support is enabled, try to find out if it loaded variables
|
|
57
|
+
const openUI5Support = getFeature<typeof OpenUI5Support>("OpenUI5Support");
|
|
58
|
+
if (openUI5Support) {
|
|
59
|
+
const varsLoaded = openUI5Support.cssVariablesLoaded();
|
|
60
|
+
if (varsLoaded) {
|
|
61
|
+
return {
|
|
62
|
+
themeName: openUI5Support.getConfigurationSettingsObject()?.theme, // just themeName
|
|
63
|
+
baseThemeName: "", // baseThemeName is only relevant for custom themes
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
} else if (getThemeRoot()) {
|
|
67
|
+
await attachCustomThemeStylesToHead(theme);
|
|
68
|
+
|
|
69
|
+
return getThemeDesignerTheme();
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
const applyTheme = async (theme: string) => {
|
|
74
|
+
const extTheme = await detectExternalTheme(theme);
|
|
75
|
+
|
|
76
|
+
// Only load theme_base properties if there is no externally loaded theme, or there is, but it is not being loaded
|
|
77
|
+
if (!extTheme || theme !== extTheme.themeName) {
|
|
78
|
+
await loadThemeBase(theme);
|
|
79
|
+
} else {
|
|
80
|
+
deleteThemeBase();
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Always load component packages properties. For non-registered themes, try with the base theme, if any
|
|
84
|
+
const packagesTheme = isThemeRegistered(theme) ? theme : extTheme && extTheme.baseThemeName;
|
|
85
|
+
await loadComponentPackages(packagesTheme || DEFAULT_THEME);
|
|
86
|
+
|
|
87
|
+
fireThemeLoaded(theme);
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
export default applyTheme;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import getEffectiveStyle from "./getEffectiveStyle.js";
|
|
2
|
+
import { attachCustomCSSChange } from "./CustomStyle.js";
|
|
3
|
+
import UI5Element from "../UI5Element.js";
|
|
4
|
+
|
|
5
|
+
const constructableStyleMap = new Map<string, Array<CSSStyleSheet>>();
|
|
6
|
+
|
|
7
|
+
attachCustomCSSChange((tag: string) => {
|
|
8
|
+
constructableStyleMap.delete(`${tag}_normal`); // there is custom CSS only for the component itself, not for its static area part
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Returns (and caches) a constructable style sheet for a web component class
|
|
13
|
+
* Note: Chrome
|
|
14
|
+
* @param ElementClass
|
|
15
|
+
* @returns {*}
|
|
16
|
+
*/
|
|
17
|
+
const getConstructableStyle = (ElementClass: typeof UI5Element, forStaticArea = false) => {
|
|
18
|
+
const tag = ElementClass.getMetadata().getTag();
|
|
19
|
+
const key = `${tag}_${forStaticArea ? "static" : "normal"}`;
|
|
20
|
+
|
|
21
|
+
if (!constructableStyleMap.has(key)) {
|
|
22
|
+
const styleContent = getEffectiveStyle(ElementClass, forStaticArea);
|
|
23
|
+
const style = new CSSStyleSheet();
|
|
24
|
+
style.replaceSync(styleContent);
|
|
25
|
+
constructableStyleMap.set(key, [style]);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return constructableStyleMap.get(key)!;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export default getConstructableStyle;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { getUrl } from "../CSP.js";
|
|
2
|
+
import { getFeature } from "../FeaturesRegistry.js";
|
|
3
|
+
import type UI5Element from "../UI5Element.js";
|
|
4
|
+
import type OpenUI5Enablement from "../features/OpenUI5Enablement.js";
|
|
5
|
+
import { ComponentStylesData, StyleDataCSP } from "../types.js";
|
|
6
|
+
|
|
7
|
+
const MAX_DEPTH_INHERITED_CLASSES = 10; // TypeScript complains about Infinity and big numbers
|
|
8
|
+
|
|
9
|
+
const getEffectiveLinksHrefs = (ElementClass: typeof UI5Element, forStaticArea = false) => {
|
|
10
|
+
const stylesData: ComponentStylesData = ElementClass[forStaticArea ? "staticAreaStyles" : "styles"];
|
|
11
|
+
|
|
12
|
+
if (!stylesData) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const stylesDataArray: ComponentStylesData = Array.isArray(stylesData) ? stylesData : [stylesData];
|
|
17
|
+
|
|
18
|
+
const openUI5Enablement = getFeature<typeof OpenUI5Enablement>("OpenUI5Enablement");
|
|
19
|
+
if (openUI5Enablement) {
|
|
20
|
+
stylesDataArray.push(openUI5Enablement.getBusyIndicatorStyles());
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return stylesDataArray.flat(MAX_DEPTH_INHERITED_CLASSES).filter(data => !!data).map(data => getUrl((data as StyleDataCSP).packageName, (data as StyleDataCSP).fileName));
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export default getEffectiveLinksHrefs;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { getCustomCSS, attachCustomCSSChange } from "./CustomStyle.js";
|
|
2
|
+
import getStylesString from "./getStylesString.js";
|
|
3
|
+
import { getFeature } from "../FeaturesRegistry.js";
|
|
4
|
+
import type UI5Element from "../UI5Element.js";
|
|
5
|
+
import OpenUI5Enablement from "../features/OpenUI5Enablement.js";
|
|
6
|
+
|
|
7
|
+
const effectiveStyleMap = new Map<string, string>();
|
|
8
|
+
|
|
9
|
+
attachCustomCSSChange((tag: string) => {
|
|
10
|
+
effectiveStyleMap.delete(`${tag}_normal`); // there is custom CSS only for the component itself, not for its static area part
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
const getEffectiveStyle = (ElementClass: typeof UI5Element, forStaticArea = false) => {
|
|
14
|
+
const tag = ElementClass.getMetadata().getTag();
|
|
15
|
+
const key = `${tag}_${forStaticArea ? "static" : "normal"}`;
|
|
16
|
+
const openUI5Enablement = getFeature<typeof OpenUI5Enablement>("OpenUI5Enablement");
|
|
17
|
+
|
|
18
|
+
if (!effectiveStyleMap.has(key)) {
|
|
19
|
+
let effectiveStyle;
|
|
20
|
+
let busyIndicatorStyles = "";
|
|
21
|
+
|
|
22
|
+
if (openUI5Enablement) {
|
|
23
|
+
busyIndicatorStyles = getStylesString(openUI5Enablement.getBusyIndicatorStyles());
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
if (forStaticArea) {
|
|
27
|
+
effectiveStyle = getStylesString(ElementClass.staticAreaStyles);
|
|
28
|
+
} else {
|
|
29
|
+
const customStyle = getCustomCSS(tag) || "";
|
|
30
|
+
const builtInStyles = getStylesString(ElementClass.styles);
|
|
31
|
+
effectiveStyle = `${builtInStyles} ${customStyle}`;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
effectiveStyle = `${effectiveStyle} ${busyIndicatorStyles}`;
|
|
35
|
+
effectiveStyleMap.set(key, effectiveStyle);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return effectiveStyleMap.get(key)!; // The key is guaranteed to exist
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export default getEffectiveStyle;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ComponentStylesData, StyleData } from "../types.js";
|
|
2
|
+
|
|
3
|
+
const MAX_DEPTH_INHERITED_CLASSES = 10; // TypeScript complains about Infinity and big numbers
|
|
4
|
+
|
|
5
|
+
const getStylesString = (styles: ComponentStylesData) => {
|
|
6
|
+
if (Array.isArray(styles)) {
|
|
7
|
+
return (styles.filter(style => !!style).flat(MAX_DEPTH_INHERITED_CLASSES) as Array<StyleData>).map((style: StyleData) => {
|
|
8
|
+
return typeof style === "string" ? style : style.content;
|
|
9
|
+
}).join(" ");
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
return typeof styles === "string" ? styles : styles.content;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export default getStylesString;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
type ThemeDescriptor = {
|
|
2
|
+
themeName: string,
|
|
3
|
+
baseThemeName?: string,
|
|
4
|
+
};
|
|
5
|
+
|
|
6
|
+
type ThemeMetadata = {
|
|
7
|
+
Path: string,
|
|
8
|
+
Extends: Array<string>,
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const warnings = new Set<string>();
|
|
12
|
+
|
|
13
|
+
const getThemeMetadata = () => {
|
|
14
|
+
// Check if the class was already applied, most commonly to the link/style tag with the CSS Variables
|
|
15
|
+
let el = document.querySelector(".sapThemeMetaData-Base-baseLib") || document.querySelector(".sapThemeMetaData-UI5-sap-ui-core");
|
|
16
|
+
if (el) {
|
|
17
|
+
return getComputedStyle(el).backgroundImage;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
el = document.createElement("span");
|
|
21
|
+
(el as HTMLSpanElement).style.display = "none";
|
|
22
|
+
|
|
23
|
+
// Try with sapThemeMetaData-Base-baseLib first
|
|
24
|
+
el.classList.add("sapThemeMetaData-Base-baseLib");
|
|
25
|
+
document.body.appendChild(el);
|
|
26
|
+
let metadata = getComputedStyle(el).backgroundImage;
|
|
27
|
+
|
|
28
|
+
// Try with sapThemeMetaData-UI5-sap-ui-core only if the previous selector was not found
|
|
29
|
+
if (metadata === "none") {
|
|
30
|
+
el.classList.add("sapThemeMetaData-UI5-sap-ui-core");
|
|
31
|
+
metadata = getComputedStyle(el).backgroundImage;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
document.body.removeChild(el);
|
|
35
|
+
|
|
36
|
+
return metadata;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
const parseThemeMetadata = (metadataString: string) => {
|
|
40
|
+
const params = /\(["']?data:text\/plain;utf-8,(.*?)['"]?\)$/i.exec(metadataString);
|
|
41
|
+
if (params && params.length >= 2) {
|
|
42
|
+
let paramsString = params[1];
|
|
43
|
+
paramsString = paramsString.replace(/\\"/g, `"`);
|
|
44
|
+
if (paramsString.charAt(0) !== "{" && paramsString.charAt(paramsString.length - 1) !== "}") {
|
|
45
|
+
try {
|
|
46
|
+
paramsString = decodeURIComponent(paramsString);
|
|
47
|
+
} catch (ex) {
|
|
48
|
+
if (!warnings.has("decode")) {
|
|
49
|
+
console.warn("Malformed theme metadata string, unable to decodeURIComponent"); // eslint-disable-line
|
|
50
|
+
warnings.add("decode");
|
|
51
|
+
}
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
try {
|
|
56
|
+
return JSON.parse(paramsString) as ThemeMetadata;
|
|
57
|
+
} catch (ex) {
|
|
58
|
+
if (!warnings.has("parse")) {
|
|
59
|
+
console.warn("Malformed theme metadata string, unable to parse JSON"); // eslint-disable-line
|
|
60
|
+
warnings.add("parse");
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
const processThemeMetadata = (metadata: ThemeMetadata): ThemeDescriptor | undefined => {
|
|
67
|
+
let themeName;
|
|
68
|
+
let baseThemeName;
|
|
69
|
+
|
|
70
|
+
try {
|
|
71
|
+
themeName = metadata.Path.match(/\.([^.]+)\.css_variables$/)![1];
|
|
72
|
+
baseThemeName = metadata.Extends[0];
|
|
73
|
+
} catch (ex) {
|
|
74
|
+
if (!warnings.has("object")) {
|
|
75
|
+
console.warn("Malformed theme metadata Object", metadata); // eslint-disable-line
|
|
76
|
+
warnings.add("object");
|
|
77
|
+
}
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return {
|
|
82
|
+
themeName,
|
|
83
|
+
baseThemeName,
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
const getThemeDesignerTheme = (): ThemeDescriptor | undefined => {
|
|
88
|
+
const metadataString = getThemeMetadata();
|
|
89
|
+
if (!metadataString || metadataString === "none") {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
const metadata = parseThemeMetadata(metadataString);
|
|
94
|
+
|
|
95
|
+
if (metadata) {
|
|
96
|
+
return processThemeMetadata(metadata);
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
export default getThemeDesignerTheme;
|
|
101
|
+
export type { ThemeDescriptor };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import getEffectiveLinksHrefs from "./getEffectiveLinksHrefs.js";
|
|
2
|
+
import createLinkInHead from "../util/createLinkInHead.js";
|
|
3
|
+
import { shouldUseLinks, shouldPreloadLinks } from "../CSP.js";
|
|
4
|
+
import type UI5Element from "../UI5Element.js";
|
|
5
|
+
|
|
6
|
+
const preloaded = new Set<string>();
|
|
7
|
+
|
|
8
|
+
const preloadLinks = (ElementClass: typeof UI5Element) => {
|
|
9
|
+
if (!shouldUseLinks() || !shouldPreloadLinks()) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const linksHrefs = getEffectiveLinksHrefs(ElementClass, false) || [];
|
|
14
|
+
const staticAreaLinksHrefs = getEffectiveLinksHrefs(ElementClass, true) || [];
|
|
15
|
+
|
|
16
|
+
[...linksHrefs, ...staticAreaLinksHrefs].forEach(href => {
|
|
17
|
+
if (!preloaded.has(href)) {
|
|
18
|
+
createLinkInHead(href, { rel: "preload", as: "style" });
|
|
19
|
+
preloaded.add(href);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export default preloadLinks;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import isPlainObject from './isPlainObject.js';
|
|
2
2
|
var oToken = Object.create(null);
|
|
3
|
-
var fnMerge = function () {
|
|
3
|
+
var fnMerge = function (arg1?: any, arg2?: any, arg3?: any, arg4?: any) {
|
|
4
4
|
var src, copyIsArray, copy, name, options, clone, target = arguments[2] || {}, i = 3, length = arguments.length, deep = arguments[0] || false, skipToken = arguments[1] ? undefined : oToken;
|
|
5
5
|
if (typeof target !== 'object' && typeof target !== 'function') {
|
|
6
6
|
target = {};
|
|
@@ -29,4 +29,4 @@ var fnMerge = function () {
|
|
|
29
29
|
}
|
|
30
30
|
return target;
|
|
31
31
|
};
|
|
32
|
-
export default fnMerge;
|
|
32
|
+
export default fnMerge;
|
|
@@ -3,7 +3,7 @@ var hasOwn = class2type.hasOwnProperty;
|
|
|
3
3
|
var toString = class2type.toString;
|
|
4
4
|
var fnToString = hasOwn.toString;
|
|
5
5
|
var ObjectFunctionString = fnToString.call(Object);
|
|
6
|
-
var fnIsPlainObject = function (obj) {
|
|
6
|
+
var fnIsPlainObject = function (obj: object) {
|
|
7
7
|
var proto, Ctor;
|
|
8
8
|
if (!obj || toString.call(obj) !== "[object Object]") {
|
|
9
9
|
return false;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Different types of AnimationMode.
|
|
3
|
+
*
|
|
4
|
+
* @class
|
|
5
|
+
* @enum {string}
|
|
6
|
+
* @public
|
|
7
|
+
* @author SAP SE
|
|
8
|
+
* @alias sap.ui.webc.base.types.AnimationMode
|
|
9
|
+
*/
|
|
10
|
+
enum AnimationMode {
|
|
11
|
+
/**
|
|
12
|
+
* @public
|
|
13
|
+
* @type {Full}
|
|
14
|
+
*/
|
|
15
|
+
Full = "full",
|
|
16
|
+
/**
|
|
17
|
+
* @public
|
|
18
|
+
* @type {Basic}
|
|
19
|
+
*/
|
|
20
|
+
Basic = "basic",
|
|
21
|
+
/**
|
|
22
|
+
* @public
|
|
23
|
+
* @type {Minimal}
|
|
24
|
+
*/
|
|
25
|
+
Minimal = "minimal",
|
|
26
|
+
/**
|
|
27
|
+
* @public
|
|
28
|
+
* @type {None}
|
|
29
|
+
*/
|
|
30
|
+
None = "none",
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export default AnimationMode;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import DataType from "./DataType.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @class
|
|
5
|
+
* CSSColor data type.
|
|
6
|
+
*
|
|
7
|
+
* @extends sap.ui.webc.base.types.DataType
|
|
8
|
+
* @constructor
|
|
9
|
+
* @author SAP SE
|
|
10
|
+
* @alias sap.ui.webc.base.types.CSSColor
|
|
11
|
+
* @public
|
|
12
|
+
* @enum {string}
|
|
13
|
+
*/
|
|
14
|
+
class CSSColor extends DataType {
|
|
15
|
+
static override isValid(value: string) {
|
|
16
|
+
return /^(#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})|rgb\(\s*((1?[0-9]?[0-9]|2([0-4][0-9]|5[0-5]))|([0-9]?[0-9](\.[0-9]+)?|100(\.0+)?)%)\s*(,\s*((1?[0-9]?[0-9]|2([0-4][0-9]|5[0-5]))|([0-9]?[0-9](\.[0-9]+)?|100(\.0+)?)%)\s*){2}\)|rgba\((\s*((1?[0-9]?[0-9]|2([0-4][0-9]|5[0-5]))|([0-9]?[0-9](\.[0-9]+)?|100(\.0+)?)%)\s*,){3}\s*(0(\.[0-9]+)?|1(\.0+)?)\s*\)|hsl\(\s*([0-2]?[0-9]?[0-9]|3([0-5][0-9]|60))\s*(,\s*(([0-9]?[0-9](\.[0-9]+)?|100(\.0+)?)%)\s*){2}\)|hsla\(\s*([0-2]?[0-9]?[0-9]|3([0-5][0-9]|60))\s*,(\s*(([0-9]?[0-9](\.[0-9]+)?|100(\.0+)?)%)\s*,){2}\s*(0(\.[0-9]+)?|1(\.0+)?)\s*\)|aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgrey|darkgreen|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|grey|green|greenyellow|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgrey|lightgreen|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silverskyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen|transparent|inherit|)$/.test(value ); // eslint-disable-line
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export default CSSColor;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Different calendar types.
|
|
3
|
+
*
|
|
4
|
+
* @class
|
|
5
|
+
* @enum {string}
|
|
6
|
+
* @public
|
|
7
|
+
* @author SAP SE
|
|
8
|
+
* @alias sap.ui.webc.base.types.CalendarType
|
|
9
|
+
*/
|
|
10
|
+
enum CalendarType {
|
|
11
|
+
/**
|
|
12
|
+
* @public
|
|
13
|
+
* @type {Gregorian}
|
|
14
|
+
*/
|
|
15
|
+
Gregorian = "Gregorian",
|
|
16
|
+
/**
|
|
17
|
+
* @public
|
|
18
|
+
* @type {Islamic}
|
|
19
|
+
*/
|
|
20
|
+
Islamic = "Islamic",
|
|
21
|
+
/**
|
|
22
|
+
* @public
|
|
23
|
+
* @type {Japanese}
|
|
24
|
+
*/
|
|
25
|
+
Japanese = "Japanese",
|
|
26
|
+
/**
|
|
27
|
+
* @public
|
|
28
|
+
* @type {Buddhist}
|
|
29
|
+
*/
|
|
30
|
+
Buddhist = "Buddhist",
|
|
31
|
+
/**
|
|
32
|
+
* @public
|
|
33
|
+
* @type {Persian}
|
|
34
|
+
*/
|
|
35
|
+
Persian = "Persian",
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export default CalendarType;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import DataType from "./DataType.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @class
|
|
5
|
+
* DOM Element reference or ID.
|
|
6
|
+
* <b>Note:</b> If an ID is passed, it is expected to be part of the same <code>document</code> element as the consuming component.
|
|
7
|
+
*
|
|
8
|
+
* @constructor
|
|
9
|
+
* @extends sap.ui.webc.base.types.DataType
|
|
10
|
+
* @author SAP SE
|
|
11
|
+
* @alias sap.ui.webc.base.types.DOMReference
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
14
|
+
class DOMReference extends DataType {
|
|
15
|
+
static override isValid(value: string | HTMLElement) {
|
|
16
|
+
return (typeof value === "string" || value instanceof HTMLElement);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
static override propertyToAttribute(propertyValue: string | HTMLElement) {
|
|
20
|
+
if (propertyValue instanceof HTMLElement) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return propertyValue;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export default DOMReference;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { PropertyValue } from "../UI5ElementMetadata.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Base class for all data types.
|
|
5
|
+
*
|
|
6
|
+
* @class
|
|
7
|
+
* @constructor
|
|
8
|
+
* @author SAP SE
|
|
9
|
+
* @alias sap.ui.webc.base.types.DataType
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
class DataType {
|
|
13
|
+
/**
|
|
14
|
+
* Checks if the value is valid for its data type.
|
|
15
|
+
* @public
|
|
16
|
+
* @abstract
|
|
17
|
+
* @returns {Boolean}
|
|
18
|
+
*/
|
|
19
|
+
// eslint-disable-next-line
|
|
20
|
+
static isValid(value: any): boolean {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
static attributeToProperty(attributeValue: string | null): PropertyValue {
|
|
25
|
+
return attributeValue;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
static propertyToAttribute(propertyValue: PropertyValue): string | null {
|
|
29
|
+
return propertyValue === null ? null : String(propertyValue);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
static valuesAreEqual(value1: any, value2: any) {
|
|
33
|
+
return value1 === value2;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
static generateTypeAccessors(types: Record<string, string>) {
|
|
37
|
+
Object.keys(types).forEach(type => {
|
|
38
|
+
Object.defineProperty(this, type, {
|
|
39
|
+
get() {
|
|
40
|
+
return types[type];
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
static get isDataTypeClass() {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export default DataType;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { PropertyValue } from "../UI5ElementMetadata.js";
|
|
2
|
+
import DataType from "./DataType.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @class
|
|
6
|
+
* Float data type.
|
|
7
|
+
*
|
|
8
|
+
* @constructor
|
|
9
|
+
* @extends sap.ui.webc.base.types.DataType
|
|
10
|
+
* @author SAP SE
|
|
11
|
+
* @alias sap.ui.webc.base.types.Float
|
|
12
|
+
* @public
|
|
13
|
+
* @enum {number}
|
|
14
|
+
*/
|
|
15
|
+
class Float extends DataType {
|
|
16
|
+
static override isValid(value: any) {
|
|
17
|
+
return Number(value) === value;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
static override attributeToProperty(attributeValue: string): PropertyValue {
|
|
21
|
+
return parseFloat(attributeValue);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export default Float;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { PropertyValue } from "../UI5ElementMetadata.js";
|
|
2
|
+
import DataType from "./DataType.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @class
|
|
6
|
+
* Integer data type.
|
|
7
|
+
*
|
|
8
|
+
* @constructor
|
|
9
|
+
* @extends sap.ui.webc.base.types.DataType
|
|
10
|
+
* @author SAP SE
|
|
11
|
+
* @alias sap.ui.webc.base.types.Integer
|
|
12
|
+
* @public
|
|
13
|
+
* @enum {number}
|
|
14
|
+
*/
|
|
15
|
+
class Integer extends DataType {
|
|
16
|
+
static override isValid(value: any) {
|
|
17
|
+
return Number.isInteger(value);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
static override attributeToProperty(attributeValue: string): PropertyValue {
|
|
21
|
+
return parseInt(attributeValue);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export default Integer;
|