@uiw/react-md-editor 3.6.3 → 3.7.0

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/README.md CHANGED
@@ -23,8 +23,8 @@
23
23
  <a href="https://bundlephobia.com/package/@uiw/react-md-editor" target="__blank">
24
24
  <img alt="npm bundle size" src="https://img.shields.io/bundlephobia/minzip/@uiw/react-md-editor">
25
25
  </a>
26
- <a href="https://coveralls.io/github/uiwjs/react-md-editor?branch=master" target="__blank">
27
- <img alt="Coverage Status" src="https://coveralls.io/repos/github/uiwjs/react-md-editor/badge.svg?branch=master" />
26
+ <a href="https://uiwjs.github.io/react-md-editor/coverage/lcov-report" target="__blank">
27
+ <img alt="Coverage Status" src="https://uiwjs.github.io/react-md-editor/coverage/badges.svg" />
28
28
  </a>
29
29
  </p>
30
30
 
@@ -367,16 +367,18 @@ module.exports = removeImports({});
367
367
  import "@uiw/react-md-editor/markdown-editor.css";
368
368
  import "@uiw/react-markdown-preview/markdown.css";
369
369
  import dynamic from "next/dynamic";
370
+ import { useState } from "react";
370
371
 
371
372
  const MDEditor = dynamic(
372
- () => import("@uiw/react-md-editor").then((mod) => mod.default),
373
+ () => import("@uiw/react-md-editor"),
373
374
  { ssr: false }
374
375
  );
375
376
 
376
377
  function HomePage() {
378
+ const [value, setValue] = useState("**Hello world!!!**");
377
379
  return (
378
380
  <div>
379
- <MDEditor value="**Hello world!!!**" />
381
+ <MDEditor value={value} onChange={setValue} />
380
382
  </div>
381
383
  );
382
384
  }
package/esm/Editor.js CHANGED
@@ -198,7 +198,7 @@ var InternalMDEditor = (props, ref) => {
198
198
  onScroll: e => handleScroll(e, 'preview'),
199
199
  ref: previewRef,
200
200
  source: state.markdown || '',
201
- className: prefixCls + "-preview"
201
+ className: prefixCls + "-preview " + (previewOptions.className || '')
202
202
  }))]
