@kelvininc/ui-components
Version:
Kelvin UI Components
34 lines (30 loc) • 1.28 kB
JavaScript
;
var config = require('./config-dyyw7PBD.js');
var isNil = require('./isNil-B-fGcnNC.js');
const getConfig = () => {
if (typeof window !== 'undefined') {
const KvUiComponents = window.KvUiComponents;
if (!isNil.isNil(KvUiComponents) && !isNil.isNil(KvUiComponents.config)) {
return KvUiComponents.config;
}
}
return config.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);
exports.getCollapsedElement = getCollapsedElement;
exports.getConfig = getConfig;
exports.getCssStyle = getCssStyle;