@uiw/react-md-editor 3.9.1 → 3.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/components/TextArea/handleKeyDown.js +6 -0
- package/esm/components/TextArea/handleKeyDown.js.map +2 -2
- package/esm/components/TextArea/index.css +1 -2
- package/lib/components/TextArea/handleKeyDown.js +6 -0
- package/lib/components/TextArea/handleKeyDown.js.map +2 -2
- package/markdown-editor.css +1 -2
- package/package.json +12 -12
- package/src/components/TextArea/handleKeyDown.tsx +8 -0
|
@@ -81,6 +81,12 @@ export default function handleKeyDown(e, tabSize, defaultTabEnable) {
|
|
|
81
81
|
startStr = '\n* ';
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
+
if (currentLineStr.startsWith('- [ ]')) {
|
|
85
|
+
startStr = '\n- [ ] ';
|
|
86
|
+
} else if (currentLineStr.startsWith('- [X]')) {
|
|
87
|
+
startStr = '\n- [X] ';
|
|
88
|
+
}
|
|
89
|
+
|
|
84
90
|
if (/^\d+.\s/.test(currentLineStr)) {
|
|
85
91
|
startStr = "\n" + (parseInt(currentLineStr) + 1) + ". ";
|
|
86
92
|
}
|
|
@@ -58,8 +58,8 @@
|
|
|
58
58
|
"startsWith",
|
|
59
59
|
"parseInt"
|
|
60
60
|
],
|
|
61
|
-
"mappings": "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
|
|
61
|
+
"mappings": "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",
|
|
62
62
|
"sourcesContent": [
|
|
63
|
-
"import { insertTextAtPosition } from '../../utils/InsertTextAtPosition';\nimport { TextAreaTextApi } from '../../commands';\nimport { insertBeforeEachLine } from '../../commands/list';\n\n/**\n * - `13` - `Enter`\n * - `9` - `Tab`\n */\nfunction stopPropagation(e: KeyboardEvent | React.KeyboardEvent<HTMLTextAreaElement>) {\n e.stopPropagation();\n e.preventDefault();\n}\n\nexport default function handleKeyDown(\n e: KeyboardEvent | React.KeyboardEvent<HTMLTextAreaElement>,\n tabSize: number = 2,\n defaultTabEnable: boolean = false,\n) {\n const target = e.target as HTMLTextAreaElement;\n const starVal = target.value.substr(0, target.selectionStart);\n const valArr = starVal.split('\\n');\n const currentLineStr = valArr[valArr.length - 1];\n const textArea = new TextAreaTextApi(target);\n\n /**\n * `9` - `Tab`\n */\n if (!defaultTabEnable && e.code && e.code.toLowerCase() === 'tab') {\n stopPropagation(e);\n const space = new Array(tabSize + 1).join(' ');\n if (target.selectionStart !== target.selectionEnd) {\n const _star = target.value.substring(0, target.selectionStart).split('\\n');\n const _end = target.value.substring(0, target.selectionEnd).split('\\n');\n const modifiedTextLine: string[] = [];\n _end.forEach((item, idx) => {\n if (item !== _star[idx]) {\n modifiedTextLine.push(item);\n }\n });\n const modifiedText = modifiedTextLine.join('\\n');\n const oldSelectText = target.value.substring(target.selectionStart, target.selectionEnd);\n const newStarNum = target.value.substring(0, target.selectionStart).length;\n\n textArea.setSelectionRange({\n start: target.value.indexOf(modifiedText),\n end: target.selectionEnd,\n });\n\n const modifiedTextObj = insertBeforeEachLine(modifiedText, e.shiftKey ? '' : space);\n\n let text = modifiedTextObj.modifiedText;\n if (e.shiftKey) {\n text = text\n .split('\\n')\n .map((item) => item.replace(new RegExp(`^${space}`), ''))\n .join('\\n');\n }\n textArea.replaceSelection(text);\n\n let startTabSize = e.shiftKey ? -tabSize : tabSize;\n let endTabSize = e.shiftKey ? -modifiedTextLine.length * tabSize : modifiedTextLine.length * tabSize;\n\n textArea.setSelectionRange({\n start: newStarNum + startTabSize,\n end: newStarNum + oldSelectText.length + endTabSize,\n });\n } else {\n return insertTextAtPosition(target, space);\n }\n } else if (\n e.code &&\n e.code.toLowerCase() === 'enter' &&\n (/^(-|\\*)\\s/.test(currentLineStr) || /^\\d+.\\s/.test(currentLineStr))\n ) {\n /**\n * `13` - `Enter`\n */\n stopPropagation(e);\n let startStr = '\\n- ';\n if (currentLineStr.startsWith('*')) {\n startStr = '\\n* ';\n }\n if (/^\\d+.\\s/.test(currentLineStr)) {\n startStr = `\\n${parseInt(currentLineStr) + 1}. `;\n }\n return insertTextAtPosition(target, startStr);\n }\n}\n"
|
|
63
|
+
"import { insertTextAtPosition } from '../../utils/InsertTextAtPosition';\nimport { TextAreaTextApi } from '../../commands';\nimport { insertBeforeEachLine } from '../../commands/list';\n\n/**\n * - `13` - `Enter`\n * - `9` - `Tab`\n */\nfunction stopPropagation(e: KeyboardEvent | React.KeyboardEvent<HTMLTextAreaElement>) {\n e.stopPropagation();\n e.preventDefault();\n}\n\nexport default function handleKeyDown(\n e: KeyboardEvent | React.KeyboardEvent<HTMLTextAreaElement>,\n tabSize: number = 2,\n defaultTabEnable: boolean = false,\n) {\n const target = e.target as HTMLTextAreaElement;\n const starVal = target.value.substr(0, target.selectionStart);\n const valArr = starVal.split('\\n');\n const currentLineStr = valArr[valArr.length - 1];\n const textArea = new TextAreaTextApi(target);\n\n /**\n * `9` - `Tab`\n */\n if (!defaultTabEnable && e.code && e.code.toLowerCase() === 'tab') {\n stopPropagation(e);\n const space = new Array(tabSize + 1).join(' ');\n if (target.selectionStart !== target.selectionEnd) {\n const _star = target.value.substring(0, target.selectionStart).split('\\n');\n const _end = target.value.substring(0, target.selectionEnd).split('\\n');\n const modifiedTextLine: string[] = [];\n _end.forEach((item, idx) => {\n if (item !== _star[idx]) {\n modifiedTextLine.push(item);\n }\n });\n const modifiedText = modifiedTextLine.join('\\n');\n const oldSelectText = target.value.substring(target.selectionStart, target.selectionEnd);\n const newStarNum = target.value.substring(0, target.selectionStart).length;\n\n textArea.setSelectionRange({\n start: target.value.indexOf(modifiedText),\n end: target.selectionEnd,\n });\n\n const modifiedTextObj = insertBeforeEachLine(modifiedText, e.shiftKey ? '' : space);\n\n let text = modifiedTextObj.modifiedText;\n if (e.shiftKey) {\n text = text\n .split('\\n')\n .map((item) => item.replace(new RegExp(`^${space}`), ''))\n .join('\\n');\n }\n textArea.replaceSelection(text);\n\n let startTabSize = e.shiftKey ? -tabSize : tabSize;\n let endTabSize = e.shiftKey ? -modifiedTextLine.length * tabSize : modifiedTextLine.length * tabSize;\n\n textArea.setSelectionRange({\n start: newStarNum + startTabSize,\n end: newStarNum + oldSelectText.length + endTabSize,\n });\n } else {\n return insertTextAtPosition(target, space);\n }\n } else if (\n e.code &&\n e.code.toLowerCase() === 'enter' &&\n (/^(-|\\*)\\s/.test(currentLineStr) || /^\\d+.\\s/.test(currentLineStr))\n ) {\n /**\n * `13` - `Enter`\n */\n stopPropagation(e);\n let startStr = '\\n- ';\n\n if (currentLineStr.startsWith('*')) {\n startStr = '\\n* ';\n }\n\n if (currentLineStr.startsWith('- [ ]')) {\n startStr = '\\n- [ ] ';\n } else if (currentLineStr.startsWith('- [X]')) {\n startStr = '\\n- [X] ';\n }\n\n if (/^\\d+.\\s/.test(currentLineStr)) {\n startStr = `\\n${parseInt(currentLineStr) + 1}. `;\n }\n return insertTextAtPosition(target, startStr);\n }\n}\n"
|
|
64
64
|
]
|
|
65
65
|
}
|
|
@@ -86,6 +86,12 @@ function handleKeyDown(e) {
|
|
|
86
86
|
startStr = '\n* ';
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
+
if (currentLineStr.startsWith('- [ ]')) {
|
|
90
|
+
startStr = '\n- [ ] ';
|
|
91
|
+
} else if (currentLineStr.startsWith('- [X]')) {
|
|
92
|
+
startStr = '\n- [X] ';
|
|
93
|
+
}
|
|
94
|
+
|
|
89
95
|
if (/^\d+.\s/.test(currentLineStr)) {
|
|
90
96
|
startStr = "\n".concat(parseInt(currentLineStr) + 1, ". ");
|
|
91
97
|
}
|
|
@@ -56,8 +56,8 @@
|
|
|
56
56
|
"startsWith",
|
|
57
57
|
"parseInt"
|
|
58
58
|
],
|
|
59
|
-
"mappings": "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
|
|
59
|
+
"mappings": "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",
|
|
60
60
|
"sourcesContent": [
|
|
61
|
-
"import { insertTextAtPosition } from '../../utils/InsertTextAtPosition';\nimport { TextAreaTextApi } from '../../commands';\nimport { insertBeforeEachLine } from '../../commands/list';\n\n/**\n * - `13` - `Enter`\n * - `9` - `Tab`\n */\nfunction stopPropagation(e: KeyboardEvent | React.KeyboardEvent<HTMLTextAreaElement>) {\n e.stopPropagation();\n e.preventDefault();\n}\n\nexport default function handleKeyDown(\n e: KeyboardEvent | React.KeyboardEvent<HTMLTextAreaElement>,\n tabSize: number = 2,\n defaultTabEnable: boolean = false,\n) {\n const target = e.target as HTMLTextAreaElement;\n const starVal = target.value.substr(0, target.selectionStart);\n const valArr = starVal.split('\\n');\n const currentLineStr = valArr[valArr.length - 1];\n const textArea = new TextAreaTextApi(target);\n\n /**\n * `9` - `Tab`\n */\n if (!defaultTabEnable && e.code && e.code.toLowerCase() === 'tab') {\n stopPropagation(e);\n const space = new Array(tabSize + 1).join(' ');\n if (target.selectionStart !== target.selectionEnd) {\n const _star = target.value.substring(0, target.selectionStart).split('\\n');\n const _end = target.value.substring(0, target.selectionEnd).split('\\n');\n const modifiedTextLine: string[] = [];\n _end.forEach((item, idx) => {\n if (item !== _star[idx]) {\n modifiedTextLine.push(item);\n }\n });\n const modifiedText = modifiedTextLine.join('\\n');\n const oldSelectText = target.value.substring(target.selectionStart, target.selectionEnd);\n const newStarNum = target.value.substring(0, target.selectionStart).length;\n\n textArea.setSelectionRange({\n start: target.value.indexOf(modifiedText),\n end: target.selectionEnd,\n });\n\n const modifiedTextObj = insertBeforeEachLine(modifiedText, e.shiftKey ? '' : space);\n\n let text = modifiedTextObj.modifiedText;\n if (e.shiftKey) {\n text = text\n .split('\\n')\n .map((item) => item.replace(new RegExp(`^${space}`), ''))\n .join('\\n');\n }\n textArea.replaceSelection(text);\n\n let startTabSize = e.shiftKey ? -tabSize : tabSize;\n let endTabSize = e.shiftKey ? -modifiedTextLine.length * tabSize : modifiedTextLine.length * tabSize;\n\n textArea.setSelectionRange({\n start: newStarNum + startTabSize,\n end: newStarNum + oldSelectText.length + endTabSize,\n });\n } else {\n return insertTextAtPosition(target, space);\n }\n } else if (\n e.code &&\n e.code.toLowerCase() === 'enter' &&\n (/^(-|\\*)\\s/.test(currentLineStr) || /^\\d+.\\s/.test(currentLineStr))\n ) {\n /**\n * `13` - `Enter`\n */\n stopPropagation(e);\n let startStr = '\\n- ';\n if (currentLineStr.startsWith('*')) {\n startStr = '\\n* ';\n }\n if (/^\\d+.\\s/.test(currentLineStr)) {\n startStr = `\\n${parseInt(currentLineStr) + 1}. `;\n }\n return insertTextAtPosition(target, startStr);\n }\n}\n"
|
|
61
|
+
"import { insertTextAtPosition } from '../../utils/InsertTextAtPosition';\nimport { TextAreaTextApi } from '../../commands';\nimport { insertBeforeEachLine } from '../../commands/list';\n\n/**\n * - `13` - `Enter`\n * - `9` - `Tab`\n */\nfunction stopPropagation(e: KeyboardEvent | React.KeyboardEvent<HTMLTextAreaElement>) {\n e.stopPropagation();\n e.preventDefault();\n}\n\nexport default function handleKeyDown(\n e: KeyboardEvent | React.KeyboardEvent<HTMLTextAreaElement>,\n tabSize: number = 2,\n defaultTabEnable: boolean = false,\n) {\n const target = e.target as HTMLTextAreaElement;\n const starVal = target.value.substr(0, target.selectionStart);\n const valArr = starVal.split('\\n');\n const currentLineStr = valArr[valArr.length - 1];\n const textArea = new TextAreaTextApi(target);\n\n /**\n * `9` - `Tab`\n */\n if (!defaultTabEnable && e.code && e.code.toLowerCase() === 'tab') {\n stopPropagation(e);\n const space = new Array(tabSize + 1).join(' ');\n if (target.selectionStart !== target.selectionEnd) {\n const _star = target.value.substring(0, target.selectionStart).split('\\n');\n const _end = target.value.substring(0, target.selectionEnd).split('\\n');\n const modifiedTextLine: string[] = [];\n _end.forEach((item, idx) => {\n if (item !== _star[idx]) {\n modifiedTextLine.push(item);\n }\n });\n const modifiedText = modifiedTextLine.join('\\n');\n const oldSelectText = target.value.substring(target.selectionStart, target.selectionEnd);\n const newStarNum = target.value.substring(0, target.selectionStart).length;\n\n textArea.setSelectionRange({\n start: target.value.indexOf(modifiedText),\n end: target.selectionEnd,\n });\n\n const modifiedTextObj = insertBeforeEachLine(modifiedText, e.shiftKey ? '' : space);\n\n let text = modifiedTextObj.modifiedText;\n if (e.shiftKey) {\n text = text\n .split('\\n')\n .map((item) => item.replace(new RegExp(`^${space}`), ''))\n .join('\\n');\n }\n textArea.replaceSelection(text);\n\n let startTabSize = e.shiftKey ? -tabSize : tabSize;\n let endTabSize = e.shiftKey ? -modifiedTextLine.length * tabSize : modifiedTextLine.length * tabSize;\n\n textArea.setSelectionRange({\n start: newStarNum + startTabSize,\n end: newStarNum + oldSelectText.length + endTabSize,\n });\n } else {\n return insertTextAtPosition(target, space);\n }\n } else if (\n e.code &&\n e.code.toLowerCase() === 'enter' &&\n (/^(-|\\*)\\s/.test(currentLineStr) || /^\\d+.\\s/.test(currentLineStr))\n ) {\n /**\n * `13` - `Enter`\n */\n stopPropagation(e);\n let startStr = '\\n- ';\n\n if (currentLineStr.startsWith('*')) {\n startStr = '\\n* ';\n }\n\n if (currentLineStr.startsWith('- [ ]')) {\n startStr = '\\n- [ ] ';\n } else if (currentLineStr.startsWith('- [X]')) {\n startStr = '\\n- [X] ';\n }\n\n if (/^\\d+.\\s/.test(currentLineStr)) {\n startStr = `\\n${parseInt(currentLineStr) + 1}. `;\n }\n return insertTextAtPosition(target, startStr);\n }\n}\n"
|
|
62
62
|
]
|
|
63
63
|
}
|
package/markdown-editor.css
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uiw/react-md-editor",
|
|
3
|
-
"version": "3.9.
|
|
3
|
+
"version": "3.9.2",
|
|
4
4
|
"description": "A markdown editor with preview, implemented with React.js and TypeScript.",
|
|
5
5
|
"homepage": "https://uiwjs.github.io/react-md-editor/",
|
|
6
6
|
"author": "kenny wang <wowohoo@qq.com>",
|
|
@@ -39,33 +39,33 @@
|
|
|
39
39
|
"react-dom": ">=16.8.0"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@kkt/less-modules": "
|
|
43
|
-
"@kkt/raw-modules": "
|
|
44
|
-
"@kkt/react-library": "
|
|
45
|
-
"@kkt/scope-plugin-options": "
|
|
42
|
+
"@kkt/less-modules": "7.0.4",
|
|
43
|
+
"@kkt/raw-modules": "7.0.4",
|
|
44
|
+
"@kkt/react-library": "7.0.4",
|
|
45
|
+
"@kkt/scope-plugin-options": "7.0.4",
|
|
46
46
|
"@types/katex": "0.11.1",
|
|
47
|
-
"@types/react": "17.0.
|
|
47
|
+
"@types/react": "17.0.38",
|
|
48
48
|
"@types/react-dom": "17.0.11",
|
|
49
49
|
"@types/react-test-renderer": "17.0.1",
|
|
50
50
|
"@uiw/react-github-corners": "1.5.3",
|
|
51
|
-
"@uiw/react-codesandbox": "1.1.
|
|
51
|
+
"@uiw/react-codesandbox": "1.1.4",
|
|
52
52
|
"@uiw/react-shields": "1.1.2",
|
|
53
|
-
"compile-less-cli": "1.8.
|
|
53
|
+
"compile-less-cli": "1.8.11",
|
|
54
54
|
"katex": "0.15.1",
|
|
55
55
|
"husky": "7.0.4",
|
|
56
56
|
"jest-environment-jsdom": "27.4.4",
|
|
57
|
-
"kkt": "
|
|
58
|
-
"lint-staged": "12.1.
|
|
57
|
+
"kkt": "7.0.4",
|
|
58
|
+
"lint-staged": "12.1.5",
|
|
59
59
|
"prettier": "2.5.1",
|
|
60
60
|
"react": "17.0.2",
|
|
61
61
|
"react-dom": "17.0.2",
|
|
62
62
|
"react-test-renderer": "17.0.2",
|
|
63
63
|
"source-map-explorer": "2.5.2",
|
|
64
|
-
"tsbb": "3.5.
|
|
64
|
+
"tsbb": "3.5.4"
|
|
65
65
|
},
|
|
66
66
|
"dependencies": {
|
|
67
67
|
"@babel/runtime": "^7.14.6",
|
|
68
|
-
"@uiw/react-markdown-preview": "3.4.
|
|
68
|
+
"@uiw/react-markdown-preview": "3.4.6",
|
|
69
69
|
"rehype-sanitize": "5.0.1",
|
|
70
70
|
"rehype": "12.0.0"
|
|
71
71
|
},
|
|
@@ -77,9 +77,17 @@ export default function handleKeyDown(
|
|
|
77
77
|
*/
|
|
78
78
|
stopPropagation(e);
|
|
79
79
|
let startStr = '\n- ';
|
|
80
|
+
|
|
80
81
|
if (currentLineStr.startsWith('*')) {
|
|
81
82
|
startStr = '\n* ';
|
|
82
83
|
}
|
|
84
|
+
|
|
85
|
+
if (currentLineStr.startsWith('- [ ]')) {
|
|
86
|
+
startStr = '\n- [ ] ';
|
|
87
|
+
} else if (currentLineStr.startsWith('- [X]')) {
|
|
88
|
+
startStr = '\n- [X] ';
|
|
89
|
+
}
|
|
90
|
+
|
|
83
91
|
if (/^\d+.\s/.test(currentLineStr)) {
|
|
84
92
|
startStr = `\n${parseInt(currentLineStr) + 1}. `;
|
|
85
93
|
}
|