203
203
  }), visiableDragbar && !state.fullscreen && /*#__PURE__*/_jsx(DragBar, {
204
204
  prefixCls: prefixCls,
package/esm/Editor.js.map CHANGED
@@ -91,8 +91,8 @@
91
91
  "forwardRef",
92
92
  "Markdown"
93
93
  ],
94
- "mappings": "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",
94
+ "mappings": "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",
95
95
  "sourcesContent": [
96
- "import React, { useEffect, useReducer, useMemo, useRef, useImperativeHandle } from 'react';\nimport MarkdownPreview, { MarkdownPreviewProps, MarkdownPreviewRef } from '@uiw/react-markdown-preview';\nimport TextArea, { ITextAreaProps } from './components/TextArea';\nimport Toolbar from './components/Toolbar';\nimport DragBar from './components/DragBar';\nimport { getCommands, getExtraCommands, ICommand } from './commands';\nimport { reducer, EditorContext, ContextStore, PreviewType } from './Context';\nimport './index.less';\n\nexport interface IProps {\n prefixCls?: string;\n className?: string;\n}\n\nexport interface MDEditorProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'>, IProps {\n /**\n * The Markdown value.\n */\n value?: string;\n /**\n * Event handler for the `onChange` event.\n */\n onChange?: (value?: string) => void;\n /**\n * Can be used to make `Markdown Editor` focus itself on initialization. Defaults to on.\n * it will be set to true when either the source `textarea` is focused,\n * or it has an `autofocus` attribute and no other element is focused.\n */\n autoFocus?: ITextAreaProps['autoFocus'];\n /**\n * The height of the editor.\n */\n height?: number;\n /**\n * Custom toolbar heigth\n * @default 29px\n */\n toolbarHeight?: number;\n /**\n * Show drag and drop tool. Set the height of the editor.\n */\n visiableDragbar?: boolean;\n /**\n * Show markdown preview.\n */\n preview?: PreviewType;\n /**\n * Full screen display editor.\n */\n fullscreen?: boolean;\n /**\n * Maximum drag height. `visiableDragbar=true`\n */\n maxHeight?: number;\n /**\n * Minimum drag height. `visiableDragbar=true`\n */\n minHeight?: number;\n /**\n * This is reset [react-markdown](https://github.com/rexxars/react-markdown) settings.\n */\n previewOptions?: Omit<MarkdownPreviewProps, 'source'>;\n /**\n * Set the `textarea` related props.\n */\n textareaProps?: ITextAreaProps;\n /** Use div to replace TextArea or re-render TextArea */\n renderTextarea?: ITextAreaProps['renderTextarea'];\n /**\n * Disable editing area code highlighting. The value is `false`, which increases the editing speed.\n * @default true\n */\n highlightEnable?: boolean;\n /**\n * The number of characters to insert when pressing tab key.\n * Default `2` spaces.\n */\n tabSize?: number;\n /**\n * You can create your own commands or reuse existing commands.\n */\n commands?: ICommand[];\n /**\n * You can create your own commands or reuse existing commands.\n */\n extraCommands?: ICommand[];\n /**\n * Hide the tool bar\n */\n hideToolbar?: boolean;\n /** Whether to enable scrolling */\n enableScroll?: boolean;\n}\n\nfunction setGroupPopFalse(data: Record<string, boolean> = {}) {\n Object.keys(data).forEach((keyname) => {\n data[keyname] = false;\n });\n return data;\n}\n\nconst InternalMDEditor = (\n props: MDEditorProps,\n ref?: ((instance: ContextStore) => void) | React.RefObject<ContextStore> | null,\n) => {\n const {\n prefixCls = 'w-md-editor',\n className,\n value: propsValue,\n commands = getCommands(),\n extraCommands = getExtraCommands(),\n height = 200,\n toolbarHeight = 29,\n enableScroll = true,\n visiableDragbar = true,\n highlightEnable = true,\n preview: previewType = 'live',\n fullscreen = false,\n previewOptions = {},\n textareaProps,\n maxHeight = 1200,\n minHeight = 100,\n autoFocus,\n tabSize = 2,\n onChange,\n hideToolbar,\n renderTextarea,\n ...other\n } = props || {};\n let [state, dispatch] = useReducer(reducer, {\n markdown: propsValue,\n preview: previewType,\n height,\n highlightEnable,\n tabSize,\n scrollTop: 0,\n scrollTopPreview: 0,\n commands,\n extraCommands,\n fullscreen,\n onChange,\n barPopup: {},\n });\n const container = useRef<HTMLDivElement>(null);\n const previewRef = useRef<MarkdownPreviewRef>(null);\n const enableScrollRef = useRef(enableScroll);\n\n useImperativeHandle(ref, () => ({ ...state }));\n useMemo(() => (enableScrollRef.current = enableScroll), [enableScroll]);\n useEffect(() => {\n const stateInit: ContextStore = {};\n if (container.current) {\n stateInit.container = container.current || undefined;\n }\n stateInit.markdown = propsValue || '';\n stateInit.barPopup = {};\n if (dispatch) {\n dispatch({ ...state, ...stateInit });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const cls = [\n className,\n prefixCls,\n state.preview ? `${prefixCls}-show-${state.preview}` : null,\n state.fullscreen ? `${prefixCls}-fullscreen` : null,\n ]\n .filter(Boolean)\n .join(' ')\n .trim();\n\n useMemo(\n () => propsValue !== state.markdown && dispatch({ markdown: propsValue || '' }),\n [propsValue, state.markdown],\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useMemo(() => previewType !== state.preview && dispatch({ preview: previewType }), [previewType]);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useMemo(() => height !== state.height && dispatch({ height: height }), [height]);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useMemo(() => tabSize !== state.tabSize && dispatch({ tabSize }), [tabSize]);\n useMemo(\n () => highlightEnable !== state.highlightEnable && dispatch({ highlightEnable }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [highlightEnable],\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useMemo(() => autoFocus !== state.autoFocus && dispatch({ autoFocus: autoFocus }), [autoFocus]);\n useMemo(\n () => fullscreen !== state.fullscreen && dispatch({ fullscreen: fullscreen }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [fullscreen],\n );\n\n const textareaDomRef = useRef<HTMLDivElement>();\n const active = useRef<'text' | 'preview'>('preview');\n const initScroll = useRef(false);\n\n useMemo(() => {\n textareaDomRef.current = state.textareaWarp;\n if (state.textareaWarp) {\n state.textareaWarp.addEventListener('mouseover', () => {\n active.current = 'text';\n });\n state.textareaWarp.addEventListener('mouseleave', () => {\n active.current = 'preview';\n });\n }\n }, [state.textareaWarp]);\n\n const handleScroll = (e: React.UIEvent<HTMLDivElement>, type: 'text' | 'preview') => {\n if (!enableScrollRef.current) return;\n const textareaDom = textareaDomRef.current;\n const previewDom = previewRef.current ? previewRef.current.mdp.current : undefined;\n if (!initScroll.current) {\n active.current = type;\n initScroll.current = true;\n }\n if (textareaDom && previewDom) {\n const scale =\n (textareaDom.scrollHeight - textareaDom.offsetHeight) / (previewDom.scrollHeight - previewDom.offsetHeight);\n if (e.target === textareaDom && active.current === 'text') {\n previewDom.scrollTop = textareaDom.scrollTop / scale;\n }\n if (e.target === previewDom && active.current === 'preview') {\n textareaDom.scrollTop = previewDom.scrollTop * scale;\n }\n let scrollTop = 0;\n if (active.current === 'text') {\n scrollTop = textareaDom.scrollTop || 0;\n } else if (active.current === 'preview') {\n scrollTop = previewDom.scrollTop || 0;\n }\n dispatch({ scrollTop });\n }\n };\n\n return (\n <EditorContext.Provider value={{ ...state, dispatch }}>\n <div\n ref={container}\n className={cls}\n {...other}\n onClick={() => {\n dispatch({ barPopup: { ...setGroupPopFalse(state.barPopup) } });\n }}\n style={{\n ...other.style,\n height: state.fullscreen ? '100%' : hideToolbar ? Number(state.height) - toolbarHeight : state.height,\n }}\n >\n {!hideToolbar && <Toolbar prefixCls={prefixCls} height={toolbarHeight} />}\n <div\n className={`${prefixCls}-content`}\n style={{\n height: state.fullscreen ? `calc(100% - ${toolbarHeight}px)` : Number(state.height) - toolbarHeight,\n }}\n >\n {/(edit|live)/.test(state.preview || '') && (\n <TextArea\n className={`${prefixCls}-input`}\n prefixCls={prefixCls}\n autoFocus={autoFocus}\n {...textareaProps}\n renderTextarea={renderTextarea}\n onScroll={(e) => handleScroll(e, 'text')}\n />\n )}\n {/(live|preview)/.test(state.preview || '') && (\n <MarkdownPreview\n {...(previewOptions as unknown)}\n onScroll={(e) => handleScroll(e, 'preview')}\n ref={previewRef}\n source={state.markdown || ''}\n className={`${prefixCls}-preview`}\n />\n )}\n </div>\n {visiableDragbar && !state.fullscreen && (\n <DragBar\n prefixCls={prefixCls}\n height={state.height as number}\n maxHeight={maxHeight!}\n minHeight={minHeight!}\n onChange={(newHeight) => {\n dispatch({ height: newHeight });\n }}\n />\n )}\n </div>\n </EditorContext.Provider>\n );\n};\n\nconst mdEditor = React.forwardRef<ContextStore, MDEditorProps>(InternalMDEditor);\n\ntype MDEditor = typeof mdEditor & {\n Markdown: typeof MarkdownPreview;\n};\n\n(mdEditor as MDEditor).Markdown = MarkdownPreview;\n\nexport default mdEditor as MDEditor;\n"
96
+ "import React, { useEffect, useReducer, useMemo, useRef, useImperativeHandle } from 'react';\nimport MarkdownPreview, { MarkdownPreviewProps, MarkdownPreviewRef } from '@uiw/react-markdown-preview';\nimport TextArea, { ITextAreaProps } from './components/TextArea';\nimport Toolbar from './components/Toolbar';\nimport DragBar from './components/DragBar';\nimport { getCommands, getExtraCommands, ICommand } from './commands';\nimport { reducer, EditorContext, ContextStore, PreviewType } from './Context';\nimport './index.less';\n\nexport interface IProps {\n prefixCls?: string;\n className?: string;\n}\n\nexport interface MDEditorProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'>, IProps {\n /**\n * The Markdown value.\n */\n value?: string;\n /**\n * Event handler for the `onChange` event.\n */\n onChange?: (value?: string) => void;\n /**\n * Can be used to make `Markdown Editor` focus itself on initialization. Defaults to on.\n * it will be set to true when either the source `textarea` is focused,\n * or it has an `autofocus` attribute and no other element is focused.\n */\n autoFocus?: ITextAreaProps['autoFocus'];\n /**\n * The height of the editor.\n */\n height?: number;\n /**\n * Custom toolbar heigth\n * @default 29px\n */\n toolbarHeight?: number;\n /**\n * Show drag and drop tool. Set the height of the editor.\n */\n visiableDragbar?: boolean;\n /**\n * Show markdown preview.\n */\n preview?: PreviewType;\n /**\n * Full screen display editor.\n */\n fullscreen?: boolean;\n /**\n * Maximum drag height. `visiableDragbar=true`\n */\n maxHeight?: number;\n /**\n * Minimum drag height. `visiableDragbar=true`\n */\n minHeight?: number;\n /**\n * This is reset [react-markdown](https://github.com/rexxars/react-markdown) settings.\n */\n previewOptions?: Omit<MarkdownPreviewProps, 'source'>;\n /**\n * Set the `textarea` related props.\n */\n textareaProps?: ITextAreaProps;\n /** Use div to replace TextArea or re-render TextArea */\n renderTextarea?: ITextAreaProps['renderTextarea'];\n /**\n * Disable editing area code highlighting. The value is `false`, which increases the editing speed.\n * @default true\n */\n highlightEnable?: boolean;\n /**\n * The number of characters to insert when pressing tab key.\n * Default `2` spaces.\n */\n tabSize?: number;\n /**\n * You can create your own commands or reuse existing commands.\n */\n commands?: ICommand[];\n /**\n * You can create your own commands or reuse existing commands.\n */\n extraCommands?: ICommand[];\n /**\n * Hide the tool bar\n */\n hideToolbar?: boolean;\n /** Whether to enable scrolling */\n enableScroll?: boolean;\n}\n\nfunction setGroupPopFalse(data: Record<string, boolean> = {}) {\n Object.keys(data).forEach((keyname) => {\n data[keyname] = false;\n });\n return data;\n}\n\nconst InternalMDEditor = (\n props: MDEditorProps,\n ref?: ((instance: ContextStore) => void) | React.RefObject<ContextStore> | null,\n) => {\n const {\n prefixCls = 'w-md-editor',\n className,\n value: propsValue,\n commands = getCommands(),\n extraCommands = getExtraCommands(),\n height = 200,\n toolbarHeight = 29,\n enableScroll = true,\n visiableDragbar = true,\n highlightEnable = true,\n preview: previewType = 'live',\n fullscreen = false,\n previewOptions = {},\n textareaProps,\n maxHeight = 1200,\n minHeight = 100,\n autoFocus,\n tabSize = 2,\n onChange,\n hideToolbar,\n renderTextarea,\n ...other\n } = props || {};\n let [state, dispatch] = useReducer(reducer, {\n markdown: propsValue,\n preview: previewType,\n height,\n highlightEnable,\n tabSize,\n scrollTop: 0,\n scrollTopPreview: 0,\n commands,\n extraCommands,\n fullscreen,\n onChange,\n barPopup: {},\n });\n const container = useRef<HTMLDivElement>(null);\n const previewRef = useRef<MarkdownPreviewRef>(null);\n const enableScrollRef = useRef(enableScroll);\n\n useImperativeHandle(ref, () => ({ ...state }));\n useMemo(() => (enableScrollRef.current = enableScroll), [enableScroll]);\n useEffect(() => {\n const stateInit: ContextStore = {};\n if (container.current) {\n stateInit.container = container.current || undefined;\n }\n stateInit.markdown = propsValue || '';\n stateInit.barPopup = {};\n if (dispatch) {\n dispatch({ ...state, ...stateInit });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const cls = [\n className,\n prefixCls,\n state.preview ? `${prefixCls}-show-${state.preview}` : null,\n state.fullscreen ? `${prefixCls}-fullscreen` : null,\n ]\n .filter(Boolean)\n .join(' ')\n .trim();\n\n useMemo(\n () => propsValue !== state.markdown && dispatch({ markdown: propsValue || '' }),\n [propsValue, state.markdown],\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useMemo(() => previewType !== state.preview && dispatch({ preview: previewType }), [previewType]);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useMemo(() => height !== state.height && dispatch({ height: height }), [height]);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useMemo(() => tabSize !== state.tabSize && dispatch({ tabSize }), [tabSize]);\n useMemo(\n () => highlightEnable !== state.highlightEnable && dispatch({ highlightEnable }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [highlightEnable],\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useMemo(() => autoFocus !== state.autoFocus && dispatch({ autoFocus: autoFocus }), [autoFocus]);\n useMemo(\n () => fullscreen !== state.fullscreen && dispatch({ fullscreen: fullscreen }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [fullscreen],\n );\n\n const textareaDomRef = useRef<HTMLDivElement>();\n const active = useRef<'text' | 'preview'>('preview');\n const initScroll = useRef(false);\n\n useMemo(() => {\n textareaDomRef.current = state.textareaWarp;\n if (state.textareaWarp) {\n state.textareaWarp.addEventListener('mouseover', () => {\n active.current = 'text';\n });\n state.textareaWarp.addEventListener('mouseleave', () => {\n active.current = 'preview';\n });\n }\n }, [state.textareaWarp]);\n\n const handleScroll = (e: React.UIEvent<HTMLDivElement>, type: 'text' | 'preview') => {\n if (!enableScrollRef.current) return;\n const textareaDom = textareaDomRef.current;\n const previewDom = previewRef.current ? previewRef.current.mdp.current : undefined;\n if (!initScroll.current) {\n active.current = type;\n initScroll.current = true;\n }\n if (textareaDom && previewDom) {\n const scale =\n (textareaDom.scrollHeight - textareaDom.offsetHeight) / (previewDom.scrollHeight - previewDom.offsetHeight);\n if (e.target === textareaDom && active.current === 'text') {\n previewDom.scrollTop = textareaDom.scrollTop / scale;\n }\n if (e.target === previewDom && active.current === 'preview') {\n textareaDom.scrollTop = previewDom.scrollTop * scale;\n }\n let scrollTop = 0;\n if (active.current === 'text') {\n scrollTop = textareaDom.scrollTop || 0;\n } else if (active.current === 'preview') {\n scrollTop = previewDom.scrollTop || 0;\n }\n dispatch({ scrollTop });\n }\n };\n\n return (\n <EditorContext.Provider value={{ ...state, dispatch }}>\n <div\n ref={container}\n className={cls}\n {...other}\n onClick={() => {\n dispatch({ barPopup: { ...setGroupPopFalse(state.barPopup) } });\n }}\n style={{\n ...other.style,\n height: state.fullscreen ? '100%' : hideToolbar ? Number(state.height) - toolbarHeight : state.height,\n }}\n >\n {!hideToolbar && <Toolbar prefixCls={prefixCls} height={toolbarHeight} />}\n <div\n className={`${prefixCls}-content`}\n style={{\n height: state.fullscreen ? `calc(100% - ${toolbarHeight}px)` : Number(state.height) - toolbarHeight,\n }}\n >\n {/(edit|live)/.test(state.preview || '') && (\n <TextArea\n className={`${prefixCls}-input`}\n prefixCls={prefixCls}\n autoFocus={autoFocus}\n {...textareaProps}\n renderTextarea={renderTextarea}\n onScroll={(e) => handleScroll(e, 'text')}\n />\n )}\n {/(live|preview)/.test(state.preview || '') && (\n <MarkdownPreview\n {...previewOptions}\n onScroll={(e) => handleScroll(e, 'preview')}\n ref={previewRef}\n source={state.markdown || ''}\n className={`${prefixCls}-preview ${previewOptions.className || ''}`}\n />\n )}\n </div>\n {visiableDragbar && !state.fullscreen && (\n <DragBar\n prefixCls={prefixCls}\n height={state.height as number}\n maxHeight={maxHeight!}\n minHeight={minHeight!}\n onChange={(newHeight) => {\n dispatch({ height: newHeight });\n }}\n />\n )}\n </div>\n </EditorContext.Provider>\n );\n};\n\nconst mdEditor = React.forwardRef<ContextStore, MDEditorProps>(InternalMDEditor);\n\ntype MDEditor = typeof mdEditor & {\n Markdown: typeof MarkdownPreview;\n};\n\n(mdEditor as MDEditor).Markdown = MarkdownPreview;\n\nexport default mdEditor as MDEditor;\n"
97
97
  ]
98
98
  }
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
3
- var _excluded = ["prefixCls"];
3
+ var _excluded = ["prefixCls", "onChange"];
4
4
  import React, { useContext, useEffect } from 'react';
5
5
  import { EditorContext } from '../../Context';
6
6
  import { TextAreaCommandOrchestrator } from '../../commands';
@@ -10,7 +10,8 @@ import "./index.css";
10
10
  import { jsx as _jsx } from "react/jsx-runtime";
11
11
  export default function Textarea(props) {
12
12
  var {
13
- prefixCls
13
+ prefixCls,
14
+ onChange: onChangeFromProps
14
15
  } = props,
15
16
  other = _objectWithoutPropertiesLoose(props, _excluded);
16
17
 
@@ -81,6 +82,7 @@ export default function Textarea(props) {
81
82
  markdown: e.target.value
82
83
  });
83
84
  _onChange && _onChange(e.target.value);
85
+ onChangeFromProps && onChangeFromProps(e);
84
86
  }
85
87
  }));
86
88
  }
@@ -14,6 +14,8 @@
14
14
  "Textarea",
15
15
  "props",
16
16
  "prefixCls",
17
+ "onChange",
18
+ "onChangeFromProps",
17
19
  "other",
18
20
  "markdown",
19
21
  "commands",
@@ -22,7 +24,6 @@
22
24
  "highlightEnable",
23
25
  "extraCommands",
24
26
  "tabSize",
25
- "onChange",
26
27
  "dispatch",
