@kelvininc/ui-components
Version:
Kelvin UI Components
29 lines (26 loc) • 1.18 kB
JavaScript
import { i as isNil, D as DEFAULT_CONFIG } from './p-BEvgYojK.js';
const getConfig = () => {
if (typeof window !== 'undefined') {
const KvUiComponents = window.KvUiComponents;
if (!isNil(KvUiComponents) && !isNil(KvUiComponents.config)) {
return KvUiComponents.config;
}
}
return DEFAULT_CONFIG;
};
const getCollapsedElement = (elements) => {
var _a;
if (elements.length === 0) {
return;
}
const [firstElement, ...siblings] = elements;
if (isOverflowEllipsis(firstElement)) {
return firstElement;
}
return (_a = getCollapsedElement(Array.from(firstElement.childNodes))) !== null && _a !== void 0 ? _a : getCollapsedElement(siblings);
};
const isOverflowEllipsis = (element) => !isNodeText(element) && !isNodeComment(element) && getCssStyle(element, 'text-overflow') === 'ellipsis';
const isNodeText = (element) => element.nodeName === '#text';
const isNodeComment = (element) => element.nodeName === '#comment';
const getCssStyle = (element, prop) => window.getComputedStyle(element, null).getPropertyValue(prop);
export { getCollapsedElement as a, getCssStyle as b, getConfig as g };