export
const isElementCollision = (ele, rowCount = 1, cssStyles, removeChild) => {
if
(!ele) {
return
false
;
}
const clonedNode = ele.cloneNode(
true
);
clonedNode.style.overflow =
'visible'
;
clonedNode.style.display =
'inline-block'
;
clonedNode.style.width =
'auto'
;
clonedNode.style.whiteSpace =
'nowrap'
;
clonedNode.style.visibility =
'hidden'
;
if
(cssStyles) {
Object.keys(cssStyles).forEach((item) => {
clonedNode.style[item] = cssStyles[item];
});
}
const containerID =
'collision_node_id'
;
clonedNode.setAttribute(
'id'
, containerID);
let
tmpNode = document.getElementById(containerID);
let
newNode = clonedNode;
if
(tmpNode) {
document.body.replaceChild(clonedNode, tmpNode);
}
else
{
newNode = document.body.appendChild(clonedNode);
}
const differ = newNode.offsetWidth - ele.offsetWidth * rowCount;
if
(removeChild) {
document.body.removeChild(newNode);
}
return
differ > 0;
};