27
28
  "textRef",
28
29
  "useRef",
@@ -39,8 +40,8 @@
39
40
  "target",
40
41
  "value"
41
42
  ],
42
- "mappings": "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",
43
+ "mappings": "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",
43
44
  "sourcesContent": [
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, ...other } = props;\n const { markdown, commands, fullscreen, preview, highlightEnable, extraCommands, tabSize, onChange, 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);\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.target.value);\n }}\n />\n );\n}\n"
45
+ "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: onChangeFromProps, ...other } = props;\n const { markdown, commands, fullscreen, preview, highlightEnable, extraCommands, tabSize, onChange, 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);\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.target.value);\n onChangeFromProps && onChangeFromProps(e);\n }}\n />\n );\n}\n"
45
46
  ]
46
47
  }
@@ -13,7 +13,7 @@ declare type RenderTextareaHandle = {
13
13
  };
14
14
  shortcuts?: (e: KeyboardEvent | React.KeyboardEvent<HTMLTextAreaElement>, commands: ICommand[], commandOrchestrator?: TextAreaCommandOrchestrator, dispatch?: React.Dispatch<ContextStore>, state?: ExecuteCommandState) => void;
15
15
  };
16
- export interface ITextAreaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'value' | 'onChange' | 'onScroll'>, IProps {
16
+ export interface ITextAreaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'value' | 'onScroll'>, IProps {
17
17
  value?: string;
18
18
  onScroll?: (e: React.UIEvent<HTMLDivElement>) => void;
19
19
  renderTextarea?: (props: React.TextareaHTMLAttributes<HTMLTextAreaElement> | React.HTMLAttributes<HTMLDivElement>, opts: RenderTextareaHandle) => JSX.Element;
@@ -50,6 +50,6 @@
50
50
  ],
51
51
  "mappings": "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",
52
52
  "sourcesContent": [
53
- "import React, { useEffect, Fragment, useContext } from 'react';\nimport { EditorContext, ContextStore, ExecuteCommandState } from '../../Context';\nimport shortcuts from './shortcuts';\nimport Markdown from './Markdown';\nimport Textarea from './Textarea';\nimport { MDEditorProps, IProps } from '../../Editor';\nimport { TextAreaCommandOrchestrator, ICommand } from '../../commands';\nimport './index.less';\n\ntype RenderTextareaHandle = {\n dispatch: ContextStore['dispatch'];\n onChange?: MDEditorProps['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' | 'onChange' | '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, extraCommands, onChange, 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 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,\n shortcuts,\n useContext: { commands, extraCommands, commandOrchestrator: executeRef.current },\n },\n ),\n {\n ref: textRef,\n },\n )\n ) : (\n <Fragment>\n <Markdown prefixCls={prefixCls} />\n <Textarea prefixCls={prefixCls} {...otherProps} />\n </Fragment>\n )}\n </div>\n </div>\n );\n}\n"
53
+ "import React, { useEffect, Fragment, useContext } from 'react';\nimport { EditorContext, ContextStore, ExecuteCommandState } from '../../Context';\nimport shortcuts from './shortcuts';\nimport Markdown from './Markdown';\nimport Textarea from './Textarea';\nimport { MDEditorProps, IProps } from '../../Editor';\nimport { TextAreaCommandOrchestrator, ICommand } from '../../commands';\nimport './index.less';\n\ntype RenderTextareaHandle = {\n dispatch: ContextStore['dispatch'];\n onChange?: MDEditorProps['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, extraCommands, onChange, 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 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,\n shortcuts,\n useContext: { commands, extraCommands, commandOrchestrator: executeRef.current },\n },\n ),\n {\n ref: textRef,\n },\n )\n ) : (\n <Fragment>\n <Markdown prefixCls={prefixCls} />\n <Textarea prefixCls={prefixCls} {...otherProps} />\n </Fragment>\n )}\n </div>\n </div>\n );\n}\n"
54
54
  ]
55
55
  }
package/lib/Context.js CHANGED
@@ -5,8 +5,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.reducer = reducer;
9
8
  exports.EditorContext = void 0;
9
+ exports.reducer = reducer;
10
10
 
11
11
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
12
12
 
package/lib/Editor.js CHANGED
@@ -254,7 +254,7 @@ var InternalMDEditor = function InternalMDEditor(props, ref) {
254
254
  },
255
255
  ref: previewRef,
256
256
  source: state.markdown || '',
257
- className: "".concat(prefixCls, "-preview")
257
+ className: "".concat(prefixCls, "-preview ").concat(previewOptions.className || '')
258
258
  }))]
