diff --git a/packages/base/src/StaticAreaItem.js b/packages/base/src/StaticAreaItem.js index 2c5d340c031f..3b8da5a03c64 100644 --- a/packages/base/src/StaticAreaItem.js +++ b/packages/base/src/StaticAreaItem.js @@ -22,7 +22,7 @@ class StaticAreaItem { */ _updateFragment() { const renderResult = this.ui5ElementContext.constructor.staticAreaTemplate(this.ui5ElementContext), - stylesToAdd = this.ui5ElementContext.constructor.staticAreaStyles || false; + stylesToAdd = window.ShadyDOM ? false : this.ui5ElementContext.constructor.staticAreaStyles; if (!this.staticAreaItemDomRef) { // Initial rendering of fragment diff --git a/packages/base/src/UI5Element.js b/packages/base/src/UI5Element.js index d15fd20ad451..8c84e4002ad4 100644 --- a/packages/base/src/UI5Element.js +++ b/packages/base/src/UI5Element.js @@ -820,6 +820,14 @@ class UI5Element extends HTMLElement { return ""; } + /** + * Returns the Static Area CSS for this UI5 Web Component Class + * @protected + */ + static get staticAreaStyles() { + return ""; + } + /** * Registers a UI5 Web Component in the browser window object * @public diff --git a/packages/base/src/theming/createComponentStyleTag.js b/packages/base/src/theming/createComponentStyleTag.js index 30a06cd59e7a..30d1eb400bb9 100644 --- a/packages/base/src/theming/createComponentStyleTag.js +++ b/packages/base/src/theming/createComponentStyleTag.js @@ -5,6 +5,15 @@ import { ponyfillNeeded, schedulePonyfill } from "./CSSVarsPonyfill.js"; const IEStyleSet = new Set(); +const getStaticStyle = ElementClass => { + let componentStaticStyles = ElementClass.staticAreaStyles; + if (Array.isArray(componentStaticStyles)) { + componentStaticStyles = componentStaticStyles.join(" "); + } + + return componentStaticStyles; +}; + /** * Creates the needed CSS for a web component class in the head tag * Note: IE11, Edge @@ -18,6 +27,14 @@ const createComponentStyleTag = ElementClass => { let cssContent = getEffectiveStyle(ElementClass); cssContent = adaptCSSForIE(cssContent, tag); + + // Append static CSS, if any, for IE + let staticCssContent = getStaticStyle(ElementClass); + if (staticCssContent) { + staticCssContent = adaptCSSForIE(staticCssContent, "ui5-static-area-item"); + cssContent = `${cssContent} ${staticCssContent}`; + } + createStyleInHead(cssContent, { "data-ui5-element-styles": tag, "disabled": "disabled",