@uiw/react-md-editor 3.19.0 → 3.19.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.
Files changed (139) hide show
  1. package/dist/mdeditor.css +2 -0
  2. package/dist/mdeditor.js +834 -834
  3. package/dist/mdeditor.min.css +1 -1
  4. package/dist/mdeditor.min.js +1 -1
  5. package/esm/Context.js.map +1 -1
  6. package/esm/Editor.js +43 -67
  7. package/esm/Editor.js.map +1 -1
  8. package/esm/commands/bold.js +4 -4
  9. package/esm/commands/bold.js.map +1 -1
  10. package/esm/commands/code.js +4 -6
  11. package/esm/commands/code.js.map +1 -1
  12. package/esm/commands/comment.js +4 -4
  13. package/esm/commands/comment.js.map +1 -1
  14. package/esm/commands/divider.js.map +1 -1
  15. package/esm/commands/fullscreen.js +3 -4
  16. package/esm/commands/fullscreen.js.map +2 -2
  17. package/esm/commands/group.js +2 -4
  18. package/esm/commands/group.js.map +1 -1
  19. package/esm/commands/hr.js.map +1 -1
  20. package/esm/commands/image.js +4 -4
  21. package/esm/commands/image.js.map +1 -1
  22. package/esm/commands/index.d.ts +2 -2
  23. package/esm/commands/index.js +6 -17
  24. package/esm/commands/index.js.map +3 -2
  25. package/esm/commands/italic.js +4 -4
  26. package/esm/commands/italic.js.map +1 -1
  27. package/esm/commands/link.js +4 -4
  28. package/esm/commands/link.js.map +1 -1
  29. package/esm/commands/list.js +4 -4
  30. package/esm/commands/list.js.map +1 -1
  31. package/esm/commands/preview.js +21 -3
  32. package/esm/commands/preview.js.map +7 -2
  33. package/esm/commands/quote.js +2 -1
  34. package/esm/commands/quote.js.map +1 -1
  35. package/esm/commands/strikeThrough.js +4 -4
  36. package/esm/commands/strikeThrough.js.map +1 -1
  37. package/esm/commands/title.js.map +1 -1
  38. package/esm/commands/title1.js.map +1 -1
  39. package/esm/commands/title2.js.map +1 -1
  40. package/esm/commands/title3.js.map +1 -1
  41. package/esm/commands/title4.js.map +1 -1
  42. package/esm/commands/title5.js.map +1 -1
  43. package/esm/commands/title6.js.map +1 -1
  44. package/esm/components/DragBar/index.js +2 -9
  45. package/esm/components/DragBar/index.js.map +1 -1
  46. package/esm/components/TextArea/Markdown.js +2 -7
  47. package/esm/components/TextArea/Markdown.js.map +1 -1
  48. package/esm/components/TextArea/Textarea.js +8 -11
  49. package/esm/components/TextArea/Textarea.js.map +1 -1
  50. package/esm/components/TextArea/handleKeyDown.js +2 -16
  51. package/esm/components/TextArea/handleKeyDown.js.map +1 -1
  52. package/esm/components/TextArea/index.js +11 -15
  53. package/esm/components/TextArea/index.js.map +1 -1
  54. package/esm/components/TextArea/shortcuts.js +1 -17
  55. package/esm/components/TextArea/shortcuts.js.map +2 -2
  56. package/esm/components/Toolbar/Child.js +2 -1
  57. package/esm/components/Toolbar/Child.js.map +1 -1
  58. package/esm/components/Toolbar/index.js +2 -12
  59. package/esm/components/Toolbar/index.js.map +1 -1
  60. package/esm/index.js.map +1 -1
  61. package/esm/utils/InsertTextAtPosition.js +28 -34
  62. package/esm/utils/InsertTextAtPosition.js.map +1 -1
  63. package/esm/utils/markdownUtils.js +14 -23
  64. package/esm/utils/markdownUtils.js.map +1 -1
  65. package/lib/Context.js +0 -6
  66. package/lib/Context.js.map +1 -1
  67. package/lib/Editor.js +74 -114
  68. package/lib/Editor.js.map +1 -1
  69. package/lib/commands/bold.js +4 -9
  70. package/lib/commands/bold.js.map +1 -1
  71. package/lib/commands/code.js +4 -11
  72. package/lib/commands/code.js.map +1 -1
  73. package/lib/commands/comment.js +4 -7
  74. package/lib/commands/comment.js.map +1 -1
  75. package/lib/commands/divider.js.map +1 -1
  76. package/lib/commands/fullscreen.js +3 -8
  77. package/lib/commands/fullscreen.js.map +2 -2
  78. package/lib/commands/group.js +2 -10
  79. package/lib/commands/group.js.map +1 -1
  80. package/lib/commands/hr.js +0 -4
  81. package/lib/commands/hr.js.map +1 -1
  82. package/lib/commands/image.js +4 -9
  83. package/lib/commands/image.js.map +1 -1
  84. package/lib/commands/index.d.ts +2 -2
  85. package/lib/commands/index.js +4 -41
  86. package/lib/commands/index.js.map +3 -2
  87. package/lib/commands/italic.js +4 -9
  88. package/lib/commands/italic.js.map +1 -1
  89. package/lib/commands/link.js +4 -9
  90. package/lib/commands/link.js.map +1 -1
  91. package/lib/commands/list.js +4 -10
  92. package/lib/commands/list.js.map +1 -1
  93. package/lib/commands/preview.js +21 -7
  94. package/lib/commands/preview.js.map +7 -2
  95. package/lib/commands/quote.js +2 -6
  96. package/lib/commands/quote.js.map +1 -1
  97. package/lib/commands/strikeThrough.js +4 -9
  98. package/lib/commands/strikeThrough.js.map +1 -1
  99. package/lib/commands/title.js +0 -6
  100. package/lib/commands/title.js.map +1 -1
  101. package/lib/commands/title1.js +0 -5
  102. package/lib/commands/title1.js.map +1 -1
  103. package/lib/commands/title2.js +0 -5
  104. package/lib/commands/title2.js.map +1 -1
  105. package/lib/commands/title3.js +0 -5
  106. package/lib/commands/title3.js.map +1 -1
  107. package/lib/commands/title4.js +0 -5
  108. package/lib/commands/title4.js.map +1 -1
  109. package/lib/commands/title5.js +0 -5
  110. package/lib/commands/title5.js.map +1 -1
  111. package/lib/commands/title6.js +0 -5
  112. package/lib/commands/title6.js.map +1 -1
  113. package/lib/components/DragBar/index.js +4 -15
  114. package/lib/components/DragBar/index.js.map +1 -1
  115. package/lib/components/TextArea/Markdown.js +6 -22
  116. package/lib/components/TextArea/Markdown.js.map +1 -1
  117. package/lib/components/TextArea/Textarea.js +15 -36
  118. package/lib/components/TextArea/Textarea.js.map +1 -1
  119. package/lib/components/TextArea/handleKeyDown.js +1 -18
  120. package/lib/components/TextArea/handleKeyDown.js.map +1 -1
  121. package/lib/components/TextArea/index.js +15 -37
  122. package/lib/components/TextArea/index.js.map +1 -1
  123. package/lib/components/TextArea/shortcuts.js +1 -17
  124. package/lib/components/TextArea/shortcuts.js.map +2 -2
  125. package/lib/components/Toolbar/Child.js +8 -18
  126. package/lib/components/Toolbar/Child.js.map +1 -1
  127. package/lib/components/Toolbar/index.js +14 -36
  128. package/lib/components/Toolbar/index.js.map +1 -1
  129. package/lib/index.js +0 -9
  130. package/lib/index.js.map +1 -1
  131. package/lib/utils/InsertTextAtPosition.js +28 -37
  132. package/lib/utils/InsertTextAtPosition.js.map +1 -1
  133. package/lib/utils/markdownUtils.js +17 -28
  134. package/lib/utils/markdownUtils.js.map +1 -1
  135. package/package.json +2 -2
  136. package/src/commands/fullscreen.tsx +3 -2
  137. package/src/commands/index.ts +3 -1
  138. package/src/commands/preview.tsx +35 -4
  139. package/src/components/TextArea/shortcuts.ts +2 -2
