codejar
Advanced tools
Comparing version 4.0.0 to 4.1.0
@@ -21,3 +21,6 @@ type Options = { | ||
updateCode(code: string): void; | ||
onUpdate(cb: (code: string) => void): void; | ||
onUpdate(callback: (code: string) => void): void; | ||
onPaste(callback: (data: { | ||
text: string; | ||
}) => void): void; | ||
toString: () => string; | ||
@@ -24,0 +27,0 @@ save: () => Position; |
@@ -13,3 +13,3 @@ const globalWindow = window; | ||
window: globalWindow, | ||
...opt | ||
...opt, | ||
}; | ||
@@ -22,3 +22,8 @@ const window = options.window; | ||
let focus = false; | ||
let callback; | ||
const cb = { | ||
update(code) { | ||
}, | ||
paste(data) { | ||
}, | ||
}; | ||
let prev; // code content prior keydown event | ||
@@ -90,4 +95,3 @@ editor.setAttribute('contenteditable', 'plaintext-only'); | ||
debounceRecordHistory(event); | ||
if (callback) | ||
callback(toString()); | ||
cb.update(toString()); | ||
}); | ||
@@ -104,4 +108,3 @@ on('focus', _event => { | ||
recordHistory(); | ||
if (callback) | ||
callback(toString()); | ||
cb.update(toString()); | ||
}); | ||
@@ -112,4 +115,3 @@ on('cut', event => { | ||
recordHistory(); | ||
if (callback) | ||
callback(toString()); | ||
cb.update(toString()); | ||
}); | ||
@@ -303,3 +305,3 @@ function save() { | ||
const before = beforeCursor(); | ||
let [padding, start,] = findPadding(before); | ||
let [padding, start] = findPadding(before); | ||
if (padding.length > 0) { | ||
@@ -368,12 +370,13 @@ const pos = save(); | ||
preventDefault(event); | ||
const text = (event.originalEvent || event) | ||
.clipboardData | ||
.getData('text/plain') | ||
.replace(/\r\n?/g, '\n'); | ||
const originalEvent = event.originalEvent ?? event; | ||
const data = { | ||
text: originalEvent.clipboardData.getData('text/plain').replace(/\r\n?/g, '\n'), | ||
}; | ||
cb.paste(data); | ||
const pos = save(); | ||
insert(text); | ||
insert(data.text); | ||
highlight(editor); | ||
restore({ | ||
start: Math.min(pos.start, pos.end) + text.length, | ||
end: Math.min(pos.start, pos.end) + text.length, | ||
start: Math.min(pos.start, pos.end) + data.text.length, | ||
end: Math.min(pos.start, pos.end) + data.text.length, | ||
dir: '<-', | ||
@@ -386,9 +389,9 @@ }); | ||
const originalEvent = event.originalEvent ?? event; | ||
originalEvent.clipboardData.setData("text/plain", selection.toString()); | ||
originalEvent.clipboardData.setData('text/plain', selection.toString()); | ||
document.execCommand('delete'); | ||
highlight(editor); | ||
restore({ | ||
start: pos.start, | ||
end: pos.start, | ||
dir: '->', | ||
start: Math.min(pos.start, pos.end), | ||
end: Math.min(pos.start, pos.end), | ||
dir: '<-', | ||
}); | ||
@@ -477,8 +480,10 @@ preventDefault(event); | ||
highlight(editor); | ||
if (callback) | ||
callback(code); | ||
cb.update(code); | ||
}, | ||
onUpdate(cb) { | ||
callback = cb; | ||
onUpdate(callback) { | ||
cb.update = callback; | ||
}, | ||
onPaste(callback) { | ||
cb.paste = callback; | ||
}, | ||
toString, | ||
@@ -485,0 +490,0 @@ save, |
{ | ||
"name": "codejar", | ||
"description": "An embeddable code editor for the browser", | ||
"version": "4.0.0", | ||
"version": "4.1.0", | ||
"type": "module", | ||
@@ -6,0 +6,0 @@ "main": "./dist/codejar.js", |
@@ -10,3 +10,4 @@ <p align="center"><a href="https://medv.io/codejar/"><img src="https://medv.io/assets/codejar.svg" width="72"></a></p> | ||
* Lightweight (**3 kB** only) | ||
* Lightweight (**2.45 kB** only) | ||
* No dependencies | ||
* Preserves indentation on a new line | ||
@@ -13,0 +14,0 @@ * Adds closing brackets, quotes |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
24330
602
137
0