diff options
| -rw-r--r-- | editor/editor.ts | 18 | ||||
| -rw-r--r-- | tsconfig.json | 3 |
2 files changed, 17 insertions, 4 deletions
diff --git a/editor/editor.ts b/editor/editor.ts index c7ce506..1ea0438 100644 --- a/editor/editor.ts +++ b/editor/editor.ts @@ -109,8 +109,22 @@ export class WuiEditor { this.elContent.addEventListener("paste", (ev: ClipboardEvent) => { ev.preventDefault(); - const text = ev.clipboardData?.getData("text/plain"); - document.execCommand("insertText", false, text); + let text: string = ev.clipboardData?.getData("text/plain") || ""; + if (!text) { + console.error(`on paste: text is ${text}`); + return; + } + const selection = window.getSelection(); + if (!selection || !selection.rangeCount) { + console.error(`on paste: failed to get selection`); + return; + } + + text = text.trimEnd(); + selection.deleteFromDocument(); + selection.getRangeAt(0).insertNode(document.createTextNode(text)); + selection.collapseToEnd(); + this.renderLineNumber(this.getContent()); }); diff --git a/tsconfig.json b/tsconfig.json index 508e44b..d7fc0f4 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,6 @@ { "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ - "target": "es2018", + "target": "es2019", "module": "es2020", "isolatedModules": true, "esModuleInterop": true, |