@@ -1,56 +1,46 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports["default"] = void 0;
9
-
10
8
  var _react = _interopRequireWildcard(require("react"));
11
-
12
9
  var _jsxRuntime = require("react/jsx-runtime");
13
-
14
10
  var DragBar = function DragBar(props) {
15
11
  var _ref = props || {},
16
- prefixCls = _ref.prefixCls,
17
- onChange = _ref.onChange;
18
-
12
+ prefixCls = _ref.prefixCls,
13
+ onChange = _ref.onChange;
19
14
  var dragRef = (0, _react.useRef)();
20
-
21
15
  function handleMouseMove(event) {
22
16
  if (dragRef.current) {
23
17
  var newHeight = dragRef.current.height + event.clientY - dragRef.current.dragY;
24
-
25
18
  if (newHeight >= props.minHeight && newHeight <= props.maxHeight) {
26
19
  onChange && onChange(dragRef.current.height + (event.clientY - dragRef.current.dragY));
27
20
  }
28
21
  }
29
22
  }
30
-
31
23
  function handleMouseUp() {
32
24
  dragRef.current = undefined;
33
25
  }
34
-
35
26
  function handleMouseDown(event) {
36
27
  dragRef.current = {
37
28
  height: props.height,
38
29
  dragY: event.clientY
39
30
  };
40
31
  }
41
-
42
32
  (0, _react.useEffect)(function () {
43
33
  if (document) {
44
34
  document.addEventListener('mousemove', handleMouseMove);
45
35
  document.addEventListener('mouseup', handleMouseUp);
46
36
  }
47
-
48
37
  return function () {
49
38
  if (document) {
50
39
  document.removeEventListener('mousemove', handleMouseMove);
51
40
  document.removeEventListener('mouseup', handleMouseUp);
52
41
  }
53
- }; // eslint-disable-next-line react-hooks/exhaustive-deps
42
+ };
43
+ // eslint-disable-next-line react-hooks/exhaustive-deps
54
44
  }, []);