259
259
  }), visiableDragbar && !state.fullscreen && /*#__PURE__*/(0, _jsxRuntime.jsx)(_DragBar.default, {
260
260
  prefixCls: prefixCls,
package/lib/Editor.js.map CHANGED
@@ -80,8 +80,8 @@
80
80
  "Markdown",
81
81
  "MarkdownPreview"
82
82
  ],
83
- "mappings": "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",
83
+ "mappings": "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",
84
84
  "sourcesContent": [
85
- "import React, { useEffect, useReducer, useMemo, useRef, useImperativeHandle } from 'react';\nimport MarkdownPreview, { MarkdownPreviewProps, MarkdownPreviewRef } from '@uiw/react-markdown-preview';\nimport TextArea, { ITextAreaProps } from './components/TextArea';\nimport Toolbar from './components/Toolbar';\nimport DragBar from './components/DragBar';\nimport { getCommands, getExtraCommands, ICommand } from './commands';\nimport { reducer, EditorContext, ContextStore, PreviewType } from './Context';\nimport './index.less';\n\nexport interface IProps {\n prefixCls?: string;\n className?: string;\n}\n\nexport interface MDEditorProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'>, IProps {\n /**\n * The Markdown value.\n */\n value?: string;\n /**\n * Event handler for the `onChange` event.\n */\n onChange?: (value?: string) => void;\n /**\n * Can be used to make `Markdown Editor` focus itself on initialization. Defaults to on.\n * it will be set to true when either the source `textarea` is focused,\n * or it has an `autofocus` attribute and no other element is focused.\n */\n autoFocus?: ITextAreaProps['autoFocus'];\n /**\n * The height of the editor.\n */\n height?: number;\n /**\n * Custom toolbar heigth\n * @default 29px\n */\n toolbarHeight?: number;\n /**\n * Show drag and drop tool. Set the height of the editor.\n */\n visiableDragbar?: boolean;\n /**\n * Show markdown preview.\n */\n preview?: PreviewType;\n /**\n * Full screen display editor.\n */\n fullscreen?: boolean;\n /**\n * Maximum drag height. `visiableDragbar=true`\n */\n maxHeight?: number;\n /**\n * Minimum drag height. `visiableDragbar=true`\n */\n minHeight?: number;\n /**\n * This is reset [react-markdown](https://github.com/rexxars/react-markdown) settings.\n */\n previewOptions?: Omit<MarkdownPreviewProps, 'source'>;\n /**\n * Set the `textarea` related props.\n */\n textareaProps?: ITextAreaProps;\n /** Use div to replace TextArea or re-render TextArea */\n renderTextarea?: ITextAreaProps['renderTextarea'];\n /**\n * Disable editing area code highlighting. The value is `false`, which increases the editing speed.\n * @default true\n */\n highlightEnable?: boolean;\n /**\n * The number of characters to insert when pressing tab key.\n * Default `2` spaces.\n */\n tabSize?: number;\n /**\n * You can create your own commands or reuse existing commands.\n */\n commands?: ICommand[];\n /**\n * You can create your own commands or reuse existing commands.\n */\n extraCommands?: ICommand[];\n /**\n * Hide the tool bar\n */\n hideToolbar?: boolean;\n /** Whether to enable scrolling */\n enableScroll?: boolean;\n}\n\nfunction setGroupPopFalse(data: Record<string, boolean> = {}) {\n Object.keys(data).forEach((keyname) => {\n data[keyname] = false;\n });\n return data;\n}\n\nconst InternalMDEditor = (\n props: MDEditorProps,\n ref?: ((instance: ContextStore) => void) | React.RefObject<ContextStore> | null,\n) => {\n const {\n prefixCls = 'w-md-editor',\n className,\n value: propsValue,\n commands = getCommands(),\n extraCommands = getExtraCommands(),\n height = 200,\n toolbarHeight = 29,\n enableScroll = true,\n visiableDragbar = true,\n highlightEnable = true,\n preview: previewType = 'live',\n fullscreen = false,\n previewOptions = {},\n textareaProps,\n maxHeight = 1200,\n minHeight = 100,\n autoFocus,\n tabSize = 2,\n onChange,\n hideToolbar,\n renderTextarea,\n ...other\n } = props || {};\n let [state, dispatch] = useReducer(reducer, {\n markdown: propsValue,\n preview: previewType,\n height,\n highlightEnable,\n tabSize,\n scrollTop: 0,\n scrollTopPreview: 0,\n commands,\n extraCommands,\n fullscreen,\n onChange,\n barPopup: {},\n });\n const container = useRef<HTMLDivElement>(null);\n const previewRef = useRef<MarkdownPreviewRef>(null);\n const enableScrollRef = useRef(enableScroll);\n\n useImperativeHandle(ref, () => ({ ...state }));\n useMemo(() => (enableScrollRef.current = enableScroll), [enableScroll]);\n useEffect(() => {\n const stateInit: ContextStore = {};\n if (container.current) {\n stateInit.container = container.current || undefined;\n }\n stateInit.markdown = propsValue || '';\n stateInit.barPopup = {};\n if (dispatch) {\n dispatch({ ...state, ...stateInit });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const cls = [\n className,\n prefixCls,\n state.preview ? `${prefixCls}-show-${state.preview}` : null,\n state.fullscreen ? `${prefixCls}-fullscreen` : null,\n ]\n .filter(Boolean)\n .join(' ')\n .trim();\n\n useMemo(\n () => propsValue !== state.markdown && dispatch({ markdown: propsValue || '' }),\n [propsValue, state.markdown],\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useMemo(() => previewType !== state.preview && dispatch({ preview: previewType }), [previewType]);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useMemo(() => height !== state.height && dispatch({ height: height }), [height]);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useMemo(() => tabSize !== state.tabSize && dispatch({ tabSize }), [tabSize]);\n useMemo(\n () => highlightEnable !== state.highlightEnable && dispatch({ highlightEnable }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [highlightEnable],\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useMemo(() => autoFocus !== state.autoFocus && dispatch({ autoFocus: autoFocus }), [autoFocus]);\n useMemo(\n () => fullscreen !== state.fullscreen && dispatch({ fullscreen: fullscreen }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [fullscreen],\n );\n\n const textareaDomRef = useRef<HTMLDivElement>();\n const active = useRef<'text' | 'preview'>('preview');\n const initScroll = useRef(false);\n\n useMemo(() => {\n textareaDomRef.current = state.textareaWarp;\n if (state.textareaWarp) {\n state.textareaWarp.addEventListener('mouseover', () => {\n active.current = 'text';\n });\n state.textareaWarp.addEventListener('mouseleave', () => {\n active.current = 'preview';\n });\n }\n }, [state.textareaWarp]);\n\n const handleScroll = (e: React.UIEvent<HTMLDivElement>, type: 'text' | 'preview') => {\n if (!enableScrollRef.current) return;\n const textareaDom = textareaDomRef.current;\n const previewDom = previewRef.current ? previewRef.current.mdp.current : undefined;\n if (!initScroll.current) {\n active.current = type;\n initScroll.current = true;\n }\n if (textareaDom && previewDom) {\n const scale =\n (textareaDom.scrollHeight - textareaDom.offsetHeight) / (previewDom.scrollHeight - previewDom.offsetHeight);\n if (e.target === textareaDom && active.current === 'text') {\n previewDom.scrollTop = textareaDom.scrollTop / scale;\n }\n if (e.target === previewDom && active.current === 'preview') {\n textareaDom.scrollTop = previewDom.scrollTop * scale;\n }\n let scrollTop = 0;\n if (active.current === 'text') {\n scrollTop = textareaDom.scrollTop || 0;\n } else if (active.current === 'preview') {\n scrollTop = previewDom.scrollTop || 0;\n }\n dispatch({ scrollTop });\n }\n };\n\n return (\n <EditorContext.Provider value={{ ...state, dispatch }}>\n <div\n ref={container}\n className={cls}\n {...other}\n onClick={() => {\n dispatch({ barPopup: { ...setGroupPopFalse(state.barPopup) } });\n }}\n style={{\n ...other.style,\n height: state.fullscreen ? '100%' : hideToolbar ? Number(state.height) - toolbarHeight : state.height,\n }}\n >\n {!hideToolbar && <Toolbar prefixCls={prefixCls} height={toolbarHeight} />}\n <div\n className={`${prefixCls}-content`}\n style={{\n height: state.fullscreen ? `calc(100% - ${toolbarHeight}px)` : Number(state.height) - toolbarHeight,\n }}\n >\n {/(edit|live)/.test(state.preview || '') && (\n <TextArea\n className={`${prefixCls}-input`}\n prefixCls={prefixCls}\n autoFocus={autoFocus}\n {...textareaProps}\n renderTextarea={renderTextarea}\n onScroll={(e) => handleScroll(e, 'text')}\n />\n )}\n {/(live|preview)/.test(state.preview || '') && (\n <MarkdownPreview\n {...(previewOptions as unknown)}\n onScroll={(e) => handleScroll(e, 'preview')}\n ref={previewRef}\n source={state.markdown || ''}\n className={`${prefixCls}-preview`}\n />\n )}\n </div>\n {visiableDragbar && !state.fullscreen && (\n <DragBar\n prefixCls={prefixCls}\n height={state.height as number}\n maxHeight={maxHeight!}\n minHeight={minHeight!}\n onChange={(newHeight) => {\n dispatch({ height: newHeight });\n }}\n />\n )}\n </div>\n </EditorContext.Provider>\n );\n};\n\nconst mdEditor = React.forwardRef<ContextStore, MDEditorProps>(InternalMDEditor);\n\ntype MDEditor = typeof mdEditor & {\n Markdown: typeof MarkdownPreview;\n};\n\n(mdEditor as MDEditor).Markdown = MarkdownPreview;\n\nexport default mdEditor as MDEditor;\n"
85
+ "import React, { useEffect, useReducer, useMemo, useRef, useImperativeHandle } from 'react';\nimport MarkdownPreview, { MarkdownPreviewProps, MarkdownPreviewRef } from '@uiw/react-markdown-preview';\nimport TextArea, { ITextAreaProps } from './components/TextArea';\nimport Toolbar from './components/Toolbar';\nimport DragBar from './components/DragBar';\nimport { getCommands, getExtraCommands, ICommand } from './commands';\nimport { reducer, EditorContext, ContextStore, PreviewType } from './Context';\nimport './index.less';\n\nexport interface IProps {\n prefixCls?: string;\n className?: string;\n}\n\nexport interface MDEditorProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'>, IProps {\n /**\n * The Markdown value.\n */\n value?: string;\n /**\n * Event handler for the `onChange` event.\n */\n onChange?: (value?: string) => void;\n /**\n * Can be used to make `Markdown Editor` focus itself on initialization. Defaults to on.\n * it will be set to true when either the source `textarea` is focused,\n * or it has an `autofocus` attribute and no other element is focused.\n */\n autoFocus?: ITextAreaProps['autoFocus'];\n /**\n * The height of the editor.\n */\n height?: number;\n /**\n * Custom toolbar heigth\n * @default 29px\n */\n toolbarHeight?: number;\n /**\n * Show drag and drop tool. Set the height of the editor.\n */\n visiableDragbar?: boolean;\n /**\n * Show markdown preview.\n */\n preview?: PreviewType;\n /**\n * Full screen display editor.\n */\n fullscreen?: boolean;\n /**\n * Maximum drag height. `visiableDragbar=true`\n */\n maxHeight?: number;\n /**\n * Minimum drag height. `visiableDragbar=true`\n */\n minHeight?: number;\n /**\n * This is reset [react-markdown](https://github.com/rexxars/react-markdown) settings.\n */\n previewOptions?: Omit<MarkdownPreviewProps, 'source'>;\n /**\n * Set the `textarea` related props.\n */\n textareaProps?: ITextAreaProps;\n /** Use div to replace TextArea or re-render TextArea */\n renderTextarea?: ITextAreaProps['renderTextarea'];\n /**\n * Disable editing area code highlighting. The value is `false`, which increases the editing speed.\n * @default true\n */\n highlightEnable?: boolean;\n /**\n * The number of characters to insert when pressing tab key.\n * Default `2` spaces.\n */\n tabSize?: number;\n /**\n * You can create your own commands or reuse existing commands.\n */\n commands?: ICommand[];\n /**\n * You can create your own commands or reuse existing commands.\n */\n extraCommands?: ICommand[];\n /**\n * Hide the tool bar\n */\n hideToolbar?: boolean;\n /** Whether to enable scrolling */\n enableScroll?: boolean;\n}\n\nfunction setGroupPopFalse(data: Record<string, boolean> = {}) {\n Object.keys(data).forEach((keyname) => {\n data[keyname] = false;\n });\n return data;\n}\n\nconst InternalMDEditor = (\n props: MDEditorProps,\n ref?: ((instance: ContextStore) => void) | React.RefObject<ContextStore> | null,\n) => {\n const {\n prefixCls = 'w-md-editor',\n className,\n value: propsValue,\n commands = getCommands(),\n extraCommands = getExtraCommands(),\n height = 200,\n toolbarHeight = 29,\n enableScroll = true,\n visiableDragbar = true,\n highlightEnable = true,\n preview: previewType = 'live',\n fullscreen = false,\n previewOptions = {},\n textareaProps,\n maxHeight = 1200,\n minHeight = 100,\n autoFocus,\n tabSize = 2,\n onChange,\n hideToolbar,\n renderTextarea,\n ...other\n } = props || {};\n let [state, dispatch] = useReducer(reducer, {\n markdown: propsValue,\n preview: previewType,\n height,\n highlightEnable,\n tabSize,\n scrollTop: 0,\n scrollTopPreview: 0,\n commands,\n extraCommands,\n fullscreen,\n onChange,\n barPopup: {},\n });\n const container = useRef<HTMLDivElement>(null);\n const previewRef = useRef<MarkdownPreviewRef>(null);\n const enableScrollRef = useRef(enableScroll);\n\n useImperativeHandle(ref, () => ({ ...state }));\n useMemo(() => (enableScrollRef.current = enableScroll), [enableScroll]);\n useEffect(() => {\n const stateInit: ContextStore = {};\n if (container.current) {\n stateInit.container = container.current || undefined;\n }\n stateInit.markdown = propsValue || '';\n stateInit.barPopup = {};\n if (dispatch) {\n dispatch({ ...state, ...stateInit });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const cls = [\n className,\n prefixCls,\n state.preview ? `${prefixCls}-show-${state.preview}` : null,\n state.fullscreen ? `${prefixCls}-fullscreen` : null,\n ]\n .filter(Boolean)\n .join(' ')\n .trim();\n\n useMemo(\n () => propsValue !== state.markdown && dispatch({ markdown: propsValue || '' }),\n [propsValue, state.markdown],\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useMemo(() => previewType !== state.preview && dispatch({ preview: previewType }), [previewType]);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useMemo(() => height !== state.height && dispatch({ height: height }), [height]);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useMemo(() => tabSize !== state.tabSize && dispatch({ tabSize }), [tabSize]);\n useMemo(\n () => highlightEnable !== state.highlightEnable && dispatch({ highlightEnable }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [highlightEnable],\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useMemo(() => autoFocus !== state.autoFocus && dispatch({ autoFocus: autoFocus }), [autoFocus]);\n useMemo(\n () => fullscreen !== state.fullscreen && dispatch({ fullscreen: fullscreen }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [fullscreen],\n );\n\n const textareaDomRef = useRef<HTMLDivElement>();\n const active = useRef<'text' | 'preview'>('preview');\n const initScroll = useRef(false);\n\n useMemo(() => {\n textareaDomRef.current = state.textareaWarp;\n if (state.textareaWarp) {\n state.textareaWarp.addEventListener('mouseover', () => {\n active.current = 'text';\n });\n state.textareaWarp.addEventListener('mouseleave', () => {\n active.current = 'preview';\n });\n }\n }, [state.textareaWarp]);\n\n const handleScroll = (e: React.UIEvent<HTMLDivElement>, type: 'text' | 'preview') => {\n if (!enableScrollRef.current) return;\n const textareaDom = textareaDomRef.current;\n const previewDom = previewRef.current ? previewRef.current.mdp.current : undefined;\n if (!initScroll.current) {\n active.current = type;\n initScroll.current = true;\n }\n if (textareaDom && previewDom) {\n const scale =\n (textareaDom.scrollHeight - textareaDom.offsetHeight) / (previewDom.scrollHeight - previewDom.offsetHeight);\n if (e.target === textareaDom && active.current === 'text') {\n previewDom.scrollTop = textareaDom.scrollTop / scale;\n }\n if (e.target === previewDom && active.current === 'preview') {\n textareaDom.scrollTop = previewDom.scrollTop * scale;\n }\n let scrollTop = 0;\n if (active.current === 'text') {\n scrollTop = textareaDom.scrollTop || 0;\n } else if (active.current === 'preview') {\n scrollTop = previewDom.scrollTop || 0;\n }\n dispatch({ scrollTop });\n }\n };\n\n return (\n <EditorContext.Provider value={{ ...state, dispatch }}>\n <div\n ref={container}\n className={cls}\n {...other}\n onClick={() => {\n dispatch({ barPopup: { ...setGroupPopFalse(state.barPopup) } });\n }}\n style={{\n ...other.style,\n height: state.fullscreen ? '100%' : hideToolbar ? Number(state.height) - toolbarHeight : state.height,\n }}\n >\n {!hideToolbar && <Toolbar prefixCls={prefixCls} height={toolbarHeight} />}\n <div\n className={`${prefixCls}-content`}\n style={{\n height: state.fullscreen ? `calc(100% - ${toolbarHeight}px)` : Number(state.height) - toolbarHeight,\n }}\n >\n {/(edit|live)/.test(state.preview || '') && (\n <TextArea\n className={`${prefixCls}-input`}\n prefixCls={prefixCls}\n autoFocus={autoFocus}\n {...textareaProps}\n renderTextarea={renderTextarea}\n onScroll={(e) => handleScroll(e, 'text')}\n />\n )}\n {/(live|preview)/.test(state.preview || '') && (\n <MarkdownPreview\n {...previewOptions}\n onScroll={(e) => handleScroll(e, 'preview')}\n ref={previewRef}\n source={state.markdown || ''}\n className={`${prefixCls}-preview ${previewOptions.className || ''}`}\n />\n )}\n </div>\n {visiableDragbar && !state.fullscreen && (\n <DragBar\n prefixCls={prefixCls}\n height={state.height as number}\n maxHeight={maxHeight!}\n minHeight={minHeight!}\n onChange={(newHeight) => {\n dispatch({ height: newHeight });\n }}\n />\n )}\n </div>\n </EditorContext.Provider>\n );\n};\n\nconst mdEditor = React.forwardRef<ContextStore, MDEditorProps>(InternalMDEditor);\n\ntype MDEditor = typeof mdEditor & {\n Markdown: typeof MarkdownPreview;\n};\n\n(mdEditor as MDEditor).Markdown = MarkdownPreview;\n\nexport default mdEditor as MDEditor;\n"
86
86
  ]
87
87
  }
