@ui5/webcomponents-base 0.0.0-5b79982e1 → 0.0.0-5e31d3069
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +8 -3
- package/.npsrc.json +3 -0
- package/CHANGELOG.md +614 -0
- package/README.md +53 -7
- package/bundle.esm.js +30 -22
- package/config/wdio.conf.cjs +400 -0
- package/dist/AssetRegistry.d.ts +5 -0
- package/dist/AssetRegistry.js +6 -12
- package/dist/AssetRegistry.js.map +1 -0
- package/dist/Boot.d.ts +9 -0
- package/dist/Boot.js +71 -0
- package/dist/Boot.js.map +1 -0
- package/dist/CSP.d.ts +30 -0
- package/dist/CSP.js +51 -0
- package/dist/CSP.js.map +1 -0
- package/dist/CustomElementsRegistry.d.ts +5 -0
- package/dist/CustomElementsRegistry.js +69 -30
- package/dist/CustomElementsRegistry.js.map +1 -0
- package/dist/CustomElementsScope.d.ts +7 -0
- package/dist/CustomElementsScope.js +11 -108
- package/dist/CustomElementsScope.js.map +1 -0
- package/dist/CustomElementsScopeUtils.d.ts +55 -0
- package/{src/CustomElementsScope.js → dist/CustomElementsScopeUtils.js} +34 -52
- 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 -78
- package/dist/EventProvider.js.map +1 -0
- package/dist/FeaturesRegistry.d.ts +3 -0
- package/dist/FeaturesRegistry.js +5 -7
- package/dist/FeaturesRegistry.js.map +1 -0
- package/dist/FontFace.d.ts +2 -0
- package/dist/FontFace.js +17 -110
- package/dist/FontFace.js.map +1 -0
- package/dist/InitialConfiguration.d.ts +27 -0
- package/dist/InitialConfiguration.js +124 -118
- package/dist/InitialConfiguration.js.map +1 -0
- package/dist/Keys.d.ts +57 -0
- package/dist/Keys.js +174 -217
- package/dist/Keys.js.map +1 -0
- package/dist/ManagedStyles.d.ts +8 -0
- package/dist/ManagedStyles.js +77 -0
- package/dist/ManagedStyles.js.map +1 -0
- package/dist/MarkedEvents.d.ts +9 -0
- package/dist/MarkedEvents.js +15 -0
- package/dist/MarkedEvents.js.map +1 -0
- package/dist/MediaRange.d.ts +37 -0
- package/dist/MediaRange.js +98 -0
- package/dist/MediaRange.js.map +1 -0
- package/dist/PropertiesFileFormat.d.ts +8 -0
- package/dist/PropertiesFileFormat.js +85 -0
- package/dist/PropertiesFileFormat.js.map +1 -0
- package/dist/Render.d.ts +47 -0
- package/dist/Render.js +143 -0
- package/dist/Render.js.map +1 -0
- package/dist/RenderQueue.d.ts +19 -0
- package/dist/RenderQueue.js +52 -62
- package/dist/RenderQueue.js.map +1 -0
- package/dist/Runtimes.d.ts +27 -0
- package/dist/Runtimes.js +86 -0
- package/dist/Runtimes.js.map +1 -0
- package/dist/StaticArea.d.ts +3 -0
- package/dist/StaticArea.js +4 -28
- package/dist/StaticArea.js.map +1 -0
- package/dist/StaticAreaItem.d.ts +36 -0
- package/dist/StaticAreaItem.js +92 -101
- package/dist/StaticAreaItem.js.map +1 -0
- package/dist/SystemCSSVars.d.ts +2 -0
- package/dist/SystemCSSVars.js +6 -28
- package/dist/SystemCSSVars.js.map +1 -0
- package/{src/Theming.js → dist/Theming.d.ts} +0 -1
- package/dist/Theming.js +1 -1
- package/dist/Theming.js.map +1 -0
- package/dist/UI5Element.d.ts +378 -0
- package/dist/UI5Element.js +924 -1144
- package/dist/UI5Element.js.map +1 -0
- package/dist/UI5ElementMetadata.d.ts +150 -0
- package/dist/UI5ElementMetadata.js +278 -267
- package/dist/UI5ElementMetadata.js.map +1 -0
- package/dist/animations/AnimationQueue.d.ts +8 -0
- package/dist/animations/AnimationQueue.js +31 -38
- package/dist/animations/AnimationQueue.js.map +1 -0
- package/dist/animations/animate.d.ts +14 -0
- package/dist/animations/animate.js +46 -51
- package/dist/animations/animate.js.map +1 -0
- package/dist/animations/scroll.d.ts +5 -0
- package/dist/animations/scroll.js +18 -27
- package/dist/animations/scroll.js.map +1 -0
- package/dist/animations/slideDown.d.ts +5 -0
- package/dist/animations/slideDown.js +53 -78
- package/dist/animations/slideDown.js.map +1 -0
- package/dist/animations/slideUp.d.ts +5 -0
- package/dist/animations/slideUp.js +49 -70
- package/dist/animations/slideUp.js.map +1 -0
- package/dist/api.json +1 -0
- package/dist/asset-registries/Icons.d.ts +38 -0
- package/dist/asset-registries/Icons.js +125 -32
- package/dist/asset-registries/Icons.js.map +1 -0
- package/dist/asset-registries/Illustrations.d.ts +17 -0
- package/dist/asset-registries/Illustrations.js +46 -0
- package/dist/asset-registries/Illustrations.js.map +1 -0
- package/dist/asset-registries/LocaleData.d.ts +7 -0
- package/dist/asset-registries/LocaleData.js +119 -118
- package/dist/asset-registries/LocaleData.js.map +1 -0
- package/dist/asset-registries/Themes.d.ts +11 -0
- package/dist/asset-registries/Themes.js +41 -77
- package/dist/asset-registries/Themes.js.map +1 -0
- package/dist/asset-registries/i18n.d.ts +23 -0
- package/dist/asset-registries/i18n.js +77 -86
- package/dist/asset-registries/i18n.js.map +1 -0
- package/dist/assets/Boot.34b7cea0.css +1 -0
- package/dist/assets/Boot.8220f4ab.js +9 -0
- package/dist/assets/bundle.esm.efe1daa8.js +50 -0
- package/dist/assets-meta/IconCollectionsAlias.d.ts +31 -0
- package/dist/assets-meta/IconCollectionsAlias.js +38 -0
- package/dist/assets-meta/IconCollectionsAlias.js.map +1 -0
- package/dist/config/AnimationMode.d.ts +14 -0
- package/dist/config/AnimationMode.js +21 -18
- package/dist/config/AnimationMode.js.map +1 -0
- package/dist/config/CalendarType.d.ts +8 -0
- package/dist/config/CalendarType.js +13 -12
- package/dist/config/CalendarType.js.map +1 -0
- package/dist/config/FormatSettings.d.ts +15 -0
- package/dist/config/FormatSettings.js +15 -9
- package/dist/config/FormatSettings.js.map +1 -0
- package/dist/config/Icons.d.ts +55 -0
- package/dist/config/Icons.js +103 -0
- package/dist/config/Icons.js.map +1 -0
- package/dist/config/Language.d.ts +40 -0
- package/dist/config/Language.js +49 -51
- package/dist/config/Language.js.map +1 -0
- package/dist/config/NoConflict.d.ts +20 -0
- package/dist/config/NoConflict.js +41 -41
- package/dist/config/NoConflict.js.map +1 -0
- package/dist/config/RTL.d.ts +7 -0
- package/dist/config/RTL.js +26 -20
- package/dist/config/RTL.js.map +1 -0
- package/dist/config/Theme.d.ts +38 -0
- package/dist/config/Theme.js +64 -22
- package/dist/config/Theme.js.map +1 -0
- package/dist/config/ThemeRoots.d.ts +4 -0
- package/dist/config/ThemeRoots.js +28 -0
- package/dist/config/ThemeRoots.js.map +1 -0
- package/dist/config/Timezone.d.ts +17 -0
- package/dist/config/Timezone.js +30 -0
- package/dist/config/Timezone.js.map +1 -0
- package/dist/css/BusyIndicator.css +80 -0
- package/dist/css/FontFace.css +66 -0
- package/dist/css/OverrideFontFace.css +32 -0
- package/dist/css/SystemCSSVars.css +17 -0
- package/dist/decorators/customElement.d.ts +23 -0
- package/dist/decorators/customElement.js +37 -0
- package/dist/decorators/customElement.js.map +1 -0
- package/dist/decorators/event.d.ts +10 -0
- package/dist/decorators/event.js +24 -0
- package/dist/decorators/event.js.map +1 -0
- package/dist/decorators/property.d.ts +9 -0
- package/dist/decorators/property.js +24 -0
- package/dist/decorators/property.js.map +1 -0
- package/dist/decorators/slot.d.ts +9 -0
- package/dist/decorators/slot.js +37 -0
- package/dist/decorators/slot.js.map +1 -0
- package/dist/delegate/ItemNavigation.d.ts +113 -0
- package/dist/delegate/ItemNavigation.js +280 -277
- package/dist/delegate/ItemNavigation.js.map +1 -0
- package/dist/delegate/ResizeHandler.d.ts +25 -0
- package/dist/delegate/ResizeHandler.js +84 -62
- package/dist/delegate/ResizeHandler.js.map +1 -0
- package/dist/delegate/ScrollEnablement.d.ts +49 -0
- package/dist/delegate/ScrollEnablement.js +159 -176
- package/dist/delegate/ScrollEnablement.js.map +1 -0
- package/dist/features/F6Navigation.d.ts +19 -0
- package/dist/features/F6Navigation.js +151 -0
- package/dist/features/F6Navigation.js.map +1 -0
- package/dist/features/LegacyDateFormats.d.ts +18 -0
- package/dist/features/LegacyDateFormats.js +20 -0
- package/dist/features/LegacyDateFormats.js.map +1 -0
- package/dist/features/OpenUI5Element.d.ts +9 -0
- package/dist/features/OpenUI5Element.js +5 -0
- package/dist/features/OpenUI5Element.js.map +1 -0
- package/dist/features/OpenUI5Enablement.d.ts +11 -0
- package/dist/features/OpenUI5Enablement.js +96 -0
- package/dist/features/OpenUI5Enablement.js.map +1 -0
- package/dist/features/OpenUI5Support.d.ts +26 -0
- package/dist/features/OpenUI5Support.js +95 -86
- package/dist/features/OpenUI5Support.js.map +1 -0
- package/dist/generated/AssetParameters.js +3 -1
- package/dist/generated/VersionInfo.js +10 -0
- package/dist/generated/css/BusyIndicator.css.d.ts +3 -0
- package/dist/generated/css/BusyIndicator.css.js +7 -0
- package/dist/generated/css/BusyIndicator.css.js.map +1 -0
- package/dist/generated/css/FontFace.css.d.ts +3 -0
- package/dist/generated/css/FontFace.css.js +7 -0
- package/dist/generated/css/FontFace.css.js.map +1 -0
- package/dist/generated/css/OverrideFontFace.css.d.ts +3 -0
- package/dist/generated/css/OverrideFontFace.css.js +7 -0
- package/dist/generated/css/OverrideFontFace.css.js.map +1 -0
- package/dist/generated/css/SystemCSSVars.css.d.ts +3 -0
- package/dist/generated/css/SystemCSSVars.css.js +7 -0
- package/dist/generated/css/SystemCSSVars.css.js.map +1 -0
- package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +11 -0
- package/dist/getSharedResource.d.ts +11 -0
- package/dist/getSharedResource.js +22 -18
- package/dist/getSharedResource.js.map +1 -0
- package/dist/global.d.ts +40 -0
- package/dist/i18nBundle.d.ts +43 -0
- package/dist/i18nBundle.js +68 -42
- package/dist/i18nBundle.js.map +1 -0
- package/dist/locale/Locale.d.ts +22 -0
- package/dist/locale/Locale.js +75 -87
- package/dist/locale/Locale.js.map +1 -0
- package/dist/locale/RTLAwareRegistry.d.ts +4 -0
- package/dist/locale/RTLAwareRegistry.js +6 -11
- package/dist/locale/RTLAwareRegistry.js.map +1 -0
- package/dist/locale/applyDirection.d.ts +10 -0
- package/dist/locale/applyDirection.js +8 -9
- package/dist/locale/applyDirection.js.map +1 -0
- package/dist/locale/directionChange.d.ts +15 -0
- package/dist/locale/directionChange.js +7 -15
- package/dist/locale/directionChange.js.map +1 -0
- package/dist/locale/getEffectiveDir.d.ts +2 -0
- package/dist/locale/getEffectiveDir.js +24 -0
- package/dist/locale/getEffectiveDir.js.map +1 -0
- package/dist/locale/getLocale.d.ts +7 -0
- package/dist/locale/getLocale.js +26 -29
- package/dist/locale/getLocale.js.map +1 -0
- package/dist/locale/languageChange.d.ts +5 -0
- package/dist/locale/languageChange.js +8 -16
- package/dist/locale/languageChange.js.map +1 -0
- package/dist/locale/nextFallbackLocale.d.ts +8 -0
- package/dist/locale/nextFallbackLocale.js +15 -19
- package/dist/locale/nextFallbackLocale.js.map +1 -0
- package/dist/locale/normalizeLocale.d.ts +7 -0
- package/dist/locale/normalizeLocale.js +34 -41
- package/dist/locale/normalizeLocale.js.map +1 -0
- package/dist/renderer/LitRenderer.d.ts +14 -0
- package/dist/renderer/LitRenderer.js +34 -24
- package/dist/renderer/LitRenderer.js.map +1 -0
- package/dist/renderer/directives/style-map.js +72 -0
- package/dist/renderer/executeTemplate.d.ts +13 -0
- package/dist/renderer/executeTemplate.js +20 -7
- package/dist/renderer/executeTemplate.js.map +1 -0
- package/dist/sap/base/Log.js +240 -0
- package/dist/sap/base/assert.js +7 -0
- package/dist/sap/base/security/URLListValidator.js +159 -0
- package/dist/sap/base/security/encodeCSS.js +14 -0
- package/dist/sap/base/security/encodeXML.js +23 -0
- package/dist/sap/base/security/sanitizeHTML.js +16 -0
- package/dist/sap/base/strings/toHex.js +8 -0
- package/dist/sap/base/util/now.js +7 -0
- package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +3585 -0
- package/dist/theming/CustomStyle.d.ts +6 -0
- package/dist/theming/CustomStyle.js +40 -32
- package/dist/theming/CustomStyle.js.map +1 -0
- package/dist/theming/ThemeLoaded.d.ts +5 -0
- package/dist/theming/ThemeLoaded.js +8 -16
- package/dist/theming/ThemeLoaded.js.map +1 -0
- package/dist/theming/ThemeRegistered.d.ts +4 -0
- package/dist/theming/ThemeRegistered.js +11 -0
- package/dist/theming/ThemeRegistered.js.map +1 -0
- package/dist/theming/applyTheme.d.ts +2 -0
- package/dist/theming/applyTheme.js +62 -71
- package/dist/theming/applyTheme.js.map +1 -0
- package/dist/theming/getConstructableStyle.d.ts +9 -0
- package/dist/theming/getConstructableStyle.js +13 -17
- package/dist/theming/getConstructableStyle.js.map +1 -0
- package/dist/theming/getEffectiveLinksHrefs.d.ts +3 -0
- package/dist/theming/getEffectiveLinksHrefs.js +17 -0
- package/dist/theming/getEffectiveLinksHrefs.js.map +1 -0
- package/dist/theming/getEffectiveStyle.d.ts +3 -0
- package/dist/theming/getEffectiveStyle.js +26 -17
- package/dist/theming/getEffectiveStyle.js.map +1 -0
- package/dist/theming/getStylesString.d.ts +3 -0
- package/dist/theming/getStylesString.js +9 -11
- package/dist/theming/getStylesString.js.map +1 -0
- package/dist/theming/getThemeDesignerTheme.d.ts +7 -0
- package/dist/theming/getThemeDesignerTheme.js +73 -60
- package/dist/theming/getThemeDesignerTheme.js.map +1 -0
- package/dist/theming/preloadLinks.d.ts +3 -0
- package/dist/theming/preloadLinks.js +19 -0
- package/dist/theming/preloadLinks.js.map +1 -0
- package/dist/thirdparty/_merge.d.ts +2 -0
- package/dist/thirdparty/_merge.js +7 -4
- package/dist/thirdparty/_merge.js.map +1 -0
- package/dist/thirdparty/isPlainObject.d.ts +2 -0
- package/dist/thirdparty/isPlainObject.js +11 -10
- package/dist/thirdparty/isPlainObject.js.map +1 -0
- package/dist/thirdparty/merge.d.ts +2 -0
- package/dist/thirdparty/merge.js +4 -8
- package/dist/thirdparty/merge.js.map +1 -0
- package/dist/types/AnimationMode.d.ts +32 -0
- package/dist/types/AnimationMode.js +33 -6
- package/dist/types/AnimationMode.js.map +1 -0
- package/dist/types/CSSColor.d.ts +15 -0
- package/dist/types/CSSColor.js +18 -0
- package/dist/types/CSSColor.js.map +1 -0
- package/dist/types/CalendarType.d.ts +37 -0
- package/dist/types/CalendarType.js +35 -18
- package/dist/types/CalendarType.js.map +1 -0
- package/dist/types/DOMReference.d.ts +17 -0
- package/dist/types/DOMReference.js +25 -0
- package/dist/types/DOMReference.js.map +1 -0
- package/dist/types/DataType.d.ts +25 -0
- package/dist/types/DataType.js +33 -14
- package/dist/types/DataType.js.map +1 -0
- package/dist/types/Float.d.ts +17 -0
- package/dist/types/Float.js +17 -6
- package/dist/types/Float.js.map +1 -0
- package/dist/types/Integer.d.ts +17 -0
- package/dist/types/Integer.js +17 -5
- package/dist/types/Integer.js.map +1 -0
- package/dist/types/InvisibleMessageMode.d.ts +25 -0
- package/dist/types/InvisibleMessageMode.js +27 -0
- package/dist/types/InvisibleMessageMode.js.map +1 -0
- package/dist/types/ItemNavigationBehavior.d.ts +24 -0
- package/dist/types/ItemNavigationBehavior.js +22 -12
- package/dist/types/ItemNavigationBehavior.js.map +1 -0
- package/dist/types/NavigationMode.d.ts +32 -0
- package/dist/types/NavigationMode.js +33 -6
- package/dist/types/NavigationMode.js.map +1 -0
- package/dist/types/ValueState.d.ts +42 -0
- package/dist/types/ValueState.js +41 -19
- package/dist/types/ValueState.js.map +1 -0
- package/dist/types.d.ts +18 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/updateShadowRoot.d.ts +8 -0
- package/dist/updateShadowRoot.js +38 -0
- package/dist/updateShadowRoot.js.map +1 -0
- package/dist/util/AriaLabelHelper.d.ts +15 -0
- package/dist/util/AriaLabelHelper.js +166 -36
- package/dist/util/AriaLabelHelper.js.map +1 -0
- package/dist/util/Caret.d.ts +7 -0
- package/dist/util/Caret.js +16 -38
- package/dist/util/Caret.js.map +1 -0
- package/dist/util/ColorConversion.d.ts +30 -0
- package/dist/util/ColorConversion.js +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 -68
- package/dist/util/FocusableElements.js.map +1 -0
- package/dist/util/HTMLSanitizer.d.ts +3 -0
- package/dist/util/HTMLSanitizer.js +6 -0
- package/dist/util/HTMLSanitizer.js.map +1 -0
- package/dist/util/InvisibleMessage.d.ts +10 -0
- package/dist/util/InvisibleMessage.js +56 -0
- package/dist/util/InvisibleMessage.js.map +1 -0
- package/dist/util/PopupUtils.d.ts +7 -0
- package/dist/util/PopupUtils.js +74 -0
- package/dist/util/PopupUtils.js.map +1 -0
- package/dist/util/SlotsHelper.d.ts +9 -0
- package/dist/util/SlotsHelper.js +30 -0
- package/dist/util/SlotsHelper.js.map +1 -0
- package/dist/util/StringHelper.d.ts +3 -0
- package/dist/util/StringHelper.js +17 -20
- package/dist/util/StringHelper.js.map +1 -0
- package/dist/util/TabbableElements.d.ts +17 -0
- package/dist/util/TabbableElements.js +53 -43
- package/dist/util/TabbableElements.js.map +1 -0
- package/dist/util/arraysAreEqual.d.ts +2 -0
- package/dist/util/arraysAreEqual.js +10 -12
- package/dist/util/arraysAreEqual.js.map +1 -0
- package/dist/util/clamp.d.ts +9 -0
- package/dist/util/clamp.js +12 -0
- package/dist/util/clamp.js.map +1 -0
- package/dist/util/createLinkInHead.d.ts +7 -0
- package/dist/util/createLinkInHead.js +21 -0
- package/dist/util/createLinkInHead.js.map +1 -0
- package/dist/util/createStyleInHead.d.ts +8 -0
- package/dist/util/createStyleInHead.js +10 -10
- package/dist/util/createStyleInHead.js.map +1 -0
- package/dist/util/debounce.d.ts +2 -0
- package/dist/util/debounce.js +15 -0
- package/dist/util/debounce.js.map +1 -0
- package/dist/util/detectNavigatorLanguage.d.ts +2 -0
- package/dist/util/detectNavigatorLanguage.js +7 -10
- package/dist/util/detectNavigatorLanguage.js.map +1 -0
- package/dist/util/escapeRegex.d.ts +8 -0
- package/dist/util/escapeRegex.js +11 -0
- package/dist/util/escapeRegex.js.map +1 -0
- package/dist/util/formatMessage.d.ts +2 -0
- package/dist/util/formatMessage.js +15 -19
- package/dist/util/formatMessage.js.map +1 -0
- package/dist/util/generateHighlightedMarkup.d.ts +9 -0
- package/dist/util/generateHighlightedMarkup.js +41 -0
- package/dist/util/generateHighlightedMarkup.js.map +1 -0
- package/dist/util/getActiveElement.d.ts +2 -0
- package/dist/util/getActiveElement.js +6 -8
- package/dist/util/getActiveElement.js.map +1 -0
- package/dist/util/getClassCopy.d.ts +398 -0
- package/dist/util/getClassCopy.js +10 -0
- package/dist/util/getClassCopy.js.map +1 -0
- package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -0
- package/dist/util/getDesigntimePropertyAsArray.js +4 -3
- package/dist/util/getDesigntimePropertyAsArray.js.map +1 -0
- package/dist/util/getEffectiveContentDensity.d.ts +2 -0
- package/dist/util/getEffectiveContentDensity.js +4 -0
- package/dist/util/getEffectiveContentDensity.js.map +1 -0
- package/dist/util/getEffectiveScrollbarStyle.d.ts +2 -0
- package/dist/util/getEffectiveScrollbarStyle.js +4 -0
- package/dist/util/getEffectiveScrollbarStyle.js.map +1 -0
- package/dist/util/getFastNavigationGroups.d.ts +2 -0
- package/dist/util/getFastNavigationGroups.js +51 -0
- package/dist/util/getFastNavigationGroups.js.map +1 -0
- package/{src/util/getFileExtension.js → dist/util/getFileExtension.d.ts} +3 -12
- package/dist/util/getFileExtension.js +9 -11
- package/dist/util/getFileExtension.js.map +1 -0
- package/dist/util/getNormalizedTarget.d.ts +7 -0
- package/dist/util/getNormalizedTarget.js +14 -0
- package/dist/util/getNormalizedTarget.js.map +1 -0
- package/dist/util/getSingletonElementInstance.d.ts +2 -0
- package/dist/util/getSingletonElementInstance.js +7 -10
- package/dist/util/getSingletonElementInstance.js.map +1 -0
- package/dist/util/isElementClickable.d.ts +2 -0
- package/dist/util/isElementClickable.js +16 -0
- package/dist/util/isElementClickable.js.map +1 -0
- package/dist/util/isElementHidden.d.ts +2 -0
- package/dist/util/isElementHidden.js +8 -0
- package/dist/util/isElementHidden.js.map +1 -0
- package/dist/util/isElementInView.d.ts +6 -0
- package/dist/util/isElementInView.js +12 -0
- package/dist/util/isElementInView.js.map +1 -0
- package/dist/util/isElementTabbable.d.ts +9 -0
- package/dist/util/isElementTabbable.js +30 -0
- package/dist/util/isElementTabbable.js.map +1 -0
- package/dist/util/isValidPropertyName.d.ts +8 -0
- package/dist/util/isValidPropertyName.js +16 -17
- package/dist/util/isValidPropertyName.js.map +1 -0
- package/dist/util/whenDOMReady.d.ts +2 -0
- package/dist/util/whenDOMReady.js +11 -10
- package/dist/util/whenDOMReady.js.map +1 -0
- package/dist/util/willShowContent.d.ts +2 -0
- package/dist/util/willShowContent.js +7 -0
- package/dist/util/willShowContent.js.map +1 -0
- package/dist/validateThemeRoot.d.ts +2 -0
- package/dist/validateThemeRoot.js +48 -0
- package/dist/validateThemeRoot.js.map +1 -0
- package/index.js +228 -2
- package/lib/generate-asset-parameters/index.js +11 -6
- package/lib/generate-styles/index.js +31 -0
- package/lib/generate-version-info/index.js +32 -0
- package/package-scripts.cjs +71 -0
- package/package.json +21 -13
- package/src/css/BusyIndicator.css +80 -0
- package/src/css/FontFace.css +66 -0
- package/src/css/OverrideFontFace.css +32 -0
- package/src/css/SystemCSSVars.css +17 -0
- package/src/renderer/directives/style-map.js +72 -0
- package/tsconfig.json +14 -0
- package/used-modules.txt +10 -0
- package/bundle.es5.js +0 -28
- package/config/rollup.config.js +0 -1
- package/config/wdio.conf.js +0 -1
- package/dist/RenderScheduler.js +0 -169
- package/dist/SVGIconRegistry.js +0 -73
- package/dist/animations/config.js +0 -5
- package/dist/boot.js +0 -34
- package/dist/compatibility/DOMObserver.js +0 -62
- package/dist/compatibility/patchNodeValue.js +0 -24
- package/dist/compatibility/whenPolyfillLoaded.js +0 -26
- package/dist/config/AssetsPath.js +0 -17
- package/dist/delegate/CustomResize.js +0 -78
- package/dist/delegate/NativeResize.js +0 -45
- package/dist/features/PropertiesFormatSupport.js +0 -8
- package/dist/features/browsersupport/Edge.js +0 -6
- package/dist/features/browsersupport/IE11.js +0 -43
- package/dist/features/browsersupport/IE11WithWebComponentsPolyfill.js +0 -5
- package/dist/renderer/ifDefined.js +0 -21
- package/dist/renderer/scopeHTML.js +0 -32
- package/dist/resources/bundle.es5.js +0 -225
- package/dist/resources/bundle.es5.js.map +0 -1
- package/dist/resources/bundle.esm.js +0 -129
- package/dist/resources/bundle.esm.js.map +0 -1
- package/dist/test-resources/assets/Themes.js +0 -17
- package/dist/test-resources/elements/Child.js +0 -35
- package/dist/test-resources/elements/Generic.js +0 -84
- package/dist/test-resources/elements/GenericExt.js +0 -26
- package/dist/test-resources/elements/NoShadowDOM.js +0 -13
- package/dist/test-resources/elements/Parent.js +0 -41
- package/dist/test-resources/elements/WithStaticArea.js +0 -76
- package/dist/test-resources/pages/AllTestElements.html +0 -42
- package/dist/test-resources/pages/Configuration.html +0 -20
- package/dist/test-resources/pages/ConfigurationScript.html +0 -36
- package/dist/test-resources/pages/assets/messagebundle_de.properties +0 -1
- package/dist/test-resources/pages/assets/messagebundle_en.properties +0 -1
- package/dist/test-resources/pages/assets/messagebundle_es.properties +0 -1
- package/dist/test-resources/pages/assets/messagebundle_fr.properties +0 -1
- package/dist/test-resources/pages/i18n.html +0 -40
- package/dist/test-resources/specs/ConfigurationChange.spec.js +0 -25
- package/dist/test-resources/specs/ConfigurationScript.spec.js +0 -61
- package/dist/test-resources/specs/ConfigurationURL.spec.js +0 -45
- package/dist/test-resources/specs/CustomTheme.spec.js +0 -25
- package/dist/test-resources/specs/StaticArea.spec.js +0 -34
- package/dist/test-resources/specs/Theming.spec.js +0 -31
- package/dist/test-resources/specs/UI5ElementInvalidation.js +0 -240
- package/dist/test-resources/specs/UI5ElementLifecycle.js +0 -96
- package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +0 -73
- package/dist/test-resources/specs/UI5ElementMetadataExt.js +0 -40
- package/dist/test-resources/specs/UI5ElementPropertyValidation.js +0 -12
- package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +0 -65
- package/dist/test-resources/specs/UI5ElementShadowDOM.js +0 -22
- package/dist/test-resources/specs/UI5ElementSlots.js +0 -34
- package/dist/theming/CSSVarsPonyfill.js +0 -68
- package/dist/theming/adaptCSSForIE.js +0 -95
- package/dist/theming/createComponentStyleTag.js +0 -54
- package/dist/theming/createThemePropertiesStyleTag.js +0 -20
- package/dist/thirdparty/Array.from.js +0 -16
- package/dist/thirdparty/Array.prototype.fill.js +0 -44
- package/dist/thirdparty/Array.prototype.find.js +0 -46
- package/dist/thirdparty/Array.prototype.findIndex.js +0 -46
- package/dist/thirdparty/Array.prototype.includes.js +0 -51
- package/dist/thirdparty/Element.prototype.closest.js +0 -11
- package/dist/thirdparty/Element.prototype.matches.js +0 -6
- package/dist/thirdparty/Map.prototype.keys.js +0 -9
- package/dist/thirdparty/Number.isInteger.js +0 -5
- package/dist/thirdparty/Number.isNaN.js +0 -1
- package/dist/thirdparty/Number.parseFloat.js +0 -1
- package/dist/thirdparty/Number.parseInt.js +0 -1
- package/dist/thirdparty/Object.assign.js +0 -31
- package/dist/thirdparty/Object.entries.js +0 -11
- package/dist/thirdparty/Symbol.js +0 -2
- package/dist/thirdparty/WeakSet.js +0 -27
- package/dist/thirdparty/es6-string-methods.js +0 -182
- package/dist/thirdparty/events-polyfills.js +0 -89
- package/dist/thirdparty/fetch.js +0 -1
- package/dist/thirdparty/template.js +0 -600
- package/dist/thirdparty/webcomponents-sd-ce-pf.js +0 -318
- package/dist/types/CSSSize.js +0 -9
- package/dist/types/PopupState.js +0 -37
- package/dist/util/EffectiveAssetPath.js +0 -27
- package/dist/util/encodeCSS.js +0 -24
- package/dist/util/findNodeOwner.js +0 -35
- package/dist/util/isDescendantOf.js +0 -15
- package/dist/util/isNodeClickable.js +0 -19
- package/dist/util/isNodeHidden.js +0 -9
- package/dist/util/isNodeTabbable.js +0 -28
- package/dist/util/isSlot.js +0 -3
- package/dist/util/parseProperties.js +0 -89
- package/dist/util/setToArray.js +0 -10
- package/dist/webcomponentsjs/LICENSE.md +0 -19
- package/dist/webcomponentsjs/README.md +0 -229
- package/dist/webcomponentsjs/bundles/webcomponents-ce.js +0 -63
- package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -297
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -208
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
- package/dist/webcomponentsjs/bundles/webcomponents-sd.js +0 -166
- package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
- package/dist/webcomponentsjs/custom-elements-es5-adapter.js +0 -15
- package/dist/webcomponentsjs/package.json +0 -46
- package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
- package/dist/webcomponentsjs/webcomponents-bundle.js +0 -298
- package/dist/webcomponentsjs/webcomponents-bundle.js.map +0 -1
- package/dist/webcomponentsjs/webcomponents-loader.js +0 -185
- package/package-scripts.js +0 -47
- package/src/AssetRegistry.js +0 -12
- package/src/CustomElementsRegistry.js +0 -39
- package/src/Device.js +0 -823
- package/src/EventProvider.js +0 -81
- package/src/FeaturesRegistry.js +0 -11
- package/src/FontFace.js +0 -118
- package/src/InitialConfiguration.js +0 -150
- package/src/Keys.js +0 -221
- package/src/RenderQueue.js +0 -66
- package/src/RenderScheduler.js +0 -169
- package/src/SVGIconRegistry.js +0 -73
- package/src/StaticArea.js +0 -31
- package/src/StaticAreaItem.js +0 -108
- package/src/SystemCSSVars.js +0 -31
- package/src/UI5Element.js +0 -1175
- package/src/UI5ElementMetadata.js +0 -280
- package/src/animations/AnimationQueue.js +0 -42
- package/src/animations/animate.js +0 -53
- package/src/animations/config.js +0 -5
- package/src/animations/scroll.js +0 -28
- package/src/animations/slideDown.js +0 -79
- package/src/animations/slideUp.js +0 -71
- package/src/asset-registries/Icons.js +0 -32
- package/src/asset-registries/LocaleData.js +0 -135
- package/src/asset-registries/Themes.js +0 -88
- package/src/asset-registries/i18n.js +0 -110
- package/src/boot.js +0 -34
- package/src/compatibility/DOMObserver.js +0 -62
- package/src/compatibility/patchNodeValue.js +0 -24
- package/src/compatibility/whenPolyfillLoaded.js +0 -26
- package/src/config/AnimationMode.js +0 -23
- package/src/config/AssetsPath.js +0 -17
- package/src/config/CalendarType.js +0 -18
- package/src/config/FormatSettings.js +0 -13
- package/src/config/Language.js +0 -70
- package/src/config/NoConflict.js +0 -51
- package/src/config/RTL.js +0 -31
- package/src/config/Theme.js +0 -28
- package/src/delegate/CustomResize.js +0 -78
- package/src/delegate/ItemNavigation.js +0 -313
- package/src/delegate/NativeResize.js +0 -45
- package/src/delegate/ResizeHandler.js +0 -65
- package/src/delegate/ScrollEnablement.js +0 -182
- package/src/features/OpenUI5Support.js +0 -90
- package/src/features/PropertiesFormatSupport.js +0 -8
- package/src/features/browsersupport/Edge.js +0 -6
- package/src/features/browsersupport/IE11.js +0 -43
- package/src/features/browsersupport/IE11WithWebComponentsPolyfill.js +0 -5
- package/src/getSharedResource.js +0 -30
- package/src/i18nBundle.js +0 -52
- package/src/locale/Locale.js +0 -91
- package/src/locale/RTLAwareRegistry.js +0 -14
- package/src/locale/applyDirection.js +0 -18
- package/src/locale/directionChange.js +0 -32
- package/src/locale/getLocale.js +0 -41
- package/src/locale/languageChange.js +0 -22
- package/src/locale/nextFallbackLocale.js +0 -28
- package/src/locale/normalizeLocale.js +0 -54
- package/src/renderer/LitRenderer.js +0 -31
- package/src/renderer/executeTemplate.js +0 -17
- package/src/renderer/ifDefined.js +0 -21
- package/src/renderer/scopeHTML.js +0 -32
- package/src/theming/CSSVarsPonyfill.js +0 -68
- package/src/theming/CustomStyle.js +0 -40
- package/src/theming/ThemeLoaded.js +0 -22
- package/src/theming/adaptCSSForIE.js +0 -95
- package/src/theming/applyTheme.js +0 -84
- package/src/theming/createComponentStyleTag.js +0 -54
- package/src/theming/createThemePropertiesStyleTag.js +0 -20
- package/src/theming/getConstructableStyle.js +0 -29
- package/src/theming/getEffectiveStyle.js +0 -23
- package/src/theming/getStylesString.js +0 -13
- package/src/theming/getThemeDesignerTheme.js +0 -67
- package/src/thirdparty/Array.from.js +0 -16
- package/src/thirdparty/Array.prototype.fill.js +0 -44
- package/src/thirdparty/Array.prototype.find.js +0 -46
- package/src/thirdparty/Array.prototype.findIndex.js +0 -46
- package/src/thirdparty/Array.prototype.includes.js +0 -51
- package/src/thirdparty/Element.prototype.closest.js +0 -11
- package/src/thirdparty/Element.prototype.matches.js +0 -6
- package/src/thirdparty/Map.prototype.keys.js +0 -9
- package/src/thirdparty/Number.isInteger.js +0 -5
- package/src/thirdparty/Number.isNaN.js +0 -1
- package/src/thirdparty/Number.parseFloat.js +0 -1
- package/src/thirdparty/Number.parseInt.js +0 -1
- package/src/thirdparty/Object.assign.js +0 -31
- package/src/thirdparty/Object.entries.js +0 -11
- package/src/thirdparty/Symbol.js +0 -2
- package/src/thirdparty/WeakSet.js +0 -27
- package/src/thirdparty/_merge.js +0 -32
- package/src/thirdparty/es6-string-methods.js +0 -182
- package/src/thirdparty/events-polyfills.js +0 -89
- package/src/thirdparty/fetch.js +0 -1
- package/src/thirdparty/isPlainObject.js +0 -18
- package/src/thirdparty/merge.js +0 -10
- package/src/thirdparty/template.js +0 -600
- package/src/thirdparty/webcomponents-sd-ce-pf.js +0 -318
- package/src/types/AnimationMode.js +0 -7
- package/src/types/CSSSize.js +0 -9
- package/src/types/CalendarType.js +0 -22
- package/src/types/DataType.js +0 -25
- package/src/types/Float.js +0 -10
- package/src/types/Integer.js +0 -9
- package/src/types/ItemNavigationBehavior.js +0 -16
- package/src/types/NavigationMode.js +0 -7
- package/src/types/PopupState.js +0 -37
- package/src/types/ValueState.js +0 -22
- package/src/util/AriaLabelHelper.js +0 -41
- package/src/util/Caret.js +0 -45
- package/src/util/EffectiveAssetPath.js +0 -27
- package/src/util/FetchHelper.js +0 -31
- package/src/util/FocusableElements.js +0 -73
- package/src/util/StringHelper.js +0 -26
- package/src/util/TabbableElements.js +0 -47
- package/src/util/arraysAreEqual.js +0 -15
- package/src/util/createStyleInHead.js +0 -18
- package/src/util/detectNavigatorLanguage.js +0 -13
- package/src/util/encodeCSS.js +0 -24
- package/src/util/findNodeOwner.js +0 -35
- package/src/util/formatMessage.js +0 -23
- package/src/util/getActiveElement.js +0 -11
- package/src/util/getDesigntimePropertyAsArray.js +0 -4
- package/src/util/getSingletonElementInstance.js +0 -13
- package/src/util/isDescendantOf.js +0 -15
- package/src/util/isNodeClickable.js +0 -19
- package/src/util/isNodeHidden.js +0 -9
- package/src/util/isNodeTabbable.js +0 -28
- package/src/util/isSlot.js +0 -3
- package/src/util/isValidPropertyName.js +0 -29
- package/src/util/parseProperties.js +0 -89
- package/src/util/setToArray.js +0 -10
- package/src/util/whenDOMReady.js +0 -13
- /package/{config/.eslintrc.js → .eslintrc.cjs} +0 -0
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { DEFAULT_LOCALE } from "../generated/AssetParameters.js";
|
|
2
|
-
|
|
3
|
-
const localeRegEX = /^((?:[A-Z]{2,3}(?:-[A-Z]{3}){0,3})|[A-Z]{4}|[A-Z]{5,8})(?:-([A-Z]{4}))?(?:-([A-Z]{2}|[0-9]{3}))?((?:-[0-9A-Z]{5,8}|-[0-9][0-9A-Z]{3})*)((?:-[0-9A-WYZ](?:-[0-9A-Z]{2,8})+)*)(?:-(X(?:-[0-9A-Z]{1,8})+))?$/i;
|
|
4
|
-
const SAPSupportabilityLocales = /(?:^|-)(saptrc|sappsd)(?:-|$)/i;
|
|
5
|
-
|
|
6
|
-
/* Map for old language names for a few ISO639 codes. */
|
|
7
|
-
const M_ISO639_NEW_TO_OLD = {
|
|
8
|
-
"he": "iw",
|
|
9
|
-
"yi": "ji",
|
|
10
|
-
"id": "in",
|
|
11
|
-
"sr": "sh",
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Normalizes the given locale in BCP-47 syntax.
|
|
16
|
-
* @param {string} locale locale to normalize
|
|
17
|
-
* @returns {string} Normalized locale, "undefined" if the locale can't be normalized or the default locale, if no locale provided.
|
|
18
|
-
*/
|
|
19
|
-
const normalizeLocale = locale => {
|
|
20
|
-
let m;
|
|
21
|
-
|
|
22
|
-
if (!locale) {
|
|
23
|
-
return DEFAULT_LOCALE;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
if (typeof locale === "string" && (m = localeRegEX.exec(locale.replace(/_/g, "-")))) {/* eslint-disable-line */
|
|
27
|
-
let language = m[1].toLowerCase();
|
|
28
|
-
let region = m[3] ? m[3].toUpperCase() : undefined;
|
|
29
|
-
const script = m[2] ? m[2].toLowerCase() : undefined;
|
|
30
|
-
const variants = m[4] ? m[4].slice(1) : undefined;
|
|
31
|
-
const isPrivate = m[6];
|
|
32
|
-
|
|
33
|
-
language = M_ISO639_NEW_TO_OLD[language] || language;
|
|
34
|
-
|
|
35
|
-
// recognize and convert special SAP supportability locales (overwrites m[]!)
|
|
36
|
-
if ((isPrivate && (m = SAPSupportabilityLocales.exec(isPrivate))) /* eslint-disable-line */ ||
|
|
37
|
-
(variants && (m = SAPSupportabilityLocales.exec(variants)))) {/* eslint-disable-line */
|
|
38
|
-
return `en_US_${m[1].toLowerCase()}`; // for now enforce en_US (agreed with SAP SLS)
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
// Chinese: when no region but a script is specified, use default region for each script
|
|
42
|
-
if (language === "zh" && !region) {
|
|
43
|
-
if (script === "hans") {
|
|
44
|
-
region = "CN";
|
|
45
|
-
} else if (script === "hant") {
|
|
46
|
-
region = "TW";
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return language + (region ? "_" + region + (variants ? "_" + variants.replace("-", "_") : "") : ""); /* eslint-disable-line */
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
export default normalizeLocale;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { html, svg, render } from "lit-html/lit-html.js";
|
|
2
|
-
import scopeHTML from "./scopeHTML.js";
|
|
3
|
-
|
|
4
|
-
let tags;
|
|
5
|
-
let suffix;
|
|
6
|
-
|
|
7
|
-
const setTags = t => {
|
|
8
|
-
tags = t;
|
|
9
|
-
};
|
|
10
|
-
const setSuffix = s => {
|
|
11
|
-
suffix = s;
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
const litRender = (templateResult, domNode, styles, { eventContext } = {}) => {
|
|
15
|
-
if (styles) {
|
|
16
|
-
templateResult = html`<style>${styles}</style>${templateResult}`;
|
|
17
|
-
}
|
|
18
|
-
render(templateResult, domNode, { eventContext });
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
const scopedHtml = (strings, ...values) => html(scopeHTML(strings, tags, suffix), ...values);
|
|
22
|
-
const scopedSvg = (strings, ...values) => svg(scopeHTML(strings, tags, suffix), ...values);
|
|
23
|
-
|
|
24
|
-
export { setTags, setSuffix };
|
|
25
|
-
export { scopedHtml as html, scopedSvg as svg };
|
|
26
|
-
export { repeat } from "lit-html/directives/repeat.js";
|
|
27
|
-
export { classMap } from "lit-html/directives/class-map.js";
|
|
28
|
-
export { styleMap } from "lit-html/directives/style-map.js";
|
|
29
|
-
export { unsafeHTML } from "lit-html/directives/unsafe-html.js";
|
|
30
|
-
|
|
31
|
-
export default litRender;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { getCustomElementsScopingSuffix, shouldScopeCustomElement } from "../CustomElementsScope.js";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Runs a component's template with the component's current state, while also scoping HTML
|
|
5
|
-
*
|
|
6
|
-
* @param template - the template to execute
|
|
7
|
-
* @param component - the component
|
|
8
|
-
* @public
|
|
9
|
-
* @returns {*}
|
|
10
|
-
*/
|
|
11
|
-
const executeTemplate = (template, component) => {
|
|
12
|
-
const tagsToScope = component.constructor.getUniqueDependencies().map(dep => dep.getMetadata().getPureTag()).filter(shouldScopeCustomElement);
|
|
13
|
-
const scope = getCustomElementsScopingSuffix();
|
|
14
|
-
return template(component, tagsToScope, scope);
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
export default executeTemplate;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
AttributePart,
|
|
3
|
-
directive,
|
|
4
|
-
noChange,
|
|
5
|
-
} from "lit-html/lit-html.js";
|
|
6
|
-
|
|
7
|
-
/*
|
|
8
|
-
lit-html directive that removes and attribute if it is undefined
|
|
9
|
-
*/
|
|
10
|
-
export default directive(value => part => {
|
|
11
|
-
if ((value === undefined) && part instanceof AttributePart) {
|
|
12
|
-
if (value !== part.value) {
|
|
13
|
-
const name = part.committer.name;
|
|
14
|
-
part.committer.element.removeAttribute(name);
|
|
15
|
-
}
|
|
16
|
-
} else if (part.committer && part.committer.element && part.committer.element.getAttribute(part.committer.name) === value) {
|
|
17
|
-
part.setValue(noChange);
|
|
18
|
-
} else {
|
|
19
|
-
part.setValue(value);
|
|
20
|
-
}
|
|
21
|
-
});
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
const cache = new Map();
|
|
2
|
-
|
|
3
|
-
const scopeHTML = (strings, tags, suffix) => {
|
|
4
|
-
if (suffix && tags && tags.length) {
|
|
5
|
-
strings = strings.map(string => {
|
|
6
|
-
if (cache.has(string)) {
|
|
7
|
-
return cache.get(string);
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
/*
|
|
11
|
-
const allTags = [...string.matchAll(/<(ui5-.*?)[> ]/g)].map(x => x[1]);
|
|
12
|
-
allTags.forEach(t => {
|
|
13
|
-
if (!tags.includes(t)) {
|
|
14
|
-
throw new Error(`${t} not found in ${string}`);
|
|
15
|
-
// console.log(t, " in ", string);
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
let result = string;
|
|
21
|
-
tags.forEach(tag => {
|
|
22
|
-
result = result.replace(new RegExp(`(</?)(${tag})(/?[> \t\n])`, "g"), `$1$2-${suffix}$3`);
|
|
23
|
-
});
|
|
24
|
-
cache.set(string, result);
|
|
25
|
-
return result;
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
return strings;
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
export default scopeHTML;
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
let ponyfillTimer;
|
|
2
|
-
|
|
3
|
-
const ponyfillNeeded = () => !!window.CSSVarsPonyfill;
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Removes the "data-cssvars-group" attribute for all element styles and their respective out nodes.
|
|
7
|
-
* CSSVarsPonyfill has internal counters for "group" and "job" and running several instances of the ponyfill may lead to issues, since these counters are not shared
|
|
8
|
-
* Therefore we remove them for our "data-ui5-element-styles"
|
|
9
|
-
*
|
|
10
|
-
* @param rootElement
|
|
11
|
-
*/
|
|
12
|
-
const cleanPonyfillMetadata = (rootElement = document.head) => {
|
|
13
|
-
rootElement.querySelectorAll(`style[data-ui5-element-styles][data-cssvars="src"]`).forEach(tag => {
|
|
14
|
-
const group = tag.getAttribute("data-cssvars-group");
|
|
15
|
-
tag.removeAttribute("data-cssvars-group");
|
|
16
|
-
tag.disabled = false;
|
|
17
|
-
const outNode = rootElement.querySelector(`style[data-cssvars="out"][data-cssvars-group="${group}"]`);
|
|
18
|
-
if (outNode) {
|
|
19
|
-
outNode.removeAttribute("data-cssvars-group");
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
const runPonyfill = () => {
|
|
25
|
-
ponyfillTimer = undefined;
|
|
26
|
-
|
|
27
|
-
cleanPonyfillMetadata();
|
|
28
|
-
window.CSSVarsPonyfill.cssVars({
|
|
29
|
-
rootElement: document.head,
|
|
30
|
-
variables: isCompact() ? getCompactModeVars() : {},
|
|
31
|
-
silent: true,
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
const schedulePonyfill = () => {
|
|
36
|
-
if (!ponyfillTimer) {
|
|
37
|
-
ponyfillTimer = window.setTimeout(runPonyfill, 0);
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
const isCompact = () => {
|
|
42
|
-
const b = document.body;
|
|
43
|
-
return b.hasAttribute("data-ui5-compact-size") || b.classList.contains("ui5-content-density-compact") || b.classList.contains("sapUiSizeCompact");
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
const getCompactModeVars = () => {
|
|
47
|
-
const compactVars = {};
|
|
48
|
-
[...document.querySelectorAll(`[data-ui5-theme-properties]`)].forEach(el => {
|
|
49
|
-
const cssContent = el.textContent.replace("\n", "");
|
|
50
|
-
let match;
|
|
51
|
-
const regExp = new RegExp("data-ui5-compact-size[^{]*{(.*?)}", "g");
|
|
52
|
-
while ((match = regExp.exec(cssContent)) !== null) { // eslint-disable-line
|
|
53
|
-
const compactCSS = match[1];
|
|
54
|
-
compactCSS.split(";").forEach(declaration => {
|
|
55
|
-
const pair = declaration.split(":");
|
|
56
|
-
compactVars[pair[0].trim()] = pair[1].trim();
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
return compactVars;
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
export {
|
|
65
|
-
ponyfillNeeded,
|
|
66
|
-
runPonyfill,
|
|
67
|
-
schedulePonyfill,
|
|
68
|
-
};
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import RenderScheduler from "../RenderScheduler.js";
|
|
2
|
-
import EventProvider from "../EventProvider.js";
|
|
3
|
-
|
|
4
|
-
const eventProvider = new EventProvider();
|
|
5
|
-
const CUSTOM_CSS_CHANGE = "CustomCSSChange";
|
|
6
|
-
|
|
7
|
-
const attachCustomCSSChange = listener => {
|
|
8
|
-
eventProvider.attachEvent(CUSTOM_CSS_CHANGE, listener);
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
const detachCustomCSSChange = listener => {
|
|
12
|
-
eventProvider.detachEvent(CUSTOM_CSS_CHANGE, listener);
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
const fireCustomCSSChange = tag => {
|
|
16
|
-
return eventProvider.fireEvent(CUSTOM_CSS_CHANGE, tag);
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
const customCSSFor = {};
|
|
20
|
-
|
|
21
|
-
const addCustomCSS = (tag, css) => {
|
|
22
|
-
if (!customCSSFor[tag]) {
|
|
23
|
-
customCSSFor[tag] = [];
|
|
24
|
-
}
|
|
25
|
-
customCSSFor[tag].push(css);
|
|
26
|
-
fireCustomCSSChange(tag);
|
|
27
|
-
|
|
28
|
-
RenderScheduler.reRenderAllUI5Elements({ tag });
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
const getCustomCSS = tag => {
|
|
32
|
-
return customCSSFor[tag] ? customCSSFor[tag].join("") : "";
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
export {
|
|
36
|
-
addCustomCSS,
|
|
37
|
-
getCustomCSS,
|
|
38
|
-
attachCustomCSSChange,
|
|
39
|
-
detachCustomCSSChange,
|
|
40
|
-
};
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import EventProvider from "../EventProvider.js";
|
|
2
|
-
|
|
3
|
-
const eventProvider = new EventProvider();
|
|
4
|
-
const THEME_LOADED = "themeLoaded";
|
|
5
|
-
|
|
6
|
-
const attachThemeLoaded = listener => {
|
|
7
|
-
eventProvider.attachEvent(THEME_LOADED, listener);
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
const detachThemeLoaded = listener => {
|
|
11
|
-
eventProvider.detachEvent(THEME_LOADED, listener);
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
const fireThemeLoaded = theme => {
|
|
15
|
-
return eventProvider.fireEvent(THEME_LOADED, theme);
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
export {
|
|
19
|
-
attachThemeLoaded,
|
|
20
|
-
detachThemeLoaded,
|
|
21
|
-
fireThemeLoaded,
|
|
22
|
-
};
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
const findClosingParenthesisPos = (str, openingParenthesisPos) => {
|
|
2
|
-
let opened = 1;
|
|
3
|
-
for (let pos = openingParenthesisPos + 1; pos < str.length; pos++) {
|
|
4
|
-
const char = str.charAt(pos);
|
|
5
|
-
if (char === "(") {
|
|
6
|
-
opened++;
|
|
7
|
-
} else if (char === ")") {
|
|
8
|
-
opened--;
|
|
9
|
-
}
|
|
10
|
-
if (opened === 0) {
|
|
11
|
-
return pos;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
const replaceSelector = (str, selector, selectorStartPos, replacement) => {
|
|
17
|
-
const charAfterSelectorPos = selectorStartPos + selector.length;
|
|
18
|
-
const charAfterSelector = str.charAt(charAfterSelectorPos);
|
|
19
|
-
|
|
20
|
-
const upToSelector = str.substring(0, selectorStartPos) + replacement;
|
|
21
|
-
if (charAfterSelector === "(") {
|
|
22
|
-
const closingParenthesisPos = findClosingParenthesisPos(str, charAfterSelectorPos);
|
|
23
|
-
return upToSelector + str.substring(charAfterSelectorPos + 1, closingParenthesisPos) + str.substring(closingParenthesisPos + 1);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
return upToSelector + str.substring(charAfterSelectorPos);
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* :host => ui5-button
|
|
31
|
-
* :host([expr]) => ui5-button[expr]
|
|
32
|
-
* ::slotted(expr) => expr
|
|
33
|
-
* @param str - source string
|
|
34
|
-
* @param selector - :host or ::slotted
|
|
35
|
-
* @param replacement - normally tag name
|
|
36
|
-
* @returns {*}
|
|
37
|
-
*/
|
|
38
|
-
const replaceSelectors = (str, selector, replacement) => {
|
|
39
|
-
let selectorStartPos = str.indexOf(selector);
|
|
40
|
-
while (selectorStartPos !== -1) {
|
|
41
|
-
str = replaceSelector(str, selector, selectorStartPos, replacement);
|
|
42
|
-
selectorStartPos = str.indexOf(selector);
|
|
43
|
-
}
|
|
44
|
-
return str;
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
const adaptLinePart = (line, tag, pureTag) => {
|
|
48
|
-
line = line.trim();
|
|
49
|
-
line = replaceSelectors(line, "::slotted", ``); // first remove all ::slotted() occurrences
|
|
50
|
-
|
|
51
|
-
// Host selector - replace it
|
|
52
|
-
if (line.startsWith(":host")) {
|
|
53
|
-
return replaceSelector(line, ":host", 0, tag);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
// Leave out @keyframes and keyframe values (0%, 100%, etc...)
|
|
57
|
-
// csso shortens '100%' -> 'to', make sure to leave it untouched
|
|
58
|
-
if (line.match(/^[@0-9]/) || line === "to" || line === "to{") {
|
|
59
|
-
return line;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
// IE specific selector (directly written with the tag, f.e. ui5-button {}) - keep it
|
|
63
|
-
if (line.match(new RegExp(`^${tag}[^a-zA-Z0-9-]`))) {
|
|
64
|
-
return line;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
// IE specific selector (directly written with the tag attribute, f.e. [ui5-button] {}) - keep it
|
|
68
|
-
if (pureTag && line.startsWith(`[${pureTag}]`)) {
|
|
69
|
-
return line;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
// No host and no tag in the beginning of the selector - prepend the tag
|
|
73
|
-
return `${tag} ${line}`;
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
const adaptCSSForIE = (str, tag, pureTag) => {
|
|
77
|
-
str = str.replace(/\n/g, ` `);
|
|
78
|
-
str = str.replace(/([{}])/g, `$1\n`);
|
|
79
|
-
let result = ``;
|
|
80
|
-
const lines = str.split(`\n`);
|
|
81
|
-
lines.forEach(line => {
|
|
82
|
-
const mustProcess = line.match(/{$/); // Only work on lines that end on {, otherwise just append to result
|
|
83
|
-
if (mustProcess) {
|
|
84
|
-
const lineParts = line.split(",");
|
|
85
|
-
const processedLineParts = lineParts.map(linePart => {
|
|
86
|
-
return adaptLinePart(linePart, tag, pureTag);
|
|
87
|
-
});
|
|
88
|
-
line = processedLineParts.join(",");
|
|
89
|
-
}
|
|
90
|
-
result = `${result}${line}`;
|
|
91
|
-
});
|
|
92
|
-
return result;
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
export default adaptCSSForIE;
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { getThemeProperties, getRegisteredPackages, isThemeRegistered } from "../asset-registries/Themes.js";
|
|
2
|
-
import createThemePropertiesStyleTag from "./createThemePropertiesStyleTag.js";
|
|
3
|
-
import getThemeDesignerTheme from "./getThemeDesignerTheme.js";
|
|
4
|
-
import { ponyfillNeeded, runPonyfill } from "./CSSVarsPonyfill.js";
|
|
5
|
-
import { fireThemeLoaded } from "./ThemeLoaded.js";
|
|
6
|
-
import { getFeature } from "../FeaturesRegistry.js";
|
|
7
|
-
|
|
8
|
-
const BASE_THEME_PACKAGE = "@ui5/webcomponents-theme-base";
|
|
9
|
-
|
|
10
|
-
const isThemeBaseRegistered = () => {
|
|
11
|
-
const registeredPackages = getRegisteredPackages();
|
|
12
|
-
return registeredPackages.has(BASE_THEME_PACKAGE);
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
const loadThemeBase = async theme => {
|
|
16
|
-
if (!isThemeBaseRegistered()) {
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
const cssText = await getThemeProperties(BASE_THEME_PACKAGE, theme);
|
|
21
|
-
createThemePropertiesStyleTag(cssText, BASE_THEME_PACKAGE);
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
const deleteThemeBase = () => {
|
|
25
|
-
const styleElement = document.head.querySelector(`style[data-ui5-theme-properties="${BASE_THEME_PACKAGE}"]`);
|
|
26
|
-
if (styleElement) {
|
|
27
|
-
styleElement.parentElement.removeChild(styleElement);
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
const loadComponentPackages = async theme => {
|
|
32
|
-
const registeredPackages = getRegisteredPackages();
|
|
33
|
-
registeredPackages.forEach(async packageName => {
|
|
34
|
-
if (packageName === BASE_THEME_PACKAGE) {
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
const cssText = await getThemeProperties(packageName, theme);
|
|
39
|
-
createThemePropertiesStyleTag(cssText, packageName);
|
|
40
|
-
});
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
const detectExternalTheme = () => {
|
|
44
|
-
// If theme designer theme is detected, use this
|
|
45
|
-
const extTheme = getThemeDesignerTheme();
|
|
46
|
-
if (extTheme) {
|
|
47
|
-
return extTheme;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// If OpenUI5Support is enabled, try to find out if it loaded variables
|
|
51
|
-
const OpenUI5Support = getFeature("OpenUI5Support");
|
|
52
|
-
if (OpenUI5Support) {
|
|
53
|
-
const varsLoaded = OpenUI5Support.cssVariablesLoaded();
|
|
54
|
-
if (varsLoaded) {
|
|
55
|
-
return {
|
|
56
|
-
themeName: OpenUI5Support.getConfigurationSettingsObject().theme, // just themeName, baseThemeName is only relevant for custom themes
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
const applyTheme = async theme => {
|
|
63
|
-
const extTheme = detectExternalTheme();
|
|
64
|
-
|
|
65
|
-
// Only load theme_base properties if there is no externally loaded theme, or there is, but it is not being loaded
|
|
66
|
-
if (!extTheme || theme !== extTheme.themeName) {
|
|
67
|
-
await loadThemeBase(theme);
|
|
68
|
-
} else {
|
|
69
|
-
deleteThemeBase();
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
// Always load component packages properties. For non-registered themes, try with the base theme, if any
|
|
73
|
-
const packagesTheme = isThemeRegistered(theme) ? theme : extTheme && extTheme.baseThemeName;
|
|
74
|
-
await loadComponentPackages(packagesTheme);
|
|
75
|
-
|
|
76
|
-
// When changing the theme, run the ponyfill immediately
|
|
77
|
-
if (ponyfillNeeded()) {
|
|
78
|
-
runPonyfill();
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
fireThemeLoaded(theme);
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
export default applyTheme;
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import createStyleInHead from "../util/createStyleInHead.js";
|
|
2
|
-
import getEffectiveStyle from "./getEffectiveStyle.js";
|
|
3
|
-
import adaptCSSForIE from "./adaptCSSForIE.js";
|
|
4
|
-
import { ponyfillNeeded, schedulePonyfill } from "./CSSVarsPonyfill.js";
|
|
5
|
-
import { attachCustomCSSChange } from "./CustomStyle.js";
|
|
6
|
-
|
|
7
|
-
const IEStyleSet = new Set();
|
|
8
|
-
|
|
9
|
-
attachCustomCSSChange(tag => {
|
|
10
|
-
IEStyleSet.delete(tag);
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
const getStaticStyle = ElementClass => {
|
|
14
|
-
let componentStaticStyles = ElementClass.staticAreaStyles;
|
|
15
|
-
if (Array.isArray(componentStaticStyles)) {
|
|
16
|
-
componentStaticStyles = componentStaticStyles.join(" ");
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
return componentStaticStyles;
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Creates the needed CSS for a web component class in the head tag
|
|
24
|
-
* Note: IE11, Edge
|
|
25
|
-
* @param ElementClass
|
|
26
|
-
*/
|
|
27
|
-
const createComponentStyleTag = ElementClass => {
|
|
28
|
-
const tag = ElementClass.getMetadata().getTag();
|
|
29
|
-
const pureTag = ElementClass.getMetadata().getPureTag();
|
|
30
|
-
if (IEStyleSet.has(tag)) {
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
let cssContent = getEffectiveStyle(ElementClass);
|
|
35
|
-
cssContent = adaptCSSForIE(cssContent, tag, pureTag);
|
|
36
|
-
|
|
37
|
-
// Append static CSS, if any, for IE
|
|
38
|
-
let staticCssContent = getStaticStyle(ElementClass);
|
|
39
|
-
if (staticCssContent) {
|
|
40
|
-
staticCssContent = adaptCSSForIE(staticCssContent, "ui5-static-area-item");
|
|
41
|
-
cssContent = `${cssContent} ${staticCssContent}`;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
createStyleInHead(cssContent, {
|
|
45
|
-
"data-ui5-element-styles": tag,
|
|
46
|
-
});
|
|
47
|
-
if (ponyfillNeeded()) {
|
|
48
|
-
schedulePonyfill();
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
IEStyleSet.add(tag);
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
export default createComponentStyleTag;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import createStyleInHead from "../util/createStyleInHead.js";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Creates/updates a style element holding all CSS Custom Properties
|
|
5
|
-
* @param cssText
|
|
6
|
-
* @param packageName
|
|
7
|
-
*/
|
|
8
|
-
const createThemePropertiesStyleTag = (cssText, packageName) => {
|
|
9
|
-
const styleElement = document.head.querySelector(`style[data-ui5-theme-properties="${packageName}"]`);
|
|
10
|
-
if (styleElement) {
|
|
11
|
-
styleElement.textContent = cssText || ""; // in case of undefined
|
|
12
|
-
} else {
|
|
13
|
-
const attributes = {
|
|
14
|
-
"data-ui5-theme-properties": packageName,
|
|
15
|
-
};
|
|
16
|
-
createStyleInHead(cssText, attributes);
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
export default createThemePropertiesStyleTag;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import getEffectiveStyle from "./getEffectiveStyle.js";
|
|
2
|
-
import { attachCustomCSSChange } from "./CustomStyle.js";
|
|
3
|
-
|
|
4
|
-
const constructableStyleMap = new Map();
|
|
5
|
-
|
|
6
|
-
attachCustomCSSChange(tag => {
|
|
7
|
-
constructableStyleMap.delete(tag);
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Returns (and caches) a constructable style sheet for a web component class
|
|
12
|
-
* Note: Chrome
|
|
13
|
-
* @param ElementClass
|
|
14
|
-
* @returns {*}
|
|
15
|
-
*/
|
|
16
|
-
const getConstructableStyle = ElementClass => {
|
|
17
|
-
const tag = ElementClass.getMetadata().getTag();
|
|
18
|
-
|
|
19
|
-
if (!constructableStyleMap.has(tag)) {
|
|
20
|
-
const styleContent = getEffectiveStyle(ElementClass);
|
|
21
|
-
const style = new CSSStyleSheet();
|
|
22
|
-
style.replaceSync(styleContent);
|
|
23
|
-
constructableStyleMap.set(tag, [style]);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
return constructableStyleMap.get(tag);
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
export default getConstructableStyle;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { getCustomCSS, attachCustomCSSChange } from "./CustomStyle.js";
|
|
2
|
-
import getStylesString from "./getStylesString.js";
|
|
3
|
-
|
|
4
|
-
const effectiveStyleMap = new Map();
|
|
5
|
-
|
|
6
|
-
attachCustomCSSChange(tag => {
|
|
7
|
-
effectiveStyleMap.delete(tag);
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
const getEffectiveStyle = ElementClass => {
|
|
11
|
-
const tag = ElementClass.getMetadata().getTag();
|
|
12
|
-
|
|
13
|
-
if (!effectiveStyleMap.has(tag)) {
|
|
14
|
-
const customStyle = getCustomCSS(tag) || "";
|
|
15
|
-
const builtInStyles = getStylesString(ElementClass.styles);
|
|
16
|
-
const effectiveStyle = `${builtInStyles} ${customStyle}`;
|
|
17
|
-
effectiveStyleMap.set(tag, effectiveStyle);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
return effectiveStyleMap.get(tag);
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
export default getEffectiveStyle;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
const getStylesString = styles => {
|
|
2
|
-
if (Array.isArray(styles)) {
|
|
3
|
-
return flatten(styles).join(" ");
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
return styles;
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
const flatten = arr => {
|
|
10
|
-
return arr.reduce((acc, val) => acc.concat(Array.isArray(val) ? flatten(val) : val), []);
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
export default getStylesString;
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
const getThemeMetadata = () => {
|
|
2
|
-
// Check if the class was already applied, most commonly to the link/style tag with the CSS Variables
|
|
3
|
-
let el = document.querySelector(".sapThemeMetaData-Base-baseLib");
|
|
4
|
-
if (el) {
|
|
5
|
-
return getComputedStyle(el).backgroundImage;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
el = document.createElement("span");
|
|
9
|
-
el.style.display = "none";
|
|
10
|
-
el.classList.add("sapThemeMetaData-Base-baseLib");
|
|
11
|
-
document.body.appendChild(el);
|
|
12
|
-
const metadata = getComputedStyle(el).backgroundImage;
|
|
13
|
-
document.body.removeChild(el);
|
|
14
|
-
|
|
15
|
-
return metadata;
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
const parseThemeMetadata = metadataString => {
|
|
19
|
-
const params = /\(["']?data:text\/plain;utf-8,(.*?)['"]?\)$/i.exec(metadataString);
|
|
20
|
-
if (params && params.length >= 2) {
|
|
21
|
-
let paramsString = params[1];
|
|
22
|
-
paramsString = paramsString.replace(/\\"/g, `"`);
|
|
23
|
-
if (paramsString.charAt(0) !== "{" && paramsString.charAt(paramsString.length - 1) !== "}") {
|
|
24
|
-
try {
|
|
25
|
-
paramsString = decodeURIComponent(paramsString);
|
|
26
|
-
} catch (ex) {
|
|
27
|
-
console.warn("Malformed theme metadata string, unable to decodeURIComponent"); // eslint-disable-line
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
try {
|
|
32
|
-
return JSON.parse(paramsString);
|
|
33
|
-
} catch (ex) {
|
|
34
|
-
console.warn("Malformed theme metadata string, unable to parse JSON"); // eslint-disable-line
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
const processThemeMetadata = metadata => {
|
|
40
|
-
let themeName;
|
|
41
|
-
let baseThemeName;
|
|
42
|
-
|
|
43
|
-
try {
|
|
44
|
-
themeName = metadata.Path.match(/\.([^.]+)\.css_variables$/)[1];
|
|
45
|
-
baseThemeName = metadata.Extends[0];
|
|
46
|
-
} catch (ex) {
|
|
47
|
-
console.warn("Malformed theme metadata Object", metadata); // eslint-disable-line
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
return {
|
|
52
|
-
themeName,
|
|
53
|
-
baseThemeName,
|
|
54
|
-
};
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
const getThemeDesignerTheme = () => {
|
|
58
|
-
const metadataString = getThemeMetadata();
|
|
59
|
-
if (!metadataString || metadataString === "none") {
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
const metadata = parseThemeMetadata(metadataString);
|
|
64
|
-
return processThemeMetadata(metadata);
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
export default getThemeDesignerTheme;
|