55
45
  var svg = (0, _react.useMemo)(function () {
56
46
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("svg", {
@@ -68,7 +58,6 @@ var DragBar = function DragBar(props) {
68
58
  children: svg
69
59
  });
70
60
  };
71
-
72
61
  var _default = DragBar;
73
62
  exports["default"] = _default;
74
63
  module.exports = exports.default;
@@ -32,5 +32,5 @@
32
32
  "sourcesContent": [
33
33
  "import React, { useEffect, useMemo, useRef } from 'react';\nimport { IProps } from '../../Editor';\nimport './index.less';\n\nexport interface IDragBarProps extends IProps {\n height: number;\n maxHeight: number;\n minHeight: number;\n onChange: (value: number) => void;\n}\n\nconst DragBar: React.FC<IDragBarProps> = (props) => {\n const { prefixCls, onChange } = props || {};\n const dragRef = useRef<{ height: number; dragY: number }>();\n function handleMouseMove(event: MouseEvent) {\n if (dragRef.current) {\n const newHeight = dragRef.current.height + event.clientY - dragRef.current.dragY;\n if (newHeight >= props.minHeight && newHeight <= props.maxHeight) {\n onChange && onChange(dragRef.current.height + (event.clientY - dragRef.current.dragY));\n }\n }\n }\n function handleMouseUp() {\n dragRef.current = undefined;\n }\n function handleMouseDown(event: React.MouseEvent<HTMLDivElement, MouseEvent>) {\n dragRef.current = {\n height: props.height,\n dragY: event.clientY,\n };\n }\n\n useEffect(() => {\n if (document) {\n document.addEventListener('mousemove', handleMouseMove);\n document.addEventListener('mouseup', handleMouseUp);\n }\n return () => {\n if (document) {\n document.removeEventListener('mousemove', handleMouseMove);\n document.removeEventListener('mouseup', handleMouseUp);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const svg = useMemo(\n () => (\n <svg viewBox=\"0 0 512 512\" height=\"100%\">\n <path\n fill=\"currentColor\"\n d=\"M304 256c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48 48 21.5 48 48zm120-48c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm-336 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48z\"\n />\n </svg>\n ),\n [],\n );\n return (\n <div className={`${prefixCls}-bar`} onMouseDown={handleMouseDown}>\n {svg}\n </div>\n );\n};\n\nexport default DragBar;\n"
34
34
  ],
35
- "mappings": ";;;;;;;;;AAAA;;;;AAWA,IAAMA,OAAgC,GAAG,SAAnCA,OAAmC,CAACC,KAAD,EAAW;EAClD,WAAgCA,KAAK,IAAI,EAAzC;EAAA,IAAQC,SAAR,QAAQA,SAAR;EAAA,IAAmBC,QAAnB,QAAmBA,QAAnB;;EACA,IAAMC,OAAO,GAAG,IAAAC,aAAA,GAAhB;;EACA,SAASC,eAAT,CAAyBC,KAAzB,EAA4C;IAC1C,IAAIH,OAAO,CAACI,OAAZ,EAAqB;MACnB,IAAMC,SAAS,GAAGL,OAAO,CAACI,OAAR,CAAgBE,MAAhB,GAAyBH,KAAK,CAACI,OAA/B,GAAyCP,OAAO,CAACI,OAAR,CAAgBI,KAA3E;;MACA,IAAIH,SAAS,IAAIR,KAAK,CAACY,SAAnB,IAAgCJ,SAAS,IAAIR,KAAK,CAACa,SAAvD,EAAkE;QAChEX,QAAQ,IAAIA,QAAQ,CAACC,OAAO,CAACI,OAAR,CAAgBE,MAAhB,IAA0BH,KAAK,CAACI,OAAN,GAAgBP,OAAO,CAACI,OAAR,CAAgBI,KAA1D,CAAD,CAApB;MACD;IACF;EACF;;EACD,SAASG,aAAT,GAAyB;IACvBX,OAAO,CAACI,OAAR,GAAkBQ,SAAlB;EACD;;EACD,SAASC,eAAT,CAAyBV,KAAzB,EAA8E;IAC5EH,OAAO,CAACI,OAAR,GAAkB;MAChBE,MAAM,EAAET,KAAK,CAACS,MADE;MAEhBE,KAAK,EAAEL,KAAK,CAACI;IAFG,CAAlB;EAID;;EAED,IAAAO,gBAAA,EAAU,YAAM;IACd,IAAIC,QAAJ,EAAc;MACZA,QAAQ,CAACC,gBAAT,CAA0B,WAA1B,EAAuCd,eAAvC;MACAa,QAAQ,CAACC,gBAAT,CAA0B,SAA1B,EAAqCL,aAArC;IACD;;IACD,OAAO,YAAM;MACX,IAAII,QAAJ,EAAc;QACZA,QAAQ,CAACE,mBAAT,CAA6B,WAA7B,EAA0Cf,eAA1C;QACAa,QAAQ,CAACE,mBAAT,CAA6B,SAA7B,EAAwCN,aAAxC;MACD;IACF,CALD,CALc,CAWd;EACD,CAZD,EAYG,EAZH;EAaA,IAAMO,GAAG,GAAG,IAAAC,cAAA,EACV;IAAA,oBACE;MAAK,OAAO,EAAC,aAAb;MAA2B,MAAM,EAAC,MAAlC;MAAA,uBACE;QACE,IAAI,EAAC,cADP;QAEE,CAAC,EAAC;MAFJ;IADF,EADF;EAAA,CADU,EASV,EATU,CAAZ;EAWA,oBACE;IAAK,SAAS,YAAKrB,SAAL,SAAd;IAAoC,WAAW,EAAEe,eAAjD;IAAA,UACGK;EADH,EADF;AAKD,CAlDD;;eAoDetB,O"
35
+ "mappings": ";;;;;;;AAAA;AAA0D;AAW1D,IAAMA,OAAgC,GAAG,SAAnCA,OAAgC,CAAIC,KAAK,EAAK;EAClD,WAAgCA,KAAK,IAAI,CAAC,CAAC;IAAnCC,SAAS,QAATA,SAAS;IAAEC,QAAQ,QAARA,QAAQ;EAC3B,IAAMC,OAAO,GAAG,IAAAC,aAAM,GAAqC;EAC3D,SAASC,eAAe,CAACC,KAAiB,EAAE;IAC1C,IAAIH,OAAO,CAACI,OAAO,EAAE;MACnB,IAAMC,SAAS,GAAGL,OAAO,CAACI,OAAO,CAACE,MAAM,GAAGH,KAAK,CAACI,OAAO,GAAGP,OAAO,CAACI,OAAO,CAACI,KAAK;MAChF,IAAIH,SAAS,IAAIR,KAAK,CAACY,SAAS,IAAIJ,SAAS,IAAIR,KAAK,CAACa,SAAS,EAAE;QAChEX,QAAQ,IAAIA,QAAQ,CAACC,OAAO,CAACI,OAAO,CAACE,MAAM,IAAIH,KAAK,CAACI,OAAO,GAAGP,OAAO,CAACI,OAAO,CAACI,KAAK,CAAC,CAAC;MACxF;IACF;EACF;EACA,SAASG,aAAa,GAAG;IACvBX,OAAO,CAACI,OAAO,GAAGQ,SAAS;EAC7B;EACA,SAASC,eAAe,CAACV,KAAmD,EAAE;IAC5EH,OAAO,CAACI,OAAO,GAAG;MAChBE,MAAM,EAAET,KAAK,CAACS,MAAM;MACpBE,KAAK,EAAEL,KAAK,CAACI;IACf,CAAC;EACH;EAEA,IAAAO,gBAAS,EAAC,YAAM;IACd,IAAIC,QAAQ,EAAE;MACZA,QAAQ,CAACC,gBAAgB,CAAC,WAAW,EAAEd,eAAe,CAAC;MACvDa,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEL,aAAa,CAAC;IACrD;IACA,OAAO,YAAM;MACX,IAAII,QAAQ,EAAE;QACZA,QAAQ,CAACE,mBAAmB,CAAC,WAAW,EAAEf,eAAe,CAAC;QAC1Da,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAEN,aAAa,CAAC;MACxD;IACF,CAAC;IACD;EACF,CAAC,EAAE,EAAE,CAAC;EACN,IAAMO,GAAG,GAAG,IAAAC,cAAO,EACjB;IAAA,oBACE;MAAK,OAAO,EAAC,aAAa;MAAC,MAAM,EAAC,MAAM;MAAA,uBACtC;QACE,IAAI,EAAC,cAAc;QACnB,CAAC,EAAC;MAA2N;IAC7N,EACE;EAAA,CACP,EACD,EAAE,CACH;EACD,oBACE;IAAK,SAAS,YAAKrB,SAAS,SAAO;IAAC,WAAW,EAAEe,eAAgB;IAAA,UAC9DK;EAAG,EACA;AAEV,CAAC;AAAC,eAEatB,OAAO;AAAA;AAAA"
36
36
  }
@@ -1,24 +1,16 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
-
5
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports["default"] = Markdown;
11
-
12
9
  var _react = _interopRequireWildcard(require("react"));
13
-
14
10
  var _rehype = require("rehype");
15
-
16
11
  var _rehypePrismPlus = _interopRequireDefault(require("rehype-prism-plus"));
17
-
18
12
  var _Context = require("../../Context");
19
-
20
13
  var _jsxRuntime = require("react/jsx-runtime");
21
-
22
14
  function html2Escape(sHtml) {
23
15
  return sHtml.replace(/```(tsx?|jsx?|html|xml)(.*)\s+([\s\S]*?)(\s.+)?```/g, function (str) {
24
16
  return str.replace(/[<&"]/g, function (c) {
@@ -38,25 +30,21 @@ function html2Escape(sHtml) {
38
30
  }[c];
39
31
  });
40
32
  }
41
-
42
33
  function Markdown(props) {
43
34
  var prefixCls = props.prefixCls;
44
-
45
35
  var _useContext = (0, _react.useContext)(_Context.EditorContext),
46
- _useContext$markdown = _useContext.markdown,
47
- markdown = _useContext$markdown === void 0 ? '' : _useContext$markdown,
48
- highlightEnable = _useContext.highlightEnable,
49
- dispatch = _useContext.dispatch;
50
-
36
+ _useContext$markdown = _useContext.markdown,
37
+ markdown = _useContext$markdown === void 0 ? '' : _useContext$markdown,
38
+ highlightEnable = _useContext.highlightEnable,
39
+ dispatch = _useContext.dispatch;
51
40
  var preRef = /*#__PURE__*/_react["default"].createRef();
52
-
53
41
  (0, _react.useEffect)(function () {
54
42
  if (preRef.current && dispatch) {
55
43
  dispatch({
56
44
  textareaPre: preRef.current
57
45
  });
58
- } // eslint-disable-next-line react-hooks/exhaustive-deps
59
-
46
+ }
47
+ // eslint-disable-next-line react-hooks/exhaustive-deps
60
48
  }, []);
61
49
  return (0, _react.useMemo)(function () {
62
50
  if (!markdown) {
@@ -65,9 +53,7 @@ function Markdown(props) {
65
53
  className: "".concat(prefixCls, "-text-pre wmde-markdown-color")
66
54
  });
67
55
  }
68
-
69
56
  var mdStr = "<pre class=\"language-markdown ".concat(prefixCls, "-text-pre wmde-markdown-color\"><code class=\"language-markdown\">").concat(html2Escape(markdown), "\n</code></pre>");
70
-
71
57
  if (highlightEnable) {
72
58
  try {
73
59
  mdStr = (0, _rehype.rehype)().data('settings', {
@@ -77,7 +63,6 @@ function Markdown(props) {
77
63
  }).processSync(mdStr).toString();
78
64
  } catch (error) {}
79
65
  }
80
-
81
66
  return /*#__PURE__*/_react["default"].createElement('div', {
82
67
  className: 'wmde-markdown-color',
83
68
  dangerouslySetInnerHTML: {
@@ -86,6 +71,5 @@ function Markdown(props) {
86
71
  });
87
72
  }, [markdown, preRef, prefixCls]);
88
73
  }
89
-
90
74
  module.exports = exports.default;
91
75
  //# sourceMappingURL=Markdown.js.map
@@ -42,5 +42,5 @@
42
42
  "sourcesContent": [
43
43
  "import React, { useContext, useEffect, useMemo } from 'react';\nimport { rehype } from 'rehype';\nimport rehypePrism from 'rehype-prism-plus';\nimport { IProps } from '../../Editor';\nimport { EditorContext } from '../../Context';\n\nfunction html2Escape(sHtml: string) {\n return sHtml\n .replace(/```(tsx?|jsx?|html|xml)(.*)\\s+([\\s\\S]*?)(\\s.+)?```/g, (str: string) => {\n return str.replace(\n /[<&\"]/g,\n (c: string) => (({ '<': '&lt;', '>': '&gt;', '&': '&amp;', '\"': '&quot;' } as Record<string, string>)[c]),\n );\n })\n .replace(\n /[<&\"]/g,\n (c: string) => (({ '<': '&lt;', '>': '&gt;', '&': '&amp;', '\"': '&quot;' } as Record<string, string>)[c]),\n );\n}\n\nexport interface MarkdownProps extends IProps, React.HTMLAttributes<HTMLPreElement> {}\n\nexport default function Markdown(props: MarkdownProps) {\n const { prefixCls } = props;\n const { markdown = '', highlightEnable, dispatch } = useContext(EditorContext);\n const preRef = React.createRef<HTMLPreElement>();\n useEffect(() => {\n if (preRef.current && dispatch) {\n dispatch({ textareaPre: preRef.current });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return useMemo(() => {\n if (!markdown) {\n return <pre ref={preRef} className={`${prefixCls}-text-pre wmde-markdown-color`} />;\n }\n let mdStr = `<pre class=\"language-markdown ${prefixCls}-text-pre wmde-markdown-color\"><code class=\"language-markdown\">${html2Escape(\n markdown,\n )}\\n</code></pre>`;\n\n if (highlightEnable) {\n try {\n mdStr = rehype()\n .data('settings', { fragment: true })\n .use(rehypePrism, { ignoreMissing: true })\n .processSync(mdStr)\n .toString();\n } catch (error) {}\n }\n\n return React.createElement('div', {\n className: 'wmde-markdown-color',\n dangerouslySetInnerHTML: { __html: mdStr || '' },\n });\n }, [markdown, preRef, prefixCls]);\n}\n"
44
44
  ],
45
- "mappings": ";;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;;;AAEA,SAASA,WAAT,CAAqBC,KAArB,EAAoC;EAClC,OAAOA,KAAK,CACTC,OADI,CACI,qDADJ,EAC2D,UAACC,GAAD,EAAiB;IAC/E,OAAOA,GAAG,CAACD,OAAJ,CACL,QADK,EAEL,UAACE,CAAD;MAAA,OAAiB;QAAE,KAAK,MAAP;QAAe,KAAK,MAApB;QAA4B,KAAK,OAAjC;QAA0C,KAAK;MAA/C,CAAD,CAAsFA,CAAtF,CAAhB;IAAA,CAFK,CAAP;EAID,CANI,EAOJF,OAPI,CAQH,QARG,EASH,UAACE,CAAD;IAAA,OAAiB;MAAE,KAAK,MAAP;MAAe,KAAK,MAApB;MAA4B,KAAK,OAAjC;MAA0C,KAAK;IAA/C,CAAD,CAAsFA,CAAtF,CAAhB;EAAA,CATG,CAAP;AAWD;;AAIc,SAASC,QAAT,CAAkBC,KAAlB,EAAwC;EACrD,IAAQC,SAAR,GAAsBD,KAAtB,CAAQC,SAAR;;EACA,kBAAqD,IAAAC,iBAAA,EAAWC,sBAAX,CAArD;EAAA,uCAAQC,QAAR;EAAA,IAAQA,QAAR,qCAAmB,EAAnB;EAAA,IAAuBC,eAAvB,eAAuBA,eAAvB;EAAA,IAAwCC,QAAxC,eAAwCA,QAAxC;;EACA,IAAMC,MAAM,gBAAGC,iBAAA,CAAMC,SAAN,EAAf;;EACA,IAAAC,gBAAA,EAAU,YAAM;IACd,IAAIH,MAAM,CAACI,OAAP,IAAkBL,QAAtB,EAAgC;MAC9BA,QAAQ,CAAC;QAAEM,WAAW,EAAEL,MAAM,CAACI;MAAtB,CAAD,CAAR;IACD,CAHa,CAId;;EACD,CALD,EAKG,EALH;EAOA,OAAO,IAAAE,cAAA,EAAQ,YAAM;IACnB,IAAI,CAACT,QAAL,EAAe;MACb,oBAAO;QAAK,GAAG,EAAEG,MAAV;QAAkB,SAAS,YAAKN,SAAL;MAA3B,EAAP;IACD;;IACD,IAAIa,KAAK,4CAAoCb,SAApC,+EAA+GP,WAAW,CACjIU,QADiI,CAA1H,oBAAT;;IAIA,IAAIC,eAAJ,EAAqB;MACnB,IAAI;QACFS,KAAK,GAAG,IAAAC,cAAA,IACLC,IADK,CACA,UADA,EACY;UAAEC,QAAQ,EAAE;QAAZ,CADZ,EAELC,GAFK,CAEDC,2BAFC,EAEY;UAAEC,aAAa,EAAE;QAAjB,CAFZ,EAGLC,WAHK,CAGOP,KAHP,EAILQ,QAJK,EAAR;MAKD,CAND,CAME,OAAOC,KAAP,EAAc,CAAE;IACnB;;IAED,oBAAOf,iBAAA,CAAMgB,aAAN,CAAoB,KAApB,EAA2B;MAChCC,SAAS,EAAE,qBADqB;MAEhCC,uBAAuB,EAAE;QAAEC,MAAM,EAAEb,KAAK,IAAI;MAAnB;IAFO,CAA3B,CAAP;EAID,CAtBM,EAsBJ,CAACV,QAAD,EAAWG,MAAX,EAAmBN,SAAnB,CAtBI,CAAP;AAuBD"
45
+ "mappings": ";;;;;;;;AAAA;AACA;AACA;AAEA;AAA8C;AAE9C,SAASA,WAAW,CAACC,KAAa,EAAE;EAClC,OAAOA,KAAK,CACTC,OAAO,CAAC,qDAAqD,EAAE,UAACC,GAAW,EAAK;IAC/E,OAAOA,GAAG,CAACD,OAAO,CAChB,QAAQ,EACR,UAACE,CAAS;MAAA,OAAO;QAAE,GAAG,EAAE,MAAM;QAAE,GAAG,EAAE,MAAM;QAAE,GAAG,EAAE,OAAO;QAAE,GAAG,EAAE;MAAS,CAAC,CAA4BA,CAAC,CAAC;IAAA,CAAC,CAC1G;EACH,CAAC,CAAC,CACDF,OAAO,CACN,QAAQ,EACR,UAACE,CAAS;IAAA,OAAO;MAAE,GAAG,EAAE,MAAM;MAAE,GAAG,EAAE,MAAM;MAAE,GAAG,EAAE,OAAO;MAAE,GAAG,EAAE;IAAS,CAAC,CAA4BA,CAAC,CAAC;EAAA,CAAC,CAC1G;AACL;AAIe,SAASC,QAAQ,CAACC,KAAoB,EAAE;EACrD,IAAQC,SAAS,GAAKD,KAAK,CAAnBC,SAAS;EACjB,kBAAqD,IAAAC,iBAAU,EAACC,sBAAa,CAAC;IAAA,mCAAtEC,QAAQ;IAARA,QAAQ,qCAAG,EAAE;IAAEC,eAAe,eAAfA,eAAe;IAAEC,QAAQ,eAARA,QAAQ;EAChD,IAAMC,MAAM,gBAAGC,iBAAK,CAACC,SAAS,EAAkB;EAChD,IAAAC,gBAAS,EAAC,YAAM;IACd,IAAIH,MAAM,CAACI,OAAO,IAAIL,QAAQ,EAAE;MAC9BA,QAAQ,CAAC;QAAEM,WAAW,EAAEL,MAAM,CAACI;MAAQ,CAAC,CAAC;IAC3C;IACA;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO,IAAAE,cAAO,EAAC,YAAM;IACnB,IAAI,CAACT,QAAQ,EAAE;MACb,oBAAO;QAAK,GAAG,EAAEG,MAAO;QAAC,SAAS,YAAKN,SAAS;MAAgC,EAAG;IACrF;IACA,IAAIa,KAAK,4CAAoCb,SAAS,+EAAkEP,WAAW,CACjIU,QAAQ,CACT,oBAAiB;IAElB,IAAIC,eAAe,EAAE;MACnB,IAAI;QACFS,KAAK,GAAG,IAAAC,cAAM,GAAE,CACbC,IAAI,CAAC,UAAU,EAAE;UAAEC,QAAQ,EAAE;QAAK,CAAC,CAAC,CACpCC,GAAG,CAACC,2BAAW,EAAE;UAAEC,aAAa,EAAE;QAAK,CAAC,CAAC,CACzCC,WAAW,CAACP,KAAK,CAAC,CAClBQ,QAAQ,EAAE;MACf,CAAC,CAAC,OAAOC,KAAK,EAAE,CAAC;IACnB;IAEA,oBAAOf,iBAAK,CAACgB,aAAa,CAAC,KAAK,EAAE;MAChCC,SAAS,EAAE,qBAAqB;MAChCC,uBAAuB,EAAE;QAAEC,MAAM,EAAEb,KAAK,IAAI;MAAG;IACjD,CAAC,CAAC;EACJ,CAAC,EAAE,CAACV,QAAQ,EAAEG,MAAM,EAAEN,SAAS,CAAC,CAAC;AACnC;AAAC"
46
46
  }
@@ -1,59 +1,41 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
-
5
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports["default"] = Textarea;
11
-
12
9
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
13
-
14
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
-
16
11
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
17
-
18
12
  var _react = _interopRequireWildcard(require("react"));
19
-
20
13
  var _Context = require("../../Context");
21
-
22
14
  var _commands = require("../../commands");
23
-
24
15
  var _handleKeyDown = _interopRequireDefault(require("./handleKeyDown"));
25
-
26
16
  var _shortcuts = _interopRequireDefault(require("./shortcuts"));
27
-
28
17
  var _jsxRuntime = require("react/jsx-runtime");
29
-
30
18
  var _excluded = ["prefixCls", "onChange"];
31
-
32
19
  function Textarea(props) {
33
20
  var prefixCls = props.prefixCls,
34
- _onChange = props.onChange,
35
- other = (0, _objectWithoutProperties2["default"])(props, _excluded);
36
-
21
+ _onChange = props.onChange,
22
+ other = (0, _objectWithoutProperties2["default"])(props, _excluded);
37
23
  var _useContext = (0, _react.useContext)(_Context.EditorContext),
38
- markdown = _useContext.markdown,
39
- commands = _useContext.commands,
40
- fullscreen = _useContext.fullscreen,
41
- preview = _useContext.preview,
42
- highlightEnable = _useContext.highlightEnable,
43
- extraCommands = _useContext.extraCommands,
44
- tabSize = _useContext.tabSize,
45
- defaultTabEnable = _useContext.defaultTabEnable,
46
- dispatch = _useContext.dispatch;
47
-
24
+ markdown = _useContext.markdown,
25
+ commands = _useContext.commands,
26
+ fullscreen = _useContext.fullscreen,
27
+ preview = _useContext.preview,
28
+ highlightEnable = _useContext.highlightEnable,
29
+ extraCommands = _useContext.extraCommands,
30
+ tabSize = _useContext.tabSize,
31
+ defaultTabEnable = _useContext.defaultTabEnable,
32
+ dispatch = _useContext.dispatch;
48
33
  var textRef = _react["default"].useRef(null);
49
-
50
34
  var executeRef = _react["default"].useRef();
51
-
52
35
  var statesRef = _react["default"].useRef({
53
36
  fullscreen: fullscreen,
54
37
  preview: preview
55
38
  });
56
-
57
39
  (0, _react.useEffect)(function () {
58
40
  statesRef.current = {
59
41
  fullscreen: fullscreen,
@@ -69,26 +51,24 @@ function Textarea(props) {
69
51
  textarea: textRef.current,
70
52
  commandOrchestrator: commandOrchestrator
71
53
  });
72
- } // eslint-disable-next-line react-hooks/exhaustive-deps
73
-
54
+ }
55
+ // eslint-disable-next-line react-hooks/exhaustive-deps
74
56
  }, []);
75
-
76
57
  var onKeyDown = function onKeyDown(e) {
77
58
  (0, _handleKeyDown["default"])(e, tabSize, defaultTabEnable);
78
59
  (0, _shortcuts["default"])(e, [].concat((0, _toConsumableArray2["default"])(commands || []), (0, _toConsumableArray2["default"])(extraCommands || [])), executeRef.current, dispatch, statesRef.current);
79
60
  };
80
-
81
61
  (0, _react.useEffect)(function () {
82
62
  if (textRef.current) {
83
63
  textRef.current.addEventListener('keydown', onKeyDown);
84
64
  }
85
-
86
65
  return function () {
87
66
  if (textRef.current) {
88
67
  // eslint-disable-next-line react-hooks/exhaustive-deps
89
68
  textRef.current.removeEventListener('keydown', onKeyDown);
90
69
  }
91
- }; // eslint-disable-next-line react-hooks/exhaustive-deps
70
+ };
71
+ // eslint-disable-next-line react-hooks/exhaustive-deps
92
72
  }, []);
93
73
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("textarea", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({
94
74
  autoComplete: "off",
@@ -107,6 +87,5 @@ function Textarea(props) {
107
87
  }
108
88
  }));
109
89
  }
