diff --git a/packages/base/src/util/isDefaultSlotProvided.js b/packages/base/src/util/isDefaultSlotProvided.js new file mode 100644 index 000000000000..c9df3e67914d --- /dev/null +++ b/packages/base/src/util/isDefaultSlotProvided.js @@ -0,0 +1,8 @@ +const isDefaultSlotProvided = element => { + return Array.from(element.childNodes).filter(node => { + return node.nodeType !== Node.COMMENT_NODE + && (node.nodeType !== Node.TEXT_NODE || node.nodeValue.trim().length !== 0); + }).length; +}; + +export default isDefaultSlotProvided; diff --git a/packages/main/src/Badge.js b/packages/main/src/Badge.js index 02f0d39d9e77..3625f2c90794 100644 --- a/packages/main/src/Badge.js +++ b/packages/main/src/Badge.js @@ -1,6 +1,7 @@ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js"; import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js"; import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js"; +import isDefaultSlotProvided from "@ui5/webcomponents-base/dist/util/isDefaultSlotProvided.js"; // Template import BadgeTemplate from "./generated/templates/BadgeTemplate.lit.js"; @@ -144,7 +145,7 @@ class Badge extends UI5Element { } get hasText() { - return !!this.textContent.trim().length; + return isDefaultSlotProvided(this); } get hasIcon() { diff --git a/packages/main/src/Button.js b/packages/main/src/Button.js index 5589c42bbba2..6e25658b96c0 100644 --- a/packages/main/src/Button.js +++ b/packages/main/src/Button.js @@ -10,6 +10,7 @@ import { isCombi, isSafari, } from "@ui5/webcomponents-base/dist/Device.js"; +import isDefaultSlotProvided from "@ui5/webcomponents-base/dist/util/isDefaultSlotProvided.js"; import ButtonDesign from "./types/ButtonDesign.js"; import ButtonTemplate from "./generated/templates/ButtonTemplate.lit.js"; import Icon from "./Icon.js"; @@ -421,10 +422,7 @@ class Button extends UI5Element { } get isIconOnly() { - return !Array.from(this.childNodes).filter(node => { - return node.nodeType !== Node.COMMENT_NODE - && (node.nodeType !== Node.TEXT_NODE || node.nodeValue.trim().length !== 0); - }).length; + return !isDefaultSlotProvided(this); } get accInfo() {