Comparing version
@@ -219,4 +219,32 @@ const globalWindow = window; | ||
} | ||
{ | ||
// If nodes not editable, create a text node. | ||
const startEl = uneditable(startNode); | ||
if (startEl) { | ||
const node = document.createTextNode(''); | ||
startEl.parentNode?.insertBefore(node, startEl); | ||
startNode = node; | ||
startOffset = 0; | ||
} | ||
const endEl = uneditable(endNode); | ||
if (endEl) { | ||
const node = document.createTextNode(''); | ||
endEl.parentNode?.insertBefore(node, endEl); | ||
endNode = node; | ||
endOffset = 0; | ||
} | ||
} | ||
s.setBaseAndExtent(startNode, startOffset, endNode, endOffset); | ||
} | ||
function uneditable(node) { | ||
while (node && node !== editor) { | ||
if (node.nodeType === Node.ELEMENT_NODE) { | ||
const el = node; | ||
if (el.getAttribute('contenteditable') == 'false') { | ||
return el; | ||
} | ||
} | ||
node = node.parentNode; | ||
} | ||
} | ||
function beforeCursor() { | ||
@@ -223,0 +251,0 @@ const s = getSelection(); |
{ | ||
"name": "codejar", | ||
"description": "An embeddable code editor for the browser", | ||
"version": "4.1.1", | ||
"version": "4.1.2", | ||
"type": "module", | ||
@@ -6,0 +6,0 @@ "main": "./dist/codejar.js", |
25454
3.98%630
4.65%