110
-
111
90
  module.exports = exports.default;
112
91
  //# sourceMappingURL=Textarea.js.map
@@ -43,5 +43,5 @@
43
43
  "sourcesContent": [
44
44
  "import React, { useContext, useEffect } from 'react';\nimport { IProps } from '../../Editor';\nimport { EditorContext, ExecuteCommandState } from '../../Context';\nimport { TextAreaCommandOrchestrator } from '../../commands';\nimport handleKeyDown from './handleKeyDown';\nimport shortcuts from './shortcuts';\nimport './index.less';\n\nexport interface TextAreaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'value'>, IProps {}\n\nexport default function Textarea(props: TextAreaProps) {\n const { prefixCls, onChange, ...other } = props;\n const {\n markdown,\n commands,\n fullscreen,\n preview,\n highlightEnable,\n extraCommands,\n tabSize,\n defaultTabEnable,\n dispatch,\n } = useContext(EditorContext);\n const textRef = React.useRef<HTMLTextAreaElement>(null);\n const executeRef = React.useRef<TextAreaCommandOrchestrator>();\n const statesRef = React.useRef<ExecuteCommandState>({ fullscreen, preview });\n\n useEffect(() => {\n statesRef.current = { fullscreen, preview, highlightEnable };\n }, [fullscreen, preview, highlightEnable]);\n\n useEffect(() => {\n if (textRef.current && dispatch) {\n const commandOrchestrator = new TextAreaCommandOrchestrator(textRef.current);\n executeRef.current = commandOrchestrator;\n dispatch({ textarea: textRef.current, commandOrchestrator });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const onKeyDown = (e: KeyboardEvent | React.KeyboardEvent<HTMLTextAreaElement>) => {\n handleKeyDown(e, tabSize, defaultTabEnable);\n shortcuts(e, [...(commands || []), ...(extraCommands || [])], executeRef.current, dispatch, statesRef.current);\n };\n useEffect(() => {\n if (textRef.current) {\n textRef.current.addEventListener('keydown', onKeyDown);\n }\n return () => {\n if (textRef.current) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n textRef.current.removeEventListener('keydown', onKeyDown);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <textarea\n autoComplete=\"off\"\n autoCorrect=\"off\"\n autoCapitalize=\"off\"\n spellCheck={false}\n {...other}\n ref={textRef}\n className={`${prefixCls}-text-input ${other.className ? other.className : ''}`}\n value={markdown}\n onChange={(e) => {\n dispatch && dispatch({ markdown: e.target.value });\n onChange && onChange(e);\n }}\n />\n );\n}\n"
45
45
  ],
