isContentEditable.js 647 B

123456789101112131415
  1. //jsdom is not supporting isContentEditable
  2. function isContentEditable(element) {
  3. return element.hasAttribute('contenteditable') && (element.getAttribute('contenteditable') == 'true' || element.getAttribute('contenteditable') == '');
  4. }
  5. /**
  6. * If a node is a contenteditable or inside one, return that element.
  7. */ function getContentEditable(node) {
  8. const element = getElement(node);
  9. return element && (element.closest('[contenteditable=""]') || element.closest('[contenteditable="true"]'));
  10. }
  11. function getElement(node) {
  12. return node.nodeType === 1 ? node : node.parentElement;
  13. }
  14. export { getContentEditable, isContentEditable };