@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
35 lines (34 loc) • 1.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getPreviousSibling = void 0;
require("core-js/modules/es.string.replace.js");
var _helpers = require("../helpers");
const getPreviousSibling = (selector, element) => {
try {
const tagName = /[A-Z]/.test(selector) ? selector : null;
const className = tagName ? null : selector.replace(/^\./, '');
const contains = element => {
if (!element) {
return null;
}
if (tagName) {
return (element === null || element === void 0 ? void 0 : element.tagName) === tagName;
}
return element === null || element === void 0 ? void 0 : element.classList.contains(className);
};
if (contains(element)) {
return element;
}
while ((element = (_element = element) === null || _element === void 0 ? void 0 : _element.parentElement) && !contains(element)) {
var _element;
;
}
} catch (e) {
(0, _helpers.warn)(e);
}
return element;
};
exports.getPreviousSibling = getPreviousSibling;
//# sourceMappingURL=getPreviousSibling.js.map