46
- "mappings": "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"
46
+ "mappings": "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"
47
47
  }
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports["default"] = handleKeyDown;
7
-
8
7
  var _InsertTextAtPosition = require("../../utils/InsertTextAtPosition");
9
-
10
8
  var _commands = require("../../commands");
11
-
12
9
  var _list = require("../../commands/list");
13
-
14
10
  /**
15
11
  * - `13` - `Enter`
16
12
  * - `9` - `Tab`
@@ -19,7 +15,6 @@ function stopPropagation(e) {
19
15
  e.stopPropagation();
20
16
  e.preventDefault();
21
17
  }
22
-
23
18
  function handleKeyDown(e) {
24
19
  var tabSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
25
20
  var defaultTabEnable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
@@ -28,27 +23,22 @@ function handleKeyDown(e) {
28
23
  var valArr = starVal.split('\n');
29
24
  var currentLineStr = valArr[valArr.length - 1];
30
25
  var textArea = new _commands.TextAreaTextApi(target);
26
+
31
27
  /**
32
28
  * `9` - `Tab`
33
29
  */
34
-
35
30
  if (!defaultTabEnable && e.code && e.code.toLowerCase() === 'tab') {
36
31
  stopPropagation(e);
37
32
  var space = new Array(tabSize + 1).join(' ');
38
-
39
33
  if (target.selectionStart !== target.selectionEnd) {
40
34
  var _star = target.value.substring(0, target.selectionStart).split('\n');
41
-
42
35
  var _end = target.value.substring(0, target.selectionEnd).split('\n');
43
-
44
36
  var modifiedTextLine = [];
45
-
46
37
  _end.forEach(function (item, idx) {
47
38
  if (item !== _star[idx]) {
48
39
  modifiedTextLine.push(item);
49
40
  }
50
41
  });
51
-
52
42
  var modifiedText = modifiedTextLine.join('\n');
53
43
  var oldSelectText = target.value.substring(target.selectionStart, target.selectionEnd);
54
44
  var newStarNum = target.value.substring(0, target.selectionStart).length;
@@ -58,13 +48,11 @@ function handleKeyDown(e) {
58
48
  });
59
49
  var modifiedTextObj = (0, _list.insertBeforeEachLine)(modifiedText, e.shiftKey ? '' : space);
60
50
  var text = modifiedTextObj.modifiedText;
61
-
62
51
  if (e.shiftKey) {
63
52
  text = text.split('\n').map(function (item) {
64
53
  return item.replace(new RegExp("^".concat(space)), '');
65
54
  }).join('\n');
66
55
  }
67
-
68
56
  textArea.replaceSelection(text);
69
57
  var startTabSize = e.shiftKey ? -tabSize : tabSize;
70
58
  var endTabSize = e.shiftKey ? -modifiedTextLine.length * tabSize : modifiedTextLine.length * tabSize;
@@ -81,24 +69,19 @@ function handleKeyDown(e) {
81
69
  */
82
70
  stopPropagation(e);
83
71
  var startStr = '\n- ';
84
-
85
72
  if (currentLineStr.startsWith('*')) {
86
73
  startStr = '\n* ';
87
74
  }
88
-
89
75
  if (currentLineStr.startsWith('- [ ]')) {
90
76
  startStr = '\n- [ ] ';
91
77
  } else if (currentLineStr.startsWith('- [X]')) {
92
78
  startStr = '\n- [X] ';
93
79
  }
94
-
95
80
  if (/^\d+.\s/.test(currentLineStr)) {
96
81
  startStr = "\n".concat(parseInt(currentLineStr) + 1, ". ");
97
82
  }
98
-
99
83
  return (0, _InsertTextAtPosition.insertTextAtPosition)(target, startStr);
100
84
  }
101
85
  }
