File size: 888 Bytes
04ec17f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | export function findNextSibling(el, selector) {
let sibling = el.nextElementSibling;
while (sibling) {
if (sibling.matches(selector))
return sibling;
sibling = sibling.nextElementSibling;
}
}
export function findPreviousSibling(el, selector) {
let sibling = el.previousElementSibling;
while (sibling) {
if (sibling.matches(selector))
return sibling;
sibling = sibling.previousElementSibling;
}
}
export function findFirstStartMarkerWithImmediateSiblingAsEnd(el, type) {
const startMarkers = el.querySelectorAll(`[data-bits-command-${type}-start]`);
for (const startMarker of startMarkers) {
const endMarker = startMarker.nextElementSibling;
if (endMarker && endMarker.hasAttribute(`data-bits-command-${type}-end`)) {
return startMarker;
}
}
return null;
}
|