isContentEditable.js 708 B

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