102
-
103
86
  module.exports = exports.default;
104
87
  //# sourceMappingURL=handleKeyDown.js.map
@@ -61,5 +61,5 @@
61
61
  "sourcesContent": [
62
62
  "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"
63
63
  ],
64
- "mappings": "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"
64
+ "mappings": "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"
65
65
  }
@@ -1,80 +1,59 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
-
5
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports["default"] = TextArea;
11
-
12
9
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
13
-
14
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
-
16
11
  var _react = _interopRequireWildcard(require("react"));
17
-
18
12
  var _Context = require("../../Context");
19
-
20
13
  var _shortcuts = _interopRequireDefault(require("./shortcuts"));
21
-
22
14
  var _Markdown = _interopRequireDefault(require("./Markdown"));
23
-
24
15
  var _Textarea = _interopRequireDefault(require("./Textarea"));
25
-
26
16
  var _commands = require("../../commands");
27
-
28
17
  var _jsxRuntime = require("react/jsx-runtime");
29
-
30
18
  var _excluded = ["prefixCls", "className", "onScroll", "renderTextarea"];
31
-
32
19
  function TextArea(props) {
33
20
  var _ref = props || {},
34
- prefixCls = _ref.prefixCls,
35
- className = _ref.className,
36
- onScroll = _ref.onScroll,
37
- renderTextarea = _ref.renderTextarea,
38
- otherProps = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
39
-
21
+ prefixCls = _ref.prefixCls,
22
+ className = _ref.className,
23
+ onScroll = _ref.onScroll,
24
+ renderTextarea = _ref.renderTextarea,
25
+ otherProps = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
40
26
  var _useContext = (0, _react.useContext)(_Context.EditorContext),
41
- markdown = _useContext.markdown,
42
- scrollTop = _useContext.scrollTop,
43
- commands = _useContext.commands,
44
- highlightEnable = _useContext.highlightEnable,
45
- extraCommands = _useContext.extraCommands,
46
- dispatch = _useContext.dispatch;
47
-
27
+ markdown = _useContext.markdown,
28
+ scrollTop = _useContext.scrollTop,
29
+ commands = _useContext.commands,
30
+ highlightEnable = _useContext.highlightEnable,
31
+ extraCommands = _useContext.extraCommands,
32
+ dispatch = _useContext.dispatch;
48
33
  var textRef = _react["default"].useRef(null);
49
-
50
34
  var executeRef = _react["default"].useRef();
51
-
52
35
  var warp = /*#__PURE__*/_react["default"].createRef();
53
-
54
36
  (0, _react.useEffect)(function () {
55
37
  var state = {};
56
-
57
38
  if (warp.current) {
58
39
  state.textareaWarp = warp.current || undefined;
59
40
  warp.current.scrollTop = scrollTop || 0;
60
41
  }
61
-
62
42
  if (dispatch) {
63
43
  dispatch((0, _objectSpread2["default"])({}, state));
64
- } // eslint-disable-next-line react-hooks/exhaustive-deps
65
-
44
+ }
45
+ // eslint-disable-next-line react-hooks/exhaustive-deps
66
46
  }, []);