@@ -5,13 +5,19 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.getStateFromTextArea = getStateFromTextArea;
8
+ exports.TextAreaTextApi = exports.TextAreaCommandOrchestrator = void 0;
9
9
  Object.defineProperty(exports, "bold", {
10
10
  enumerable: true,
11
11
  get: function get() {
12
12
  return _bold.bold;
13
13
  }
14
14
  });
15
+ Object.defineProperty(exports, "checkedListCommand", {
16
+ enumerable: true,
17
+ get: function get() {
18
+ return _list.checkedListCommand;
19
+ }
20
+ });
15
21
  Object.defineProperty(exports, "code", {
16
22
  enumerable: true,
17
23
  get: function get() {
@@ -24,40 +30,42 @@ Object.defineProperty(exports, "codeBlock", {
24
30
  return _code.codeBlock;
25
31
  }
26
32
  });
27
- Object.defineProperty(exports, "italic", {
33
+ Object.defineProperty(exports, "codeEdit", {
28
34
  enumerable: true,
29
35
  get: function get() {
30
- return _italic.italic;
36
+ return _preview.codeEdit;
31
37
  }
32
38
  });
33
- Object.defineProperty(exports, "link", {
39
+ Object.defineProperty(exports, "codeLive", {
34
40
  enumerable: true,
35
41
  get: function get() {
36
- return _link.link;
42
+ return _preview.codeLive;
37
43
  }
38
44
  });
39
- Object.defineProperty(exports, "unorderedListCommand", {
45
+ Object.defineProperty(exports, "codePreview", {
40
46
  enumerable: true,
41
47
  get: function get() {
42
- return _list.unorderedListCommand;
48
+ return _preview.codePreview;
43
49
  }
44
50
  });
45
- Object.defineProperty(exports, "orderedListCommand", {
51
+ Object.defineProperty(exports, "divider", {
46
52
  enumerable: true,
47
53
  get: function get() {
48
- return _list.orderedListCommand;
54
+ return _divider.divider;
49
55
  }
50
56
  });
51
- Object.defineProperty(exports, "checkedListCommand", {
57
+ Object.defineProperty(exports, "fullscreen", {
52
58
  enumerable: true,
53
59
  get: function get() {
54
- return _list.checkedListCommand;
60
+ return _fullscreen.fullscreen;
55
61
  }
56
62
  });
57
- Object.defineProperty(exports, "quote", {
63
+ exports.getExtraCommands = exports.getCommands = void 0;
64
+ exports.getStateFromTextArea = getStateFromTextArea;
65
+ Object.defineProperty(exports, "group", {
58
66
  enumerable: true,
59
67
  get: function get() {
60
- return _quote.quote;
68
+ return _group.group;
61
69
  }
62
70
  });
63
71
  Object.defineProperty(exports, "hr", {
@@ -66,97 +74,90 @@ Object.defineProperty(exports, "hr", {
66
74
  return _hr.hr;
67
75
  }
68
76
  });
69
- Object.defineProperty(exports, "title", {
70
- enumerable: true,
71
- get: function get() {
72
- return _title.title;
73
- }
74
- });
75
- Object.defineProperty(exports, "title1", {
77
+ Object.defineProperty(exports, "image", {
76
78
  enumerable: true,
77
79
  get: function get() {
78
- return _title2.title1;
80
+ return _image.image;
79
81
  }
80
82
  });
81
- Object.defineProperty(exports, "title2", {
83
+ Object.defineProperty(exports, "italic", {
82
84
  enumerable: true,
83
85
  get: function get() {
84
- return _title3.title2;
86
+ return _italic.italic;
85
87
  }
86
88
  });
87
- Object.defineProperty(exports, "title3", {
89
+ Object.defineProperty(exports, "link", {
88
90
  enumerable: true,
89
91
  get: function get() {
90
- return _title4.title3;
92
+ return _link.link;
91
93
  }
92
94
  });
93
- Object.defineProperty(exports, "title4", {
95
+ Object.defineProperty(exports, "orderedListCommand", {
94
96
  enumerable: true,
95
97
  get: function get() {
96
- return _title5.title4;
98
+ return _list.orderedListCommand;
97
99
  }
98
100
  });
99
- Object.defineProperty(exports, "title5", {
101
+ Object.defineProperty(exports, "quote", {
100
102
  enumerable: true,
101
103
  get: function get() {
102
- return _title6.title5;
104
+ return _quote.quote;
103
105
  }
104
106
  });
105
- Object.defineProperty(exports, "title6", {
107
+ Object.defineProperty(exports, "strikethrough", {
106
108
  enumerable: true,
107
109
  get: function get() {
108
- return _title7.title6;
110
+ return _strikeThrough.strikethrough;
109
111
  }
110
112
  });
111
- Object.defineProperty(exports, "group", {
113
+ Object.defineProperty(exports, "title", {
112
114
  enumerable: true,
113
115
  get: function get() {
114
- return _group.group;
116
+ return _title.title;
115
117
  }
116
118
  });
117
- Object.defineProperty(exports, "divider", {
119
+ Object.defineProperty(exports, "title1", {
118
120
  enumerable: true,
119
121
  get: function get() {
120
- return _divider.divider;
122
+ return _title2.title1;
121
123
  }
122
124
  });
123
- Object.defineProperty(exports, "codePreview", {
125
+ Object.defineProperty(exports, "title2", {
124
126
  enumerable: true,
125
127
  get: function get() {
126
- return _preview.codePreview;
128
+ return _title3.title2;
127
129
  }
128
130
  });
129
- Object.defineProperty(exports, "codeEdit", {
131
+ Object.defineProperty(exports, "title3", {
130
132
  enumerable: true,
131
133
  get: function get() {
132
- return _preview.codeEdit;
134
+ return _title4.title3;
133
135
  }
134
136
  });
135
- Object.defineProperty(exports, "codeLive", {
137
+ Object.defineProperty(exports, "title4", {
136
138
  enumerable: true,
137
139
  get: function get() {
138
- return _preview.codeLive;
140
+ return _title5.title4;
139
141
  }
140
142
  });
141
- Object.defineProperty(exports, "fullscreen", {
143
+ Object.defineProperty(exports, "title5", {
142
144
  enumerable: true,
143
145
  get: function get() {
144
- return _fullscreen.fullscreen;
146
+ return _title6.title5;
145
147
  }
146
148
  });
147
- Object.defineProperty(exports, "image", {
149
+ Object.defineProperty(exports, "title6", {
148
150
  enumerable: true,
149
151
  get: function get() {
150
- return _image.image;
152
+ return _title7.title6;
151
153
  }
152
154
  });
153
- Object.defineProperty(exports, "strikethrough", {
155
+ Object.defineProperty(exports, "unorderedListCommand", {
154
156
  enumerable: true,
155
157
  get: function get() {
156
- return _strikeThrough.strikethrough;
158
+ return _list.unorderedListCommand;
157
159
  }
158
160
  });
159
- exports.TextAreaTextApi = exports.TextAreaCommandOrchestrator = exports.getExtraCommands = exports.getCommands = void 0;
160
161
 
161
162
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
162
163
 
@@ -45,7 +45,7 @@
45
45
  "state",
46
46
  "execute"
47
47
  ],
48
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAoDA,IAAMA,WAA6B,GAAG,SAAhCA,WAAgC;AAAA,SAAM,CAC1CC,gBAD0C,EAE1CC,UAF0C,EAG1CC,cAH0C,EAI1CC,4BAJ0C,EAK1CC,MAL0C,EAM1CC,YAN0C,EAO1CC,gBAP0C,EAQ1CC,UAR0C,EAS1CC,YAT0C,EAU1CC,UAV0C,EAW1CC,eAX0C,EAY1CC,YAZ0C,EAa1CL,gBAb0C,EAc1CM,0BAd0C,EAe1CC,wBAf0C,EAgB1CC,wBAhB0C,CAAN;AAAA,CAAtC;;;;AAmBA,IAAMC,gBAAkC,GAAG,SAArCA,gBAAqC;AAAA,SAAM,CAACC,iBAAD,EAAWC,iBAAX,EAAqBC,oBAArB,EAAkCZ,gBAAlC,EAA2Ca,sBAA3C,CAAN;AAAA,CAA3C;;;;AAEA,SAASC,oBAAT,CAA8BC,QAA9B,EAAwE;AACtE,SAAO;AACLC,IAAAA,SAAS,EAAE;AACTC,MAAAA,KAAK,EAAEF,QAAQ,CAACG,cADP;AAETC,MAAAA,GAAG,EAAEJ,QAAQ,CAACK;AAFL,KADN;AAKLC,IAAAA,IAAI,EAAEN,QAAQ,CAACO,KALV;AAMLC,IAAAA,YAAY,EAAER,QAAQ,CAACO,KAAT,CAAeE,KAAf,CAAqBT,QAAQ,CAACG,cAA9B,EAA8CH,QAAQ,CAACK,YAAvD;AANT,GAAP;AAQD;;IAEKK,e;AAGJ,2BAAYV,QAAZ,EAA2C;AAAA;AAAA;AACzC,SAAKA,QAAL,GAAgBA,QAAhB;AACD;AAED;AACF;AACA;AACA;AACA;;;;;WACE,0BAAiBM,IAAjB,EAA0C;AACxC,sDAAqB,KAAKN,QAA1B,EAAoCM,IAApC;AACA,aAAOP,oBAAoB,CAAC,KAAKC,QAAN,CAA3B;AACD;AAED;AACF;AACA;AACA;;;;WACE,2BAAkBC,SAAlB,EAAmD;AACjD,WAAKD,QAAL,CAAcW,KAAd;AACA,WAAKX,QAAL,CAAcG,cAAd,GAA+BF,SAAS,CAACC,KAAzC;AACA,WAAKF,QAAL,CAAcK,YAAd,GAA6BJ,SAAS,CAACG,GAAvC;AACA,aAAOL,oBAAoB,CAAC,KAAKC,QAAN,CAA3B;AACD;;;;;;;IAGGY,2B;AAIJ,uCAAYZ,QAAZ,EAA2C;AAAA;AAAA;AAAA;AACzC,SAAKA,QAAL,GAAgBA,QAAhB;AACA,SAAKa,OAAL,GAAe,IAAIH,eAAJ,CAAoBV,QAApB,CAAf;AACD;;;;WAED,oBAAW;AACT,UAAI,CAAC,KAAKA,QAAV,EAAoB,OAAO,KAAP;AACpB,aAAOD,oBAAoB,CAAC,KAAKC,QAAN,CAA3B;AACD;;;WAED,wBACEc,OADF,EAEEC,QAFF,EAGEC,KAHF,EAIQ;AACNF,MAAAA,OAAO,CAACG,OAAR,IAAmBH,OAAO,CAACG,OAAR,CAAgBlB,oBAAoB,CAAC,KAAKC,QAAN,CAApC,EAAqD,KAAKa,OAA1D,EAAmEE,QAAnE,EAA6EC,KAA7E,CAAnB;AACD",
48
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAoDA,IAAMA,WAA6B,GAAG,SAAhCA,WAAgC;AAAA,SAAM,CAC1CC,gBAD0C,EAE1CC,UAF0C,EAG1CC,cAH0C,EAI1CC,4BAJ0C,EAK1CC,MAL0C,EAM1CC,YAN0C,EAO1CC,gBAP0C,EAQ1CC,UAR0C,EAS1CC,YAT0C,EAU1CC,UAV0C,EAW1CC,eAX0C,EAY1CC,YAZ0C,EAa1CL,gBAb0C,EAc1CM,0BAd0C,EAe1CC,wBAf0C,EAgB1CC,wBAhB0C,CAAN;AAAA,CAAtC;;;;AAmBA,IAAMC,gBAAkC,GAAG,SAArCA,gBAAqC;AAAA,SAAM,CAACC,iBAAD,EAAWC,iBAAX,EAAqBC,oBAArB,EAAkCZ,gBAAlC,EAA2Ca,sBAA3C,CAAN;AAAA,CAA3C;;;;AAEA,SAASC,oBAAT,CAA8BC,QAA9B,EAAwE;AACtE,SAAO;AACLC,IAAAA,SAAS,EAAE;AACTC,MAAAA,KAAK,EAAEF,QAAQ,CAACG,cADP;AAETC,MAAAA,GAAG,EAAEJ,QAAQ,CAACK;AAFL,KADN;AAKLC,IAAAA,IAAI,EAAEN,QAAQ,CAACO,KALV;AAMLC,IAAAA,YAAY,EAAER,QAAQ,CAACO,KAAT,CAAeE,KAAf,CAAqBT,QAAQ,CAACG,cAA9B,EAA8CH,QAAQ,CAACK,YAAvD;AANT,GAAP;AAQD;;IAEKK,e;AAGJ,2BAAYV,QAAZ,EAA2C;AAAA;AAAA;AACzC,SAAKA,QAAL,GAAgBA,QAAhB;AACD;AAED;AACF;AACA;AACA;AACA;;;;;WACE,0BAAiBM,IAAjB,EAA0C;AACxC,sDAAqB,KAAKN,QAA1B,EAAoCM,IAApC;AACA,aAAOP,oBAAoB,CAAC,KAAKC,QAAN,CAA3B;AACD;AAED;AACF;AACA;AACA;;;;WACE,2BAAkBC,SAAlB,EAAmD;AACjD,WAAKD,QAAL,CAAcW,KAAd;AACA,WAAKX,QAAL,CAAcG,cAAd,GAA+BF,SAAS,CAACC,KAAzC;AACA,WAAKF,QAAL,CAAcK,YAAd,GAA6BJ,SAAS,CAACG,GAAvC;AACA,aAAOL,oBAAoB,CAAC,KAAKC,QAAN,CAA3B;AACD;;;;;;;IAGGY,2B;AAIJ,uCAAYZ,QAAZ,EAA2C;AAAA;AAAA;AAAA;AACzC,SAAKA,QAAL,GAAgBA,QAAhB;AACA,SAAKa,OAAL,GAAe,IAAIH,eAAJ,CAAoBV,QAApB,CAAf;AACD;;;;WAED,oBAAW;AACT,UAAI,CAAC,KAAKA,QAAV,EAAoB,OAAO,KAAP;AACpB,aAAOD,oBAAoB,CAAC,KAAKC,QAAN,CAA3B;AACD;;;WAED,wBACEc,OADF,EAEEC,QAFF,EAGEC,KAHF,EAIQ;AACNF,MAAAA,OAAO,CAACG,OAAR,IAAmBH,OAAO,CAACG,OAAR,CAAgBlB,oBAAoB,CAAC,KAAKC,QAAN,CAApC,EAAqD,KAAKa,OAA1D,EAAmEE,QAAnE,EAA6EC,KAA7E,CAAnB;AACD",
49
49
  "sourcesContent": [
50
50
  "import { bold } from './bold';\nimport { code, codeBlock } from './code';\nimport { italic } from './italic';\nimport { link } from './link';\nimport { unorderedListCommand, orderedListCommand, checkedListCommand } from './list';\nimport { quote } from './quote';\nimport { hr } from './hr';\nimport { title } from './title';\nimport { title1 } from './title1';\nimport { title2 } from './title2';\nimport { title3 } from './title3';\nimport { title4 } from './title4';\nimport { title5 } from './title5';\nimport { title6 } from './title6';\nimport { comment } from './comment';\nimport { group } from './group';\nimport { divider } from './divider';\nimport { codePreview, codeEdit, codeLive } from './preview';\nimport { fullscreen } from './fullscreen';\nimport { image } from './image';\nimport { strikethrough } from './strikeThrough';\nimport { insertTextAtPosition } from '../utils/InsertTextAtPosition';\nimport { ContextStore, ExecuteCommandState } from '../Context';\n\nexport interface CommandOrchestrator {\n executeCommand(command: ICommand): void;\n}\n\nexport interface ICommandChildHandle<T = string> extends ICommandBase<T> {\n children?: (handle: {\n close: () => void;\n execute: () => void;\n getState?: TextAreaCommandOrchestrator['getState'];\n textApi?: TextAreaTextApi;\n }) => React.ReactElement;\n}\n\nexport interface ICommandChildCommands<T = string> extends ICommandBase<T> {\n children?: Array<ICommand<T>>;\n}\n\nexport interface ICommandBase<T> {\n parent?: ICommand<any>;\n keyCommand?: string;\n name?: string;\n shortcuts?: string;\n groupName?: string;\n icon?: React.ReactElement;\n value?: T;\n position?: 'right';\n liProps?: React.LiHTMLAttributes<HTMLLIElement>;\n buttonProps?: React.ButtonHTMLAttributes<HTMLButtonElement> | null;\n execute?: (\n state: TextState,\n api: TextAreaTextApi,\n dispatch?: React.Dispatch<ContextStore>,\n executeCommandState?: ExecuteCommandState,\n ) => void;\n}\n\nexport type ICommand<T = string> = ICommandChildCommands<T> | ICommandChildHandle<T>;\n\nexport interface TextRange {\n start: number;\n end: number;\n}\n\nexport interface TextState {\n text: string;\n selectedText: string;\n selection: TextRange;\n}\n\nconst getCommands: () => ICommand[] = () => [\n comment,\n bold,\n italic,\n strikethrough,\n hr,\n title,\n divider,\n link,\n quote,\n code,\n codeBlock,\n image,\n divider,\n unorderedListCommand,\n orderedListCommand,\n checkedListCommand,\n];\n\nconst getExtraCommands: () => ICommand[] = () => [codeEdit, codeLive, codePreview, divider, fullscreen];\n\nfunction getStateFromTextArea(textArea: HTMLTextAreaElement): TextState {\n return {\n selection: {\n start: textArea.selectionStart,\n end: textArea.selectionEnd,\n },\n text: textArea.value,\n selectedText: textArea.value.slice(textArea.selectionStart, textArea.selectionEnd),\n };\n}\n\nclass TextAreaTextApi {\n textArea: HTMLTextAreaElement;\n\n constructor(textArea: HTMLTextAreaElement) {\n this.textArea = textArea;\n }\n\n /**\n * Replaces the current selection with the new text. This will make the new selectedText to be empty, the\n * selection start and selection end will be the same and will both point to the end\n * @param text Text that should replace the current selection\n */\n replaceSelection(text: string): TextState {\n insertTextAtPosition(this.textArea, text);\n return getStateFromTextArea(this.textArea);\n }\n\n /**\n * Selects the specified text range\n * @param selection\n */\n setSelectionRange(selection: TextRange): TextState {\n this.textArea.focus();\n this.textArea.selectionStart = selection.start;\n this.textArea.selectionEnd = selection.end;\n return getStateFromTextArea(this.textArea);\n }\n}\n\nclass TextAreaCommandOrchestrator implements CommandOrchestrator {\n textArea: HTMLTextAreaElement;\n textApi: TextAreaTextApi;\n\n constructor(textArea: HTMLTextAreaElement) {\n this.textArea = textArea;\n this.textApi = new TextAreaTextApi(textArea);\n }\n\n getState() {\n if (!this.textArea) return false;\n return getStateFromTextArea(this.textArea);\n }\n\n executeCommand(\n command: ICommand<string>,\n dispatch?: React.Dispatch<ContextStore>,\n state?: ExecuteCommandState,\n ): void {\n command.execute && command.execute(getStateFromTextArea(this.textArea), this.textApi, dispatch, state);\n }\n}\n\nexport {\n // Toolbars.\n title,\n title1,\n title2,\n title3,\n title4,\n title5,\n title6,\n bold,\n codeBlock,\n italic,\n strikethrough,\n hr,\n group,\n divider,\n link,\n quote,\n code,\n image,\n unorderedListCommand,\n orderedListCommand,\n checkedListCommand,\n codeEdit,\n codeLive,\n codePreview,\n fullscreen,\n // Tool method.\n getCommands,\n getExtraCommands,\n getStateFromTextArea,\n TextAreaCommandOrchestrator,\n TextAreaTextApi,\n};\n"
51
51
  ]
@@ -5,8 +5,9 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ exports.checkedListCommand = void 0;
8
9
  exports.insertBeforeEachLine = insertBeforeEachLine;
9
- exports.checkedListCommand = exports.orderedListCommand = exports.unorderedListCommand = exports.makeList = void 0;
10
+ exports.unorderedListCommand = exports.orderedListCommand = exports.makeList = void 0;
10
11
 
11
12
  var React = _interopRequireWildcard(require("react"));
12
13
 
@@ -49,7 +49,7 @@
49
49
  "orderedListCommand",
50
50
  "checkedListCommand"
51
51
  ],
52
- "mappings": "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",
52
+ "mappings": "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",
53
53
  "sourcesContent": [
54
54
  "import * as React from 'react';\nimport { ICommand, TextState, TextAreaTextApi } from './';\nimport {\n selectWord,\n getBreaksNeededForEmptyLineBefore,\n getBreaksNeededForEmptyLineAfter,\n} from '../utils/markdownUtils';\n\nexport type AlterLineFunction = (line: string, index: number) => string;\n\n/**\n * Inserts insertionString before each line\n */\nexport function insertBeforeEachLine(\n selectedText: string,\n insertBefore: string | AlterLineFunction,\n): { modifiedText: string; insertionLength: number } {\n const lines = selectedText.split(/\\n/);\n\n let insertionLength = 0;\n const modifiedText = lines\n .map((item, index) => {\n if (typeof insertBefore === 'string') {\n insertionLength += insertBefore.length;\n return insertBefore + item;\n } else if (typeof insertBefore === 'function') {\n const insertionResult = insertBefore(item, index);\n insertionLength += insertionResult.length;\n return insertBefore(item, index) + item;\n }\n throw Error('insertion is expected to be either a string or a function');\n })\n .join('\\n');\n\n return { modifiedText, insertionLength };\n}\n\nexport const makeList = (state: TextState, api: TextAreaTextApi, insertBefore: string | AlterLineFunction) => {\n // Adjust the selection to encompass the whole word if the caret is inside one\n const newSelectionRange = selectWord({ text: state.text, selection: state.selection });\n const state1 = api.setSelectionRange(newSelectionRange);\n\n const breaksBeforeCount = getBreaksNeededForEmptyLineBefore(state1.text, state1.selection.start);\n const breaksBefore = Array(breaksBeforeCount + 1).join('\\n');\n\n const breaksAfterCount = getBreaksNeededForEmptyLineAfter(state1.text, state1.selection.end);\n const breaksAfter = Array(breaksAfterCount + 1).join('\\n');\n\n const modifiedText = insertBeforeEachLine(state1.selectedText, insertBefore);\n\n api.replaceSelection(`${breaksBefore}${modifiedText.modifiedText}${breaksAfter}`);\n\n // Specifically when the text has only one line, we can exclude the \"- \", for example, from the selection\n const oneLinerOffset = state1.selectedText.indexOf('\\n') === -1 ? modifiedText.insertionLength : 0;\n\n const selectionStart = state1.selection.start + breaksBeforeCount + oneLinerOffset;\n const selectionEnd = selectionStart + modifiedText.modifiedText.length - oneLinerOffset;\n\n // Adjust the selection to not contain the **\n api.setSelectionRange({\n start: selectionStart,\n end: selectionEnd,\n });\n};\n\nexport const unorderedListCommand: ICommand = {\n name: 'unordered-list',\n keyCommand: 'list',\n shortcuts: 'ctrl+shift+l',\n buttonProps: { 'aria-label': 'Add unordered list', title: 'Add unordered list' },\n icon: (\n <svg data-name=\"unordered-list\" width=\"12\" height=\"12\" viewBox=\"0 0 512 512\">\n <path\n fill=\"currentColor\"\n d=\"M96 96c0 26.51-21.49 48-48 48S0 122.51 0 96s21.49-48 48-48 48 21.49 48 48zM48 208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm0 160c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm96-236h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"\n />\n </svg>\n ),\n execute: (state: TextState, api: TextAreaTextApi) => {\n makeList(state, api, '- ');\n },\n};\n\nexport const orderedListCommand: ICommand = {\n name: 'ordered-list',\n keyCommand: 'list',\n shortcuts: 'ctrl+shift+o',\n buttonProps: { 'aria-label': 'Add ordered list', title: 'Add ordered list' },\n icon: (\n <svg data-name=\"ordered-list\" width=\"12\" height=\"12\" role=\"img\" viewBox=\"0 0 512 512\">\n <path\n fill=\"currentColor\"\n d=\"M3.263 139.527c0-7.477 3.917-11.572 11.573-11.572h15.131V88.078c0-5.163.534-10.503.534-10.503h-.356s-1.779 2.67-2.848 3.738c-4.451 4.273-10.504 4.451-15.666-1.068l-5.518-6.231c-5.342-5.341-4.984-11.216.534-16.379l21.72-19.938C32.815 33.602 36.732 32 42.785 32H54.89c7.656 0 11.749 3.916 11.749 11.572v84.384h15.488c7.655 0 11.572 4.094 11.572 11.572v8.901c0 7.477-3.917 11.572-11.572 11.572H14.836c-7.656 0-11.573-4.095-11.573-11.572v-8.902zM2.211 304.591c0-47.278 50.955-56.383 50.955-69.165 0-7.18-5.954-8.755-9.28-8.755-3.153 0-6.479 1.051-9.455 3.852-5.079 4.903-10.507 7.004-16.111 2.451l-8.579-6.829c-5.779-4.553-7.18-9.805-2.803-15.409C13.592 201.981 26.025 192 47.387 192c19.437 0 44.476 10.506 44.476 39.573 0 38.347-46.753 46.402-48.679 56.909h39.049c7.529 0 11.557 4.027 11.557 11.382v8.755c0 7.354-4.028 11.382-11.557 11.382h-67.94c-7.005 0-12.083-4.028-12.083-11.382v-4.028zM5.654 454.61l5.603-9.28c3.853-6.654 9.105-7.004 15.584-3.152 4.903 2.101 9.63 3.152 14.359 3.152 10.155 0 14.358-3.502 14.358-8.23 0-6.654-5.604-9.106-15.934-9.106h-4.728c-5.954 0-9.28-2.101-12.258-7.88l-1.05-1.926c-2.451-4.728-1.226-9.806 2.801-14.884l5.604-7.004c6.829-8.405 12.257-13.483 12.257-13.483v-.35s-4.203 1.051-12.608 1.051H16.685c-7.53 0-11.383-4.028-11.383-11.382v-8.755c0-7.53 3.853-11.382 11.383-11.382h58.484c7.529 0 11.382 4.027 11.382 11.382v3.327c0 5.778-1.401 9.806-5.079 14.183l-17.509 20.137c19.611 5.078 28.716 20.487 28.716 34.845 0 21.363-14.358 44.126-48.503 44.126-16.636 0-28.192-4.728-35.896-9.455-5.779-4.202-6.304-9.805-2.626-15.934zM144 132h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"\n />\n </svg>\n ),\n execute: (state: TextState, api: TextAreaTextApi) => {\n makeList(state, api, (item, index) => `${index + 1}. `);\n },\n};\n\nexport const checkedListCommand: ICommand = {\n name: 'checked-list',\n keyCommand: 'list',\n shortcuts: 'ctrl+shift+c',\n buttonProps: { 'aria-label': 'Add checked list', title: 'Add checked list' },\n icon: (\n <svg data-name=\"checked-list\" width=\"12\" height=\"12\" role=\"img\" viewBox=\"0 0 512 512\">\n <path\n fill=\"currentColor\"\n d=\"M208 132h288c8.8 0 16-7.2 16-16V76c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zm0 160h288c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zm0 160h288c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zM64 368c-26.5 0-48.6 21.5-48.6 48s22.1 48 48.6 48 48-21.5 48-48-21.5-48-48-48zm92.5-299l-72.2 72.2-15.6 15.6c-4.7 4.7-12.9 4.7-17.6 0L3.5 109.4c-4.7-4.7-4.7-12.3 0-17l15.7-15.7c4.7-4.7 12.3-4.7 17 0l22.7 22.1 63.7-63.3c4.7-4.7 12.3-4.7 17 0l17 16.5c4.6 4.7 4.6 12.3-.1 17zm0 159.6l-72.2 72.2-15.7 15.7c-4.7 4.7-12.9 4.7-17.6 0L3.5 269c-4.7-4.7-4.7-12.3 0-17l15.7-15.7c4.7-4.7 12.3-4.7 17 0l22.7 22.1 63.7-63.7c4.7-4.7 12.3-4.7 17 0l17 17c4.6 4.6 4.6 12.2-.1 16.9z\"\n />\n </svg>\n ),\n execute: (state: TextState, api: TextAreaTextApi) => {\n makeList(state, api, (item, index) => `- [ ] `);\n },\n};\n"
55
55
  ]
@@ -5,7 +5,7 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.codeLive = exports.codeEdit = exports.codePreview = void 0;
8
+ exports.codePreview = exports.codeLive = exports.codeEdit = void 0;
9
9
 
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
 
@@ -27,10 +27,11 @@ var _shortcuts = _interopRequireDefault(require("./shortcuts"));
27
27
 
28
28
  var _jsxRuntime = require("react/jsx-runtime");
29
29
 
30
- var _excluded = ["prefixCls"];
30
+ var _excluded = ["prefixCls", "onChange"];
31
31
 
32
32
  function Textarea(props) {
33
33
  var prefixCls = props.prefixCls,
34
+ onChangeFromProps = props.onChange,
34
35
  other = (0, _objectWithoutProperties2.default)(props, _excluded);
35
36
 
36
37
  var _useContext = (0, _react.useContext)(_Context.EditorContext),
@@ -103,6 +104,7 @@ function Textarea(props) {
103
104
  markdown: e.target.value
104
105
  });
105
106
  _onChange && _onChange(e.target.value);
107
+ onChangeFromProps && onChangeFromProps(e);
106
108
  }
107
109
  }));
108
110
  }
@@ -7,6 +7,8 @@
7
7
  "Textarea",
8
8
  "props",
9
9
  "prefixCls",
10
+ "onChangeFromProps",
11
+ "onChange",
10
12
  "other",
11
13
  "EditorContext",
12
14
  "markdown",
@@ -16,7 +18,6 @@
16
18
  "highlightEnable",
17
19
  "extraCommands",
18
20
  "tabSize",
19
- "onChange",
20
21
  "dispatch",
21
22
  "textRef",
22
23
  "React",
@@ -35,8 +36,8 @@
35
36
  "target",
36
37
  "value"
37
38
  ],
38
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;;;;;AAKe,SAASA,QAAT,CAAkBC,KAAlB,EAAwC;AACrD,MAAQC,SAAR,GAAgCD,KAAhC,CAAQC,SAAR;AAAA,MAAsBC,KAAtB,0CAAgCF,KAAhC;;AACA,oBACE,uBAAWG,sBAAX,CADF;AAAA,MAAQC,QAAR,eAAQA,QAAR;AAAA,MAAkBC,QAAlB,eAAkBA,QAAlB;AAAA,MAA4BC,UAA5B,eAA4BA,UAA5B;AAAA,MAAwCC,OAAxC,eAAwCA,OAAxC;AAAA,MAAiDC,eAAjD,eAAiDA,eAAjD;AAAA,MAAkEC,aAAlE,eAAkEA,aAAlE;AAAA,MAAiFC,OAAjF,eAAiFA,OAAjF;AAAA,MAA0FC,SAA1F,eAA0FA,QAA1F;AAAA,MAAoGC,QAApG,eAAoGA,QAApG;;AAEA,MAAMC,OAAO,GAAGC,eAAMC,MAAN,CAAkC,IAAlC,CAAhB;;AACA,MAAMC,UAAU,GAAGF,eAAMC,MAAN,EAAnB;;AACA,MAAME,SAAS,GAAGH,eAAMC,MAAN,CAAkC;AAAET,IAAAA,UAAU,EAAVA,UAAF;AAAcC,IAAAA,OAAO,EAAPA;AAAd,GAAlC,CAAlB;;AAEA,wBAAU,YAAM;AACdU,IAAAA,SAAS,CAACC,OAAV,GAAoB;AAAEZ,MAAAA,UAAU,EAAVA,UAAF;AAAcC,MAAAA,OAAO,EAAPA,OAAd;AAAuBC,MAAAA,eAAe,EAAfA;AAAvB,KAApB;AACD,GAFD,EAEG,CAACF,UAAD,EAAaC,OAAb,EAAsBC,eAAtB,CAFH;AAIA,wBAAU,YAAM;AACd,QAAIK,OAAO,CAACK,OAAR,IAAmBN,QAAvB,EAAiC;AAC/B,UAAMO,mBAAmB,GAAG,IAAIC,qCAAJ,CAAgCP,OAAO,CAACK,OAAxC,CAA5B;AACAF,MAAAA,UAAU,CAACE,OAAX,GAAqBC,mBAArB;AACAP,MAAAA,QAAQ,CAAC;AAAES,QAAAA,QAAQ,EAAER,OAAO,CAACK,OAApB;AAA6BC,QAAAA,mBAAmB,EAAnBA;AAA7B,OAAD,CAAR;AACD,KALa,CAMd;;AACD,GAPD,EAOG,EAPH;;AASA,MAAMG,SAAS,GAAG,SAAZA,SAAY,CAACC,CAAD,EAAiE;AACjF,gCAAcA,CAAd,EAAiBb,OAAjB;AACA,4BAAUa,CAAV,6CAAkBlB,QAAQ,IAAI,EAA9B,oCAAuCI,aAAa,IAAI,EAAxD,IAA8DO,UAAU,CAACE,OAAzE,EAAkFN,QAAlF,EAA4FK,SAAS,CAACC,OAAtG;AACD,GAHD;;AAIA,wBAAU,YAAM;AACd,QAAIL,OAAO,CAACK,OAAZ,EAAqB;AACnBL,MAAAA,OAAO,CAACK,OAAR,CAAgBM,gBAAhB,CAAiC,SAAjC,EAA4CF,SAA5C;AACD;;AACD,WAAO,YAAM;AACX,UAAIT,OAAO,CAACK,OAAZ,EAAqB;AACnB;AACAL,QAAAA,OAAO,CAACK,OAAR,CAAgBO,mBAAhB,CAAoC,SAApC,EAA+CH,SAA/C;AACD;AACF,KALD,CAJc,CAUd;AACD,GAXD,EAWG,EAXH;AAaA,sBACE;AACE,IAAA,YAAY,EAAC,KADf;AAEE,IAAA,WAAW,EAAC,KAFd;AAGE,IAAA,cAAc,EAAC,KAHjB;AAIE,IAAA,UAAU,EAAE;AAJd,KAKMpB,KALN;AAME,IAAA,GAAG,EAAEW,OANP;AAOE,IAAA,SAAS,YAAKZ,SAAL,yBAA6BC,KAAK,CAACwB,SAAN,GAAkBxB,KAAK,CAACwB,SAAxB,GAAoC,EAAjE,CAPX;AAQE,IAAA,KAAK,EAAEtB,QART;AASE,IAAA,QAAQ,EAAE,kBAACmB,CAAD,EAAO;AACfX,MAAAA,QAAQ,IAAIA,QAAQ,CAAC;AAAER,QAAAA,QAAQ,EAAEmB,CAAC,CAACI,MAAF,CAASC;AAArB,OAAD,CAApB;AACAjB,MAAAA,SAAQ,IAAIA,SAAQ,CAACY,CAAC,CAACI,MAAF,CAASC,KAAV,CAApB;AACD;AAZH,KADF;AAgBD",
39
+ "mappings": "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",
39
40
  "sourcesContent": [
40
- "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, ...other } = props;\n const { markdown, commands, fullscreen, preview, highlightEnable, extraCommands, tabSize, onChange, 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);\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.target.value);\n }}\n />\n );\n}\n"
41
+ "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: onChangeFromProps, ...other } = props;\n const { markdown, commands, fullscreen, preview, highlightEnable, extraCommands, tabSize, onChange, 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);\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.target.value);\n onChangeFromProps && onChangeFromProps(e);\n }}\n />\n );\n}\n"
41
42
  ]
42
43
  }
@@ -13,7 +13,7 @@ declare type RenderTextareaHandle = {
13
13
  };
14
14
  shortcuts?: (e: KeyboardEvent | React.KeyboardEvent<HTMLTextAreaElement>, commands: ICommand[], commandOrchestrator?: TextAreaCommandOrchestrator, dispatch?: React.Dispatch<ContextStore>, state?: ExecuteCommandState) => void;
15
15
  };
16
- export interface ITextAreaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'value' | 'onChange' | 'onScroll'>, IProps {
16
+ export interface ITextAreaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'value' | 'onScroll'>, IProps {
17
17
  value?: string;
18
18
  onScroll?: (e: React.UIEvent<HTMLDivElement>) => void;
19
19
  renderTextarea?: (props: React.TextareaHTMLAttributes<HTMLTextAreaElement> | React.HTMLAttributes<HTMLDivElement>, opts: RenderTextareaHandle) => JSX.Element;
@@ -46,6 +46,6 @@
46
46
  ],
47
47
  "mappings": "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",
48
48
  "sourcesContent": [
49
- "import React, { useEffect, Fragment, useContext } from 'react';\nimport { EditorContext, ContextStore, ExecuteCommandState } from '../../Context';\nimport shortcuts from './shortcuts';\nimport Markdown from './Markdown';\nimport Textarea from './Textarea';\nimport { MDEditorProps, IProps } from '../../Editor';\nimport { TextAreaCommandOrchestrator, ICommand } from '../../commands';\nimport './index.less';\n\ntype RenderTextareaHandle = {\n dispatch: ContextStore['dispatch'];\n onChange?: MDEditorProps['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' | 'onChange' | '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, extraCommands, onChange, 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 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,\n shortcuts,\n useContext: { commands, extraCommands, commandOrchestrator: executeRef.current },\n },\n ),\n {\n ref: textRef,\n },\n )\n ) : (\n <Fragment>\n <Markdown prefixCls={prefixCls} />\n <Textarea prefixCls={prefixCls} {...otherProps} />\n </Fragment>\n )}\n </div>\n </div>\n );\n}\n"
49
+ "import React, { useEffect, Fragment, useContext } from 'react';\nimport { EditorContext, ContextStore, ExecuteCommandState } from '../../Context';\nimport shortcuts from './shortcuts';\nimport Markdown from './Markdown';\nimport Textarea from './Textarea';\nimport { MDEditorProps, IProps } from '../../Editor';\nimport { TextAreaCommandOrchestrator, ICommand } from '../../commands';\nimport './index.less';\n\ntype RenderTextareaHandle = {\n dispatch: ContextStore['dispatch'];\n onChange?: MDEditorProps['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, extraCommands, onChange, 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 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,\n shortcuts,\n useContext: { commands, extraCommands, commandOrchestrator: executeRef.current },\n },\n ),\n {\n ref: textRef,\n },\n )\n ) : (\n <Fragment>\n <Markdown prefixCls={prefixCls} />\n <Textarea prefixCls={prefixCls} {...otherProps} />\n </Fragment>\n )}\n </div>\n </div>\n );\n}\n"
50
50
  ]
51
51
  }
package/lib/index.js CHANGED
@@ -9,7 +9,7 @@ var _exportNames = {
9
9
  commands: true,
10
10
  MarkdownUtil: true
11
11
  };
12
- exports.MarkdownUtil = exports.commands = exports.default = void 0;
12
+ exports.default = exports.commands = exports.MarkdownUtil = void 0;
13
13
 
14
14
  var _Editor = _interopRequireWildcard(require("./Editor"));
15
15
 
@@ -3,10 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.selectWord = selectWord;
7
- exports.getBreaksNeededForEmptyLineBefore = getBreaksNeededForEmptyLineBefore;
8
6
  exports.getBreaksNeededForEmptyLineAfter = getBreaksNeededForEmptyLineAfter;
7
+ exports.getBreaksNeededForEmptyLineBefore = getBreaksNeededForEmptyLineBefore;
9
8
  exports.getSurroundingWord = getSurroundingWord;
9
+ exports.selectWord = selectWord;
10
10
 
11
11
  function selectWord(_ref) {
12
12
  var text = _ref.text,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uiw/react-md-editor",
3
- "version": "3.6.3",
3
+ "version": "3.7.0",
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>",
@@ -44,28 +44,28 @@
44
44
  "@kkt/react-library": "6.11.0",
45
45
  "@kkt/scope-plugin-options": "6.11.0",
46
46
  "@types/katex": "0.11.1",
47
- "@types/react": "17.0.20",
48
- "@types/react-dom": "17.0.9",
47
+ "@types/react": "17.0.34",
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
51
  "@uiw/react-codesandbox": "1.1.0",
52
52
  "@uiw/react-shields": "1.1.2",
53
- "compile-less-cli": "1.8.8",
54
- "katex": "0.13.18",
55
- "husky": "7.0.2",
56
- "jest-environment-jsdom": "27.1.1",
53
+ "compile-less-cli": "1.8.9",
54
+ "katex": "0.15.1",
55
+ "husky": "7.0.4",
56
+ "jest-environment-jsdom": "27.3.1",
57
57
  "kkt": "6.11.0",
58
- "lint-staged": "11.1.2",
59
- "prettier": "2.4.0",
58
+ "lint-staged": "11.2.6",
59
+ "prettier": "2.4.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.1.9"
64
+ "tsbb": "3.4.4"
65
65
  },
66
66
  "dependencies": {
67
67
  "@babel/runtime": "^7.14.6",
68
- "@uiw/react-markdown-preview": "3.3.2",
68
+ "@uiw/react-markdown-preview": "3.4.1",
69
69
  "rehype": "12.0.0"
70
70
  },
71
71
  "keywords": [
@@ -89,15 +89,6 @@
89
89
  ],
90
90
  "transformIgnorePatterns": [
91
91
  "<rootDir>/node_modules/?!(.*)"
92
- ],
93
- "collectCoverageFrom": [
94
- "**/*.{tsx,ts}",
95
- "!.kktrc.ts",
96
- "!**/*.{js,d.ts}",
97
- "!**/node_modules/**",
98
- "!<rootDir>/coverage/**",
99
- "!**/website/**",
100
- "!**/vendor/**"
101
92
  ]
102
93
  },
103
94
  "lint-staged": {
package/src/Editor.tsx CHANGED
@@ -269,11 +269,11 @@ const InternalMDEditor = (
269
269
  )}
270
270
  {/(live|preview)/.test(state.preview || '') && (
271
271
  <MarkdownPreview
272
- {...(previewOptions as unknown)}
272
+ {...previewOptions}
273
273
  onScroll={(e) => handleScroll(e, 'preview')}
274
274
  ref={previewRef}
275
275
  source={state.markdown || ''}
276
- className={`${prefixCls}-preview`}
276
+ className={`${prefixCls}-preview ${previewOptions.className || ''}`}
277
277
  />
278
278
  )}
279
279
  </div>
@@ -9,7 +9,7 @@ import './index.less';
9
9
  export interface TextAreaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'value'>, IProps {}
10
10
 
11
11
  export default function Textarea(props: TextAreaProps) {
12
- const { prefixCls, ...other } = props;
12
+ const { prefixCls, onChange: onChangeFromProps, ...other } = props;
13
13
  const { markdown, commands, fullscreen, preview, highlightEnable, extraCommands, tabSize, onChange, dispatch } =
14
14
  useContext(EditorContext);
15
15
  const textRef = React.useRef<HTMLTextAreaElement>(null);
@@ -59,6 +59,7 @@ export default function Textarea(props: TextAreaProps) {
59
59
  onChange={(e) => {
60
60
  dispatch && dispatch({ markdown: e.target.value });
61
61
  onChange && onChange(e.target.value);
62
+ onChangeFromProps && onChangeFromProps(e);
62
63
  }}
63
64
  />
64
65
  );
@@ -25,7 +25,7 @@ type RenderTextareaHandle = {
25
25
  };
26
26
 
27
27
  export interface ITextAreaProps
28
- extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'value' | 'onChange' | 'onScroll'>,
28
+ extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'value' | 'onScroll'>,
29
29
  IProps {
30
30
  value?: string;
31
31
  onScroll?: (e: React.UIEvent<HTMLDivElement>) => void;