const React = window.React; const {Fragment, useRef, useState} = React; const POSITION_FLAGS = { DISCONNECTED: 0x01, PRECEDING: 0x02, FOLLOWING: 0x04, CONTAINS: 0x08, CONTAINED_BY: 0x10, IMPLEMENTATION_SPECIFIC: 0x20, }; function getPositionDescription(bitmask) { const flags = []; if (bitmask & POSITION_FLAGS.DISCONNECTED) flags.push('DISCONNECTED'); if (bitmask & POSITION_FLAGS.PRECEDING) flags.push('PRECEDING'); if (bitmask & POSITION_FLAGS.FOLLOWING) flags.push('FOLLOWING'); if (bitmask & POSITION_FLAGS.CONTAINS) flags.push('CONTAINS'); if (bitmask & POSITION_FLAGS.CONTAINED_BY) flags.push('CONTAINED_BY'); if (bitmask & POSITION_FLAGS.IMPLEMENTATION_SPECIFIC) flags.push('IMPLEMENTATION_SPECIFIC'); return flags.length > 0 ? flags.join(' | ') : 'SAME'; } function ResultRow({label, result, color}) { if (!result) return null; return (
0x01
DISCONNECTED
0x02
PRECEDING (other is before fragment)
0x04
FOLLOWING (other is after fragment)
0x08
CONTAINS (other contains fragment)
0x10
CONTAINED_BY (other is inside fragment)