67
47
  (0, _react.useEffect)(function () {
68
48
  if (textRef.current && dispatch) {
69
49
  var _commandOrchestrator = new _commands.TextAreaCommandOrchestrator(textRef.current);
70
-
71
50
  executeRef.current = _commandOrchestrator;
72
51
  dispatch({
73
52
  textarea: textRef.current,
74
53
  commandOrchestrator: _commandOrchestrator
75
54
  });
76
- } // eslint-disable-next-line react-hooks/exhaustive-deps
77
-
55
+ }
56
+ // eslint-disable-next-line react-hooks/exhaustive-deps
78
57
  }, []);
79
58
  var textStyle = highlightEnable ? {} : {
80
59
  WebkitTextFillColor: 'initial',
@@ -120,6 +99,5 @@ function TextArea(props) {
120
99
  })
121
100
  });
122
101
  }
123
-
124
102
  module.exports = exports.default;
125
103
  //# sourceMappingURL=index.js.map
@@ -50,5 +50,5 @@
50
50
  "sourcesContent": [
51
51
  "import React, { useEffect, Fragment, useContext } from 'react';\nimport { EditorContext, ContextStore, ExecuteCommandState } from '../../Context';\nimport shortcuts from './shortcuts';\nimport Markdown from './Markdown';\nimport Textarea, { TextAreaProps } from './Textarea';\nimport { IProps } from '../../Editor';\nimport { TextAreaCommandOrchestrator, ICommand } from '../../commands';\nimport './index.less';\n\ntype RenderTextareaHandle = {\n dispatch: ContextStore['dispatch'];\n onChange?: TextAreaProps['onChange'];\n useContext?: {\n commands: ContextStore['commands'];\n extraCommands: ContextStore['extraCommands'];\n commandOrchestrator?: TextAreaCommandOrchestrator;\n };\n shortcuts?: (\n e: KeyboardEvent | React.KeyboardEvent<HTMLTextAreaElement>,\n commands: ICommand[],\n commandOrchestrator?: TextAreaCommandOrchestrator,\n dispatch?: React.Dispatch<ContextStore>,\n state?: ExecuteCommandState,\n ) => void;\n};\n\nexport interface ITextAreaProps\n extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'value' | 'onScroll'>,\n IProps {\n value?: string;\n onScroll?: (e: React.UIEvent<HTMLDivElement>) => void;\n renderTextarea?: (\n props: React.TextareaHTMLAttributes<HTMLTextAreaElement> | React.HTMLAttributes<HTMLDivElement>,\n opts: RenderTextareaHandle,\n ) => JSX.Element;\n}\n\nexport type TextAreaRef = {\n text?: HTMLTextAreaElement;\n warp?: HTMLDivElement;\n};\n\nexport default function TextArea(props: ITextAreaProps) {\n const { prefixCls, className, onScroll, renderTextarea, ...otherProps } = props || {};\n const { markdown, scrollTop, commands, highlightEnable, extraCommands, dispatch } = useContext(EditorContext);\n const textRef = React.useRef<HTMLTextAreaElement>(null);\n const executeRef = React.useRef<TextAreaCommandOrchestrator>();\n const warp = React.createRef<HTMLDivElement>();\n useEffect(() => {\n const state: ContextStore = {};\n if (warp.current) {\n state.textareaWarp = warp.current || undefined;\n warp.current.scrollTop = scrollTop || 0;\n }\n if (dispatch) {\n dispatch({ ...state });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (textRef.current && dispatch) {\n const commandOrchestrator = new TextAreaCommandOrchestrator(textRef.current);\n executeRef.current = commandOrchestrator;\n dispatch({ textarea: textRef.current, commandOrchestrator });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const textStyle: React.CSSProperties = highlightEnable ? {} : { WebkitTextFillColor: 'initial', overflow: 'auto' };\n\n return (\n <div ref={warp} className={`${prefixCls}-aree ${className || ''}`} onScroll={onScroll}>\n <div className={`${prefixCls}-text`}>\n {renderTextarea ? (\n React.cloneElement(\n renderTextarea(\n {\n ...otherProps,\n value: markdown,\n autoComplete: 'off',\n autoCorrect: 'off',\n spellCheck: 'false',\n autoCapitalize: 'off',\n className: `${prefixCls}-text-input`,\n style: {\n WebkitTextFillColor: 'inherit',\n overflow: 'auto',\n },\n },\n {\n dispatch,\n onChange: otherProps.onChange,\n shortcuts,\n useContext: { commands, extraCommands, commandOrchestrator: executeRef.current },\n },\n ),\n {\n ref: textRef,\n },\n )\n ) : (\n <Fragment>\n {highlightEnable && <Markdown prefixCls={prefixCls} />}\n <Textarea prefixCls={prefixCls} {...otherProps} style={textStyle} />\n </Fragment>\n )}\n </div>\n </div>\n );\n}\n"
52
52
  ],
53
- "mappings": "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"
53
+ "mappings": "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"
54
54
  }