@uiw/react-md-editor 3.20.1 → 3.20.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/README.md +3 -0
  2. package/dist/mdeditor.css +1 -1
  3. package/dist/mdeditor.js +6656 -5020
  4. package/dist/mdeditor.min.css +1 -1
  5. package/dist/mdeditor.min.js +1 -1
  6. package/esm/Context.d.ts +2 -2
  7. package/esm/Context.js.map +1 -1
  8. package/esm/Editor.d.ts +3 -1
  9. package/esm/Editor.js +4 -1
  10. package/esm/Editor.js.map +2 -2
  11. package/esm/commands/title1.js.map +1 -1
  12. package/esm/commands/title2.js.map +1 -1
  13. package/esm/commands/title3.js.map +1 -1
  14. package/esm/commands/title4.js.map +1 -1
  15. package/esm/commands/title5.js.map +1 -1
  16. package/esm/commands/title6.js.map +1 -1
  17. package/esm/components/TextArea/index.css +1 -1
  18. package/esm/components/TextArea/index.js +1 -1
  19. package/esm/components/TextArea/index.js.map +1 -1
  20. package/esm/components/TextArea/index.less +1 -1
  21. package/lib/Context.d.ts +2 -2
  22. package/lib/Context.js.map +1 -1
  23. package/lib/Editor.d.ts +3 -1
  24. package/lib/Editor.js +4 -1
  25. package/lib/Editor.js.map +3 -3
  26. package/lib/commands/title1.js.map +1 -1
  27. package/lib/commands/title2.js.map +1 -1
  28. package/lib/commands/title3.js.map +1 -1
  29. package/lib/commands/title4.js.map +1 -1
  30. package/lib/commands/title5.js.map +1 -1
  31. package/lib/commands/title6.js.map +1 -1
  32. package/lib/components/TextArea/index.js +1 -1
  33. package/lib/components/TextArea/index.js.map +1 -1
  34. package/lib/components/TextArea/index.less +1 -1
  35. package/markdown-editor.css +1 -1
  36. package/package.json +1 -1
  37. package/src/Context.tsx +2 -2
  38. package/src/Editor.tsx +5 -3
  39. package/src/components/TextArea/index.less +1 -1
  40. package/src/components/TextArea/index.tsx +1 -1
package/esm/Context.d.ts CHANGED
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { ICommand, TextAreaCommandOrchestrator } from './commands';
3
3
  import { MDEditorProps } from './Editor';
4
4
  export declare type PreviewType = 'live' | 'edit' | 'preview';
5
- export declare type ContextStore = {
5
+ export interface ContextStore {
6
6
  components?: MDEditorProps['components'];
7
7
  commands?: ICommand<string>[];
8
8
  extraCommands?: ICommand<string>[];
@@ -23,7 +23,7 @@ export declare type ContextStore = {
23
23
  scrollTopPreview?: number;
24
24
  tabSize?: number;
25
25
  defaultTabEnable?: boolean;
26
- };
26
+ }
27
27
  export declare type ExecuteCommandState = Pick<ContextStore, 'fullscreen' | 'preview' | 'highlightEnable'>;
28
28
  export declare function reducer(state: ContextStore, action: ContextStore): {
29
29
  components?: {
@@ -13,7 +13,7 @@
13
13
  "../src/Context.tsx"
14
14
  ],
15
15
  "sourcesContent": [
16
- "import React from 'react';\nimport { ICommand, TextAreaCommandOrchestrator } from './commands';\nimport { MDEditorProps } from './Editor';\n\nexport type PreviewType = 'live' | 'edit' | 'preview';\n\nexport type ContextStore = {\n components?: MDEditorProps['components'];\n commands?: ICommand<string>[];\n extraCommands?: ICommand<string>[];\n markdown?: string;\n preview?: PreviewType;\n height?: React.CSSProperties['height'];\n fullscreen?: boolean;\n highlightEnable?: boolean;\n autoFocus?: boolean;\n textarea?: HTMLTextAreaElement;\n commandOrchestrator?: TextAreaCommandOrchestrator;\n textareaWarp?: HTMLDivElement;\n textareaPre?: HTMLPreElement;\n container?: HTMLDivElement | null;\n dispatch?: React.Dispatch<ContextStore>;\n barPopup?: Record<string, boolean>;\n scrollTop?: number;\n scrollTopPreview?: number;\n tabSize?: number;\n defaultTabEnable?: boolean;\n};\n\nexport type ExecuteCommandState = Pick<ContextStore, 'fullscreen' | 'preview' | 'highlightEnable'>;\n\nexport function reducer(state: ContextStore, action: ContextStore) {\n return { ...state, ...action };\n}\n\nexport const EditorContext = React.createContext<ContextStore>({ markdown: '' });\n"
16
+ "import React from 'react';\nimport { ICommand, TextAreaCommandOrchestrator } from './commands';\nimport { MDEditorProps } from './Editor';\n\nexport type PreviewType = 'live' | 'edit' | 'preview';\n\nexport interface ContextStore {\n components?: MDEditorProps['components'];\n commands?: ICommand<string>[];\n extraCommands?: ICommand<string>[];\n markdown?: string;\n preview?: PreviewType;\n height?: React.CSSProperties['height'];\n fullscreen?: boolean;\n highlightEnable?: boolean;\n autoFocus?: boolean;\n textarea?: HTMLTextAreaElement;\n commandOrchestrator?: TextAreaCommandOrchestrator;\n textareaWarp?: HTMLDivElement;\n textareaPre?: HTMLPreElement;\n container?: HTMLDivElement | null;\n dispatch?: React.Dispatch<ContextStore>;\n barPopup?: Record<string, boolean>;\n scrollTop?: number;\n scrollTopPreview?: number;\n tabSize?: number;\n defaultTabEnable?: boolean;\n}\n\nexport type ExecuteCommandState = Pick<ContextStore, 'fullscreen' | 'preview' | 'highlightEnable'>;\n\nexport function reducer(state: ContextStore, action: ContextStore) {\n return { ...state, ...action };\n}\n\nexport const EditorContext = React.createContext<ContextStore>({ markdown: '' });\n"
17
17
  ],
18
18
  "mappings": ";AAAA,OAAOA,KAAK,MAAM,OAAO;AA+BzB,OAAO,SAASC,OAAO,CAACC,KAAmB,EAAEC,MAAoB,EAAE;EACjE,oBAAYD,KAAK,EAAKC,MAAM;AAC9B;AAEA,OAAO,IAAMC,aAAa,gBAAGJ,KAAK,CAACK,aAAa,CAAe;EAAEC,QAAQ,EAAE;AAAG,CAAC,CAAC"
19
19
  }
package/esm/Editor.d.ts CHANGED
@@ -31,7 +31,7 @@ export interface MDEditorProps extends Omit<React.HTMLAttributes<HTMLDivElement>
31
31
  * The height of the editor.
32
32
  * ⚠️ `Dragbar` is invalid when **`height`** parameter percentage.
33
33
  */
34
- height?: CSSProperties['height'];
34
+ height?: number;
35
35
  /**
36
36
  * Custom toolbar heigth
37
37
  * @default 29px
@@ -139,6 +139,8 @@ export interface MDEditorProps extends Omit<React.HTMLAttributes<HTMLDivElement>
139
139
  */
140
140
  direction?: CSSProperties['direction'];
141
141
  }
142
+ export interface RefMDEditor extends ContextStore {
143
+ }
142
144
  declare type Editor = React.FC<PropsWithRef<MDEditorProps>> & {
143
145
  Markdown: typeof MarkdownPreview;
144
146
  };
package/esm/Editor.js CHANGED
@@ -72,7 +72,10 @@ var InternalMDEditor = (props, ref) => {
72
72
  var container = useRef(null);
73
73
  var previewRef = useRef(null);
74
74
  var enableScrollRef = useRef(enableScroll);
75
- useImperativeHandle(ref, () => _extends({}, state));
75
+ useImperativeHandle(ref, () => _extends({}, state, {
76
+ container: container.current,
77
+ dispatch
78
+ }));
76
79
  useMemo(() => enableScrollRef.current = enableScroll, [enableScroll]);
77
80
  useEffect(() => {
78
81
  var stateInit = {};
package/esm/Editor.js.map CHANGED
@@ -110,7 +110,7 @@
110
110
  "../src/Editor.tsx"
111
111
  ],
112
112
  "sourcesContent": [
113
- "import React, { useEffect, useReducer, useMemo, useRef, useImperativeHandle, CSSProperties, PropsWithRef } from 'react';\nimport MarkdownPreview, { MarkdownPreviewProps } 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, event?: React.ChangeEvent<HTMLTextAreaElement>, state?: ContextStore) => void;\n /**\n * editor height change listener\n */\n onHeightChange?: (value?: CSSProperties['height'], oldValue?: CSSProperties['height'], state?: ContextStore) => 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 * ⚠️ `Dragbar` is invalid when **`height`** parameter percentage.\n */\n height?: CSSProperties['height'];\n /**\n * Custom toolbar heigth\n * @default 29px\n *\n * @deprecated toolbar height adaptive: https://github.com/uiwjs/react-md-editor/issues/427\n *\n */\n toolbarHeight?: number;\n /**\n * Show drag and drop tool. Set the height of the editor.\n */\n visibleDragbar?: boolean;\n /**\n * @deprecated use `visibleDragbar`\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 * Disable `fullscreen` setting body styles\n */\n overflow?: boolean;\n /**\n * Maximum drag height. `visibleDragbar=true`\n */\n maxHeight?: number;\n /**\n * Minimum drag height. `visibleDragbar=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 /**\n * Use div to replace TextArea or re-render TextArea\n * @deprecated Please use ~~`renderTextarea`~~ -> `components`\n */\n renderTextarea?: ITextAreaProps['renderTextarea'];\n /**\n * re-render element\n */\n components?: {\n /** Use div to replace TextArea or re-render TextArea */\n textarea?: ITextAreaProps['renderTextarea'];\n /**\n * Override the default command element\n * _`toolbar`_ < _`command[].render`_\n */\n toolbar?: ICommand['render'];\n /** Custom markdown preview */\n preview?: (source: string, state: ContextStore, dispath: React.Dispatch<ContextStore>) => JSX.Element;\n };\n /** Theme configuration */\n 'data-color-mode'?: 'light' | 'dark';\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 * If `false`, the `tab` key inserts a tab character into the textarea. If `true`, the `tab` key executes default behavior e.g. focus shifts to next element.\n */\n defaultTabEnable?: boolean;\n /**\n * You can create your own commands or reuse existing commands.\n */\n commands?: ICommand[];\n /**\n * Filter or modify your commands.\n * https://github.com/uiwjs/react-md-editor/issues/296\n */\n commandsFilter?: (command: ICommand, isExtra: boolean) => false | 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 /** Toolbar on bottom */\n toolbarBottom?: boolean;\n /**\n * The **`direction`** property sets the direction of text, table columns, and horizontal overflow. Use `rtl` for languages written from right to left (like Hebrew or Arabic), and `ltr` for those written from left to right (like English and most other languages).\n *\n * https://github.com/uiwjs/react-md-editor/issues/462\n */\n direction?: CSSProperties['direction'];\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 commandsFilter,\n direction,\n extraCommands = getExtraCommands(),\n height = 200,\n enableScroll = true,\n visibleDragbar = typeof props.visiableDragbar === 'boolean' ? props.visiableDragbar : true,\n highlightEnable = true,\n preview: previewType = 'live',\n fullscreen = false,\n overflow = true,\n previewOptions = {},\n textareaProps,\n maxHeight = 1200,\n minHeight = 100,\n autoFocus,\n tabSize = 2,\n defaultTabEnable = false,\n onChange,\n onHeightChange,\n hideToolbar,\n toolbarBottom = false,\n components,\n renderTextarea,\n ...other\n } = props || {};\n const cmds = commands\n .map((item) => (commandsFilter ? commandsFilter(item, false) : item))\n .filter(Boolean) as ICommand[];\n const extraCmds = extraCommands\n .map((item) => (commandsFilter ? commandsFilter(item, true) : item))\n .filter(Boolean) as ICommand[];\n let [state, dispatch] = useReducer(reducer, {\n markdown: propsValue,\n preview: previewType,\n components,\n height,\n highlightEnable,\n tabSize,\n defaultTabEnable,\n scrollTop: 0,\n scrollTopPreview: 0,\n commands: cmds,\n extraCommands: extraCmds,\n fullscreen,\n barPopup: {},\n });\n const container = useRef<HTMLDivElement>(null);\n const previewRef = useRef<HTMLDivElement>(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 'wmde-markdown-var',\n direction ? `${prefixCls}-${direction}` : null,\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(() => 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 // eslint-disable-next-line react-hooks/exhaustive-deps\n useMemo(() => height !== state.height && dispatch({ height: height }), [height]);\n useMemo(\n () => height !== state.height && onHeightChange && onHeightChange(state.height, height, state),\n [height, onHeightChange, state],\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 : 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 const previewClassName = `${prefixCls}-preview ${previewOptions.className || ''}`;\n const handlePreviewScroll = (e: React.UIEvent<HTMLDivElement, UIEvent>) => handleScroll(e, 'preview');\n let mdPreview = useMemo(\n () => (\n <div ref={previewRef} className={previewClassName}>\n <MarkdownPreview {...previewOptions} onScroll={handlePreviewScroll} source={state.markdown || ''} />\n </div>\n ),\n [previewClassName, previewOptions, state.markdown],\n );\n const preview = components?.preview && components?.preview(state.markdown || '', state, dispatch);\n if (preview && React.isValidElement(preview)) {\n mdPreview = (\n <div className={previewClassName} ref={previewRef} onScroll={handlePreviewScroll}>\n {preview}\n </div>\n );\n }\n\n const containerStyle = { ...other.style, height: state.height || '100%' };\n const containerClick = () => dispatch({ barPopup: { ...setGroupPopFalse(state.barPopup) } });\n const dragBarChange = (newHeight: number) => dispatch({ height: newHeight });\n\n return (\n <EditorContext.Provider value={{ ...state, dispatch }}>\n <div ref={container} className={cls} {...other} onClick={containerClick} style={containerStyle}>\n {!hideToolbar && !toolbarBottom && (\n <Toolbar prefixCls={prefixCls} overflow={overflow} toolbarBottom={toolbarBottom} />\n )}\n <div className={`${prefixCls}-content`}>\n {/(edit|live)/.test(state.preview || '') && (\n <TextArea\n className={`${prefixCls}-input`}\n prefixCls={prefixCls}\n autoFocus={autoFocus}\n {...textareaProps}\n onChange={(evn) => {\n onChange && onChange(evn.target.value, evn, state);\n if (textareaProps && textareaProps.onChange) {\n textareaProps.onChange(evn);\n }\n }}\n renderTextarea={components?.textarea || renderTextarea}\n onScroll={(e) => handleScroll(e, 'text')}\n />\n )}\n {/(live|preview)/.test(state.preview || '') && mdPreview}\n </div>\n {visibleDragbar && !state.fullscreen && (\n <DragBar\n prefixCls={prefixCls}\n height={state.height as number}\n maxHeight={maxHeight!}\n minHeight={minHeight!}\n onChange={dragBarChange}\n />\n )}\n {!hideToolbar && toolbarBottom && (\n <Toolbar prefixCls={prefixCls} overflow={overflow} toolbarBottom={toolbarBottom} />\n )}\n </div>\n </EditorContext.Provider>\n );\n};\n\ntype Editor = React.FC<PropsWithRef<MDEditorProps>> & { Markdown: typeof MarkdownPreview };\n\nconst mdEditor: Editor = React.forwardRef(InternalMDEditor) as unknown as Editor;\n\nmdEditor.Markdown = MarkdownPreview;\n\nexport default mdEditor;\n"
113
+ "import React, { useEffect, useReducer, useMemo, useRef, useImperativeHandle, CSSProperties, PropsWithRef } from 'react';\nimport MarkdownPreview, { MarkdownPreviewProps } 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, event?: React.ChangeEvent<HTMLTextAreaElement>, state?: ContextStore) => void;\n /**\n * editor height change listener\n */\n onHeightChange?: (value?: CSSProperties['height'], oldValue?: CSSProperties['height'], state?: ContextStore) => 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 * ⚠️ `Dragbar` is invalid when **`height`** parameter percentage.\n */\n height?: number;\n /**\n * Custom toolbar heigth\n * @default 29px\n *\n * @deprecated toolbar height adaptive: https://github.com/uiwjs/react-md-editor/issues/427\n *\n */\n toolbarHeight?: number;\n /**\n * Show drag and drop tool. Set the height of the editor.\n */\n visibleDragbar?: boolean;\n /**\n * @deprecated use `visibleDragbar`\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 * Disable `fullscreen` setting body styles\n */\n overflow?: boolean;\n /**\n * Maximum drag height. `visibleDragbar=true`\n */\n maxHeight?: number;\n /**\n * Minimum drag height. `visibleDragbar=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 /**\n * Use div to replace TextArea or re-render TextArea\n * @deprecated Please use ~~`renderTextarea`~~ -> `components`\n */\n renderTextarea?: ITextAreaProps['renderTextarea'];\n /**\n * re-render element\n */\n components?: {\n /** Use div to replace TextArea or re-render TextArea */\n textarea?: ITextAreaProps['renderTextarea'];\n /**\n * Override the default command element\n * _`toolbar`_ < _`command[].render`_\n */\n toolbar?: ICommand['render'];\n /** Custom markdown preview */\n preview?: (source: string, state: ContextStore, dispath: React.Dispatch<ContextStore>) => JSX.Element;\n };\n /** Theme configuration */\n 'data-color-mode'?: 'light' | 'dark';\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 * If `false`, the `tab` key inserts a tab character into the textarea. If `true`, the `tab` key executes default behavior e.g. focus shifts to next element.\n */\n defaultTabEnable?: boolean;\n /**\n * You can create your own commands or reuse existing commands.\n */\n commands?: ICommand[];\n /**\n * Filter or modify your commands.\n * https://github.com/uiwjs/react-md-editor/issues/296\n */\n commandsFilter?: (command: ICommand, isExtra: boolean) => false | 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 /** Toolbar on bottom */\n toolbarBottom?: boolean;\n /**\n * The **`direction`** property sets the direction of text, table columns, and horizontal overflow. Use `rtl` for languages written from right to left (like Hebrew or Arabic), and `ltr` for those written from left to right (like English and most other languages).\n *\n * https://github.com/uiwjs/react-md-editor/issues/462\n */\n direction?: CSSProperties['direction'];\n}\n\nfunction setGroupPopFalse(data: Record<string, boolean> = {}) {\n Object.keys(data).forEach((keyname) => {\n data[keyname] = false;\n });\n return data;\n}\n\nexport interface RefMDEditor extends ContextStore {}\n\nconst InternalMDEditor = (\n props: MDEditorProps,\n ref?: ((instance: RefMDEditor) => void) | React.RefObject<RefMDEditor> | null,\n) => {\n const {\n prefixCls = 'w-md-editor',\n className,\n value: propsValue,\n commands = getCommands(),\n commandsFilter,\n direction,\n extraCommands = getExtraCommands(),\n height = 200,\n enableScroll = true,\n visibleDragbar = typeof props.visiableDragbar === 'boolean' ? props.visiableDragbar : true,\n highlightEnable = true,\n preview: previewType = 'live',\n fullscreen = false,\n overflow = true,\n previewOptions = {},\n textareaProps,\n maxHeight = 1200,\n minHeight = 100,\n autoFocus,\n tabSize = 2,\n defaultTabEnable = false,\n onChange,\n onHeightChange,\n hideToolbar,\n toolbarBottom = false,\n components,\n renderTextarea,\n ...other\n } = props || {};\n const cmds = commands\n .map((item) => (commandsFilter ? commandsFilter(item, false) : item))\n .filter(Boolean) as ICommand[];\n const extraCmds = extraCommands\n .map((item) => (commandsFilter ? commandsFilter(item, true) : item))\n .filter(Boolean) as ICommand[];\n let [state, dispatch] = useReducer(reducer, {\n markdown: propsValue,\n preview: previewType,\n components,\n height,\n highlightEnable,\n tabSize,\n defaultTabEnable,\n scrollTop: 0,\n scrollTopPreview: 0,\n commands: cmds,\n extraCommands: extraCmds,\n fullscreen,\n barPopup: {},\n });\n const container = useRef<HTMLDivElement>(null);\n const previewRef = useRef<HTMLDivElement>(null);\n const enableScrollRef = useRef(enableScroll);\n\n useImperativeHandle(ref, () => ({ ...state, container: container.current, dispatch }));\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 'wmde-markdown-var',\n direction ? `${prefixCls}-${direction}` : null,\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(() => 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 // eslint-disable-next-line react-hooks/exhaustive-deps\n useMemo(() => height !== state.height && dispatch({ height: height }), [height]);\n useMemo(\n () => height !== state.height && onHeightChange && onHeightChange(state.height, height, state),\n [height, onHeightChange, state],\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 : 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 const previewClassName = `${prefixCls}-preview ${previewOptions.className || ''}`;\n const handlePreviewScroll = (e: React.UIEvent<HTMLDivElement, UIEvent>) => handleScroll(e, 'preview');\n let mdPreview = useMemo(\n () => (\n <div ref={previewRef} className={previewClassName}>\n <MarkdownPreview {...previewOptions} onScroll={handlePreviewScroll} source={state.markdown || ''} />\n </div>\n ),\n [previewClassName, previewOptions, state.markdown],\n );\n const preview = components?.preview && components?.preview(state.markdown || '', state, dispatch);\n if (preview && React.isValidElement(preview)) {\n mdPreview = (\n <div className={previewClassName} ref={previewRef} onScroll={handlePreviewScroll}>\n {preview}\n </div>\n );\n }\n\n const containerStyle = { ...other.style, height: state.height || '100%' };\n const containerClick = () => dispatch({ barPopup: { ...setGroupPopFalse(state.barPopup) } });\n const dragBarChange = (newHeight: number) => dispatch({ height: newHeight });\n\n return (\n <EditorContext.Provider value={{ ...state, dispatch }}>\n <div ref={container} className={cls} {...other} onClick={containerClick} style={containerStyle}>\n {!hideToolbar && !toolbarBottom && (\n <Toolbar prefixCls={prefixCls} overflow={overflow} toolbarBottom={toolbarBottom} />\n )}\n <div className={`${prefixCls}-content`}>\n {/(edit|live)/.test(state.preview || '') && (\n <TextArea\n className={`${prefixCls}-input`}\n prefixCls={prefixCls}\n autoFocus={autoFocus}\n {...textareaProps}\n onChange={(evn) => {\n onChange && onChange(evn.target.value, evn, state);\n if (textareaProps && textareaProps.onChange) {\n textareaProps.onChange(evn);\n }\n }}\n renderTextarea={components?.textarea || renderTextarea}\n onScroll={(e) => handleScroll(e, 'text')}\n />\n )}\n {/(live|preview)/.test(state.preview || '') && mdPreview}\n </div>\n {visibleDragbar && !state.fullscreen && (\n <DragBar\n prefixCls={prefixCls}\n height={state.height as number}\n maxHeight={maxHeight!}\n minHeight={minHeight!}\n onChange={dragBarChange}\n />\n )}\n {!hideToolbar && toolbarBottom && (\n <Toolbar prefixCls={prefixCls} overflow={overflow} toolbarBottom={toolbarBottom} />\n )}\n </div>\n </EditorContext.Provider>\n );\n};\n\ntype Editor = React.FC<PropsWithRef<MDEditorProps>> & { Markdown: typeof MarkdownPreview };\n\nconst mdEditor: Editor = React.forwardRef(InternalMDEditor) as unknown as Editor;\n\nmdEditor.Markdown = MarkdownPreview;\n\nexport default mdEditor;\n"
114
114
  ],
115
- "mappings": "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"
115
+ "mappings": ";;;AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,UAAU,EAAEC,OAAO,EAAEC,MAAM,EAAEC,mBAAmB,QAAqC,OAAO;AACvH,OAAOC,eAAe,MAAgC,6BAA6B;AACnF,OAAOC,QAAQ,MAA0B,uBAAuB;AAChE,OAAOC,OAAO,MAAM,sBAAsB;AAC1C,OAAOC,OAAO,MAAM,sBAAsB;AAC1C,SAASC,WAAW,EAAEC,gBAAgB,QAAkB,YAAY;AACpE,SAASC,OAAO,EAAEC,aAAa,QAAmC,WAAW;AAC7E;AAAsB;AAAA;AA2ItB,SAASC,gBAAgB,CAACC,IAA6B,EAAO;EAAA,IAApCA,IAA6B;IAA7BA,IAA6B,GAAG,CAAC,CAAC;EAAA;EAC1DC,MAAM,CAACC,IAAI,CAACF,IAAI,CAAC,CAACG,OAAO,CAAEC,OAAO,IAAK;IACrCJ,IAAI,CAACI,OAAO,CAAC,GAAG,KAAK;EACvB,CAAC,CAAC;EACF,OAAOJ,IAAI;AACb;AAIA,IAAMK,gBAAgB,GAAG,CACvBC,KAAoB,EACpBC,GAA6E,KAC1E;EACH,WA6BID,KAAK,IAAI,CAAC,CAAC;IA7BT;MACJE,SAAS,GAAG,aAAa;MACzBC,SAAS;MACTC,KAAK,EAAEC,UAAU;MACjBC,QAAQ,GAAGjB,WAAW,EAAE;MACxBkB,cAAc;MACdC,SAAS;MACTC,aAAa,GAAGnB,gBAAgB,EAAE;MAClCoB,MAAM,GAAG,GAAG;MACZC,YAAY,GAAG,IAAI;MACnBC,cAAc,GAAG,OAAOZ,KAAK,CAACa,eAAe,KAAK,SAAS,GAAGb,KAAK,CAACa,eAAe,GAAG,IAAI;MAC1FC,eAAe,GAAG,IAAI;MACtBC,OAAO,EAAEC,WAAW,GAAG,MAAM;MAC7BC,UAAU,GAAG,KAAK;MAClBC,QAAQ,GAAG,IAAI;MACfC,cAAc,GAAG,CAAC,CAAC;MACnBC,aAAa;MACbC,SAAS,GAAG,IAAI;MAChBC,SAAS,GAAG,GAAG;MACfC,SAAS;MACTC,OAAO,GAAG,CAAC;MACXC,gBAAgB,GAAG,KAAK;MACxBC,QAAQ,EAARA,SAAQ;MACRC,cAAc;MACdC,WAAW;MACXC,aAAa,GAAG,KAAK;MACrBC,UAAU;MACVC;IAEF,CAAC;IADIC,KAAK;EAEV,IAAMC,IAAI,GAAG3B,QAAQ,CAClB4B,GAAG,CAAEC,IAAI,IAAM5B,cAAc,GAAGA,cAAc,CAAC4B,IAAI,EAAE,KAAK,CAAC,GAAGA,IAAK,CAAC,CACpEC,MAAM,CAACC,OAAO,CAAe;EAChC,IAAMC,SAAS,GAAG7B,aAAa,CAC5ByB,GAAG,CAAEC,IAAI,IAAM5B,cAAc,GAAGA,cAAc,CAAC4B,IAAI,EAAE,IAAI,CAAC,GAAGA,IAAK,CAAC,CACnEC,MAAM,CAACC,OAAO,CAAe;EAChC,IAAI,CAACE,KAAK,EAAEC,QAAQ,CAAC,GAAG3D,UAAU,CAACU,OAAO,EAAE;IAC1CkD,QAAQ,EAAEpC,UAAU;IACpBU,OAAO,EAAEC,WAAW;IACpBc,UAAU;IACVpB,MAAM;IACNI,eAAe;IACfU,OAAO;IACPC,gBAAgB;IAChBiB,SAAS,EAAE,CAAC;IACZC,gBAAgB,EAAE,CAAC;IACnBrC,QAAQ,EAAE2B,IAAI;IACdxB,aAAa,EAAE6B,SAAS;IACxBrB,UAAU;IACV2B,QAAQ,EAAE,CAAC;EACb,CAAC,CAAC;EACF,IAAMC,SAAS,GAAG9D,MAAM,CAAiB,IAAI,CAAC;EAC9C,IAAM+D,UAAU,GAAG/D,MAAM,CAAiB,IAAI,CAAC;EAC/C,IAAMgE,eAAe,GAAGhE,MAAM,CAAC4B,YAAY,CAAC;EAE5C3B,mBAAmB,CAACiB,GAAG,EAAE,mBAAYsC,KAAK;IAAEM,SAAS,EAAEA,SAAS,CAACG,OAAO;IAAER;EAAQ,EAAG,CAAC;EACtF1D,OAAO,CAAC,MAAOiE,eAAe,CAACC,OAAO,GAAGrC,YAAa,EAAE,CAACA,YAAY,CAAC,CAAC;EACvE/B,SAAS,CAAC,MAAM;IACd,IAAMqE,SAAuB,GAAG,CAAC,CAAC;IAClC,IAAIJ,SAAS,CAACG,OAAO,EAAE;MACrBC,SAAS,CAACJ,SAAS,GAAGA,SAAS,CAACG,OAAO,IAAIE,SAAS;IACtD;IACAD,SAAS,CAACR,QAAQ,GAAGpC,UAAU,IAAI,EAAE;IACrC4C,SAAS,CAACL,QAAQ,GAAG,CAAC,CAAC;IACvB,IAAIJ,QAAQ,EAAE;MACZA,QAAQ,cAAMD,KAAK,EAAKU,SAAS,EAAG;IACtC;IACA;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,IAAME,GAAG,GAAG,CACVhD,SAAS,EACT,mBAAmB,EACnBK,SAAS,GAAMN,SAAS,SAAIM,SAAS,GAAK,IAAI,EAC9CN,SAAS,EACTqC,KAAK,CAACxB,OAAO,GAAMb,SAAS,cAASqC,KAAK,CAACxB,OAAO,GAAK,IAAI,EAC3DwB,KAAK,CAACtB,UAAU,GAAMf,SAAS,mBAAgB,IAAI,CACpD,CACEkC,MAAM,CAACC,OAAO,CAAC,CACfe,IAAI,CAAC,GAAG,CAAC,CACTC,IAAI,EAAE;EAETvE,OAAO,CACL,MAAMuB,UAAU,KAAKkC,KAAK,CAACE,QAAQ,IAAID,QAAQ,CAAC;IAAEC,QAAQ,EAAEpC,UAAU,IAAI;EAAG,CAAC,CAAC,EAC/E,CAACA,UAAU,EAAEkC,KAAK,CAACE,QAAQ,CAAC,CAC7B;EACD;EACA3D,OAAO,CAAC,MAAMkC,WAAW,KAAKuB,KAAK,CAACxB,OAAO,IAAIyB,QAAQ,CAAC;IAAEzB,OAAO,EAAEC;EAAY,CAAC,CAAC,EAAE,CAACA,WAAW,CAAC,CAAC;EACjG;EACAlC,OAAO,CAAC,MAAM0C,OAAO,KAAKe,KAAK,CAACf,OAAO,IAAIgB,QAAQ,CAAC;IAAEhB;EAAQ,CAAC,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAC5E1C,OAAO,CACL,MAAMgC,eAAe,KAAKyB,KAAK,CAACzB,eAAe,IAAI0B,QAAQ,CAAC;IAAE1B;EAAgB,CAAC,CAAC;EAChF;EACA,CAACA,eAAe,CAAC,CAClB;EACD;EACAhC,OAAO,CAAC,MAAMyC,SAAS,KAAKgB,KAAK,CAAChB,SAAS,IAAIiB,QAAQ,CAAC;IAAEjB,SAAS,EAAEA;EAAU,CAAC,CAAC,EAAE,CAACA,SAAS,CAAC,CAAC;EAC/FzC,OAAO,CACL,MAAMmC,UAAU,KAAKsB,KAAK,CAACtB,UAAU,IAAIuB,QAAQ,CAAC;IAAEvB,UAAU,EAAEA;EAAW,CAAC,CAAC;EAC7E;EACA,CAACA,UAAU,CAAC,CACb;EACD;EACAnC,OAAO,CAAC,MAAM4B,MAAM,KAAK6B,KAAK,CAAC7B,MAAM,IAAI8B,QAAQ,CAAC;IAAE9B,MAAM,EAAEA;EAAO,CAAC,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAChF5B,OAAO,CACL,MAAM4B,MAAM,KAAK6B,KAAK,CAAC7B,MAAM,IAAIiB,cAAc,IAAIA,cAAc,CAACY,KAAK,CAAC7B,MAAM,EAAEA,MAAM,EAAE6B,KAAK,CAAC,EAC9F,CAAC7B,MAAM,EAAEiB,cAAc,EAAEY,KAAK,CAAC,CAChC;EAED,IAAMe,cAAc,GAAGvE,MAAM,EAAkB;EAC/C,IAAMwE,MAAM,GAAGxE,MAAM,CAAqB,SAAS,CAAC;EACpD,IAAMyE,UAAU,GAAGzE,MAAM,CAAC,KAAK,CAAC;EAEhCD,OAAO,CAAC,MAAM;IACZwE,cAAc,CAACN,OAAO,GAAGT,KAAK,CAACkB,YAAY;IAC3C,IAAIlB,KAAK,CAACkB,YAAY,EAAE;MACtBlB,KAAK,CAACkB,YAAY,CAACC,gBAAgB,CAAC,WAAW,EAAE,MAAM;QACrDH,MAAM,CAACP,OAAO,GAAG,MAAM;MACzB,CAAC,CAAC;MACFT,KAAK,CAACkB,YAAY,CAACC,gBAAgB,CAAC,YAAY,EAAE,MAAM;QACtDH,MAAM,CAACP,OAAO,GAAG,SAAS;MAC5B,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,CAACT,KAAK,CAACkB,YAAY,CAAC,CAAC;EAExB,IAAME,YAAY,GAAG,CAACC,CAAgC,EAAEC,IAAwB,KAAK;IACnF,IAAI,CAACd,eAAe,CAACC,OAAO,EAAE;IAC9B,IAAMc,WAAW,GAAGR,cAAc,CAACN,OAAO;IAC1C,IAAMe,UAAU,GAAGjB,UAAU,CAACE,OAAO,GAAGF,UAAU,CAACE,OAAO,GAAGE,SAAS;IACtE,IAAI,CAACM,UAAU,CAACR,OAAO,EAAE;MACvBO,MAAM,CAACP,OAAO,GAAGa,IAAI;MACrBL,UAAU,CAACR,OAAO,GAAG,IAAI;IAC3B;IACA,IAAIc,WAAW,IAAIC,UAAU,EAAE;MAC7B,IAAMC,KAAK,GACT,CAACF,WAAW,CAACG,YAAY,GAAGH,WAAW,CAACI,YAAY,KAAKH,UAAU,CAACE,YAAY,GAAGF,UAAU,CAACG,YAAY,CAAC;MAC7G,IAAIN,CAAC,CAACO,MAAM,KAAKL,WAAW,IAAIP,MAAM,CAACP,OAAO,KAAK,MAAM,EAAE;QACzDe,UAAU,CAACrB,SAAS,GAAGoB,WAAW,CAACpB,SAAS,GAAGsB,KAAK;MACtD;MACA,IAAIJ,CAAC,CAACO,MAAM,KAAKJ,UAAU,IAAIR,MAAM,CAACP,OAAO,KAAK,SAAS,EAAE;QAC3Dc,WAAW,CAACpB,SAAS,GAAGqB,UAAU,CAACrB,SAAS,GAAGsB,KAAK;MACtD;MACA,IAAItB,SAAS,GAAG,CAAC;MACjB,IAAIa,MAAM,CAACP,OAAO,KAAK,MAAM,EAAE;QAC7BN,SAAS,GAAGoB,WAAW,CAACpB,SAAS,IAAI,CAAC;MACxC,CAAC,MAAM,IAAIa,MAAM,CAACP,OAAO,KAAK,SAAS,EAAE;QACvCN,SAAS,GAAGqB,UAAU,CAACrB,SAAS,IAAI,CAAC;MACvC;MACAF,QAAQ,CAAC;QAAEE;MAAU,CAAC,CAAC;IACzB;EACF,CAAC;EAED,IAAM0B,gBAAgB,GAAMlE,SAAS,kBAAYiB,cAAc,CAAChB,SAAS,IAAI,EAAE,CAAE;EACjF,IAAMkE,mBAAmB,GAAIT,CAAyC,IAAKD,YAAY,CAACC,CAAC,EAAE,SAAS,CAAC;EACrG,IAAIU,SAAS,GAAGxF,OAAO,CACrB,mBACE;IAAK,GAAG,EAAEgE,UAAW;IAAC,SAAS,EAAEsB,gBAAiB;IAAA,uBAChD,KAAC,eAAe,eAAKjD,cAAc;MAAE,QAAQ,EAAEkD,mBAAoB;MAAC,MAAM,EAAE9B,KAAK,CAACE,QAAQ,IAAI;IAAG;EAAG,EAEvG,EACD,CAAC2B,gBAAgB,EAAEjD,cAAc,EAAEoB,KAAK,CAACE,QAAQ,CAAC,CACnD;EACD,IAAM1B,OAAO,GAAG,CAAAe,UAAU,oBAAVA,UAAU,CAAEf,OAAO,MAAIe,UAAU,oBAAVA,UAAU,CAAEf,OAAO,CAACwB,KAAK,CAACE,QAAQ,IAAI,EAAE,EAAEF,KAAK,EAAEC,QAAQ,CAAC;EACjG,IAAIzB,OAAO,iBAAIpC,KAAK,CAAC4F,cAAc,CAACxD,OAAO,CAAC,EAAE;IAC5CuD,SAAS,gBACP;MAAK,SAAS,EAAEF,gBAAiB;MAAC,GAAG,EAAEtB,UAAW;MAAC,QAAQ,EAAEuB,mBAAoB;MAAA,UAC9EtD;IAAO,EAEX;EACH;EAEA,IAAMyD,cAAc,gBAAQxC,KAAK,CAACyC,KAAK;IAAE/D,MAAM,EAAE6B,KAAK,CAAC7B,MAAM,IAAI;EAAM,EAAE;EACzE,IAAMgE,cAAc,GAAG,MAAMlC,QAAQ,CAAC;IAAEI,QAAQ,eAAOnD,gBAAgB,CAAC8C,KAAK,CAACK,QAAQ,CAAC;EAAG,CAAC,CAAC;EAC5F,IAAM+B,aAAa,GAAIC,SAAiB,IAAKpC,QAAQ,CAAC;IAAE9B,MAAM,EAAEkE;EAAU,CAAC,CAAC;EAE5E,oBACE,KAAC,aAAa,CAAC,QAAQ;IAAC,KAAK,eAAOrC,KAAK;MAAEC;IAAQ,EAAG;IAAA,uBACpD;MAAK,GAAG,EAAEK,SAAU;MAAC,SAAS,EAAEM;IAAI,GAAKnB,KAAK;MAAE,OAAO,EAAE0C,cAAe;MAAC,KAAK,EAAEF,cAAe;MAAA,WAC5F,CAAC5C,WAAW,IAAI,CAACC,aAAa,iBAC7B,KAAC,OAAO;QAAC,SAAS,EAAE3B,SAAU;QAAC,QAAQ,EAAEgB,QAAS;QAAC,aAAa,EAAEW;MAAc,EACjF,eACD;QAAK,SAAS,EAAK3B,SAAS,aAAW;QAAA,WACpC,aAAa,CAAC2E,IAAI,CAACtC,KAAK,CAACxB,OAAO,IAAI,EAAE,CAAC,iBACtC,KAAC,QAAQ;UACP,SAAS,EAAKb,SAAS,WAAS;UAChC,SAAS,EAAEA,SAAU;UACrB,SAAS,EAAEqB;QAAU,GACjBH,aAAa;UACjB,QAAQ,EAAG0D,GAAG,IAAK;YACjBpD,SAAQ,IAAIA,SAAQ,CAACoD,GAAG,CAACX,MAAM,CAAC/D,KAAK,EAAE0E,GAAG,EAAEvC,KAAK,CAAC;YAClD,IAAInB,aAAa,IAAIA,aAAa,CAACM,QAAQ,EAAE;cAC3CN,aAAa,CAACM,QAAQ,CAACoD,GAAG,CAAC;YAC7B;UACF,CAAE;UACF,cAAc,EAAE,CAAAhD,UAAU,oBAAVA,UAAU,CAAEiD,QAAQ,KAAIhD,cAAe;UACvD,QAAQ,EAAG6B,CAAC,IAAKD,YAAY,CAACC,CAAC,EAAE,MAAM;QAAE,GAE5C,EACA,gBAAgB,CAACiB,IAAI,CAACtC,KAAK,CAACxB,OAAO,IAAI,EAAE,CAAC,IAAIuD,SAAS;MAAA,EACpD,EACL1D,cAAc,IAAI,CAAC2B,KAAK,CAACtB,UAAU,iBAClC,KAAC,OAAO;QACN,SAAS,EAAEf,SAAU;QACrB,MAAM,EAAEqC,KAAK,CAAC7B,MAAiB;QAC/B,SAAS,EAAEW,SAAW;QACtB,SAAS,EAAEC,SAAW;QACtB,QAAQ,EAAEqD;MAAc,EAE3B,EACA,CAAC/C,WAAW,IAAIC,aAAa,iBAC5B,KAAC,OAAO;QAAC,SAAS,EAAE3B,SAAU;QAAC,QAAQ,EAAEgB,QAAS;QAAC,aAAa,EAAEW;MAAc,EACjF;IAAA;EACG,EACiB;AAE7B,CAAC;AAID,IAAMmD,QAAgB,gBAAGrG,KAAK,CAACsG,UAAU,CAAClF,gBAAgB,CAAsB;AAEhFiF,QAAQ,CAACE,QAAQ,GAAGjG,eAAe;AAEnC,eAAe+F,QAAQ"
116
116
  }
@@ -29,5 +29,5 @@
29
29
  "sourcesContent": [
30
30
  "import React from 'react';\nimport { insertAtLineStart } from '../utils/InsertTextAtPosition';\nimport { ICommand, TextState, TextAreaTextApi } from './';\n\nexport const title1: ICommand = {\n name: 'title1',\n keyCommand: 'title1',\n shortcuts: 'ctrlcmd+1',\n value: 'title1',\n buttonProps: { 'aria-label': 'Insert title1 (ctrl + 1)', title: 'Insert title1 (ctrl + 1)' },\n icon: <div style={{ fontSize: 18, textAlign: 'left' }}>Title 1</div>,\n execute: (state: TextState, api: TextAreaTextApi) => {\n if (state.selection.start === 0 || /\\n$/.test(state.text)) {\n api.replaceSelection('# ');\n } else {\n insertAtLineStart('# ', state.selection.start, api.textArea);\n }\n },\n};\n"
31
31
  ],
32
- "mappings": "AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,iBAAiB,QAAQ,+BAA+B;AAAC;AAGlE,OAAO,IAAMC,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QAAQ;EACdC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE,WAAW;EACtBC,KAAK,EAAE,QAAQ;EACfC,WAAW,EAAE;IAAE,YAAY,EAAE,0BAA0B;IAAEC,KAAK,EAAE;EAA2B,CAAC;EAC5FC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAE;MAAEC,SAAS,EAAE;IAAO,CAAE;IAAA;EAAA,EAAc;EACpEC,OAAO,EAAE,CAACC,KAAgB,EAAEC,GAAoB,KAAK;IACnD,IAAID,KAAK,CAACE,SAAS,CAACC,KAAK,KAAK,CAAC,IAAI,KAAK,CAACC,IAAI,CAACJ,KAAK,CAACK,IAAI,CAAC,EAAE;MACzDJ,GAAG,CAACK,gBAAgB,CAAC,IAAI,CAAC;IAC5B,CAAC,MAAM;MACLlB,iBAAiB,CAAC,IAAI,EAAEY,KAAK,CAACE,SAAS,CAACC,KAAK,EAAEF,GAAG,CAACM,QAAQ,CAAC;IAC9D;EACF;AACF,CAAC"
32
+ "mappings": "AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,iBAAiB,QAAQ,+BAA+B;AAAC;AAGlE,OAAO,IAAMC,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QAAQ;EACdC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE,WAAW;EACtBC,KAAK,EAAE,QAAQ;EACfC,WAAW,EAAE;IAAE,YAAY,EAAE,0BAA0B;IAAEC,KAAK,EAAE;EAA2B,CAAC;EAC5FC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAE;MAAEC,SAAS,EAAE;IAAO,CAAE;IAAA,UAAC;EAAO,EAAM;EACpEC,OAAO,EAAE,CAACC,KAAgB,EAAEC,GAAoB,KAAK;IACnD,IAAID,KAAK,CAACE,SAAS,CAACC,KAAK,KAAK,CAAC,IAAI,KAAK,CAACC,IAAI,CAACJ,KAAK,CAACK,IAAI,CAAC,EAAE;MACzDJ,GAAG,CAACK,gBAAgB,CAAC,IAAI,CAAC;IAC5B,CAAC,MAAM;MACLlB,iBAAiB,CAAC,IAAI,EAAEY,KAAK,CAACE,SAAS,CAACC,KAAK,EAAEF,GAAG,CAACM,QAAQ,CAAC;IAC9D;EACF;AACF,CAAC"
33
33
  }
@@ -29,5 +29,5 @@
29
29
  "sourcesContent": [
30
30
  "import * as React from 'react';\nimport { insertAtLineStart } from '../utils/InsertTextAtPosition';\nimport { ICommand, TextState, TextAreaTextApi } from './';\n\nexport const title2: ICommand = {\n name: 'title2',\n keyCommand: 'title2',\n shortcuts: 'ctrlcmd+2',\n value: 'title2',\n buttonProps: { 'aria-label': 'Insert title2 (ctrl + 2)', title: 'Insert title2 (ctrl + 2)' },\n icon: <div style={{ fontSize: 16, textAlign: 'left' }}>Title 2</div>,\n execute: (state: TextState, api: TextAreaTextApi) => {\n if (state.selection.start === 0 || /\\n$/.test(state.text)) {\n api.replaceSelection('## ');\n } else {\n insertAtLineStart('## ', state.selection.start, api.textArea);\n }\n },\n};\n"
31
31
  ],
32
- "mappings": "AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,iBAAiB,QAAQ,+BAA+B;AAAC;AAGlE,OAAO,IAAMC,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QAAQ;EACdC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE,WAAW;EACtBC,KAAK,EAAE,QAAQ;EACfC,WAAW,EAAE;IAAE,YAAY,EAAE,0BAA0B;IAAEC,KAAK,EAAE;EAA2B,CAAC;EAC5FC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAE;MAAEC,SAAS,EAAE;IAAO,CAAE;IAAA;EAAA,EAAc;EACpEC,OAAO,EAAE,CAACC,KAAgB,EAAEC,GAAoB,KAAK;IACnD,IAAID,KAAK,CAACE,SAAS,CAACC,KAAK,KAAK,CAAC,IAAI,KAAK,CAACC,IAAI,CAACJ,KAAK,CAACK,IAAI,CAAC,EAAE;MACzDJ,GAAG,CAACK,gBAAgB,CAAC,KAAK,CAAC;IAC7B,CAAC,MAAM;MACLlB,iBAAiB,CAAC,KAAK,EAAEY,KAAK,CAACE,SAAS,CAACC,KAAK,EAAEF,GAAG,CAACM,QAAQ,CAAC;IAC/D;EACF;AACF,CAAC"
32
+ "mappings": "AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,iBAAiB,QAAQ,+BAA+B;AAAC;AAGlE,OAAO,IAAMC,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QAAQ;EACdC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE,WAAW;EACtBC,KAAK,EAAE,QAAQ;EACfC,WAAW,EAAE;IAAE,YAAY,EAAE,0BAA0B;IAAEC,KAAK,EAAE;EAA2B,CAAC;EAC5FC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAE;MAAEC,SAAS,EAAE;IAAO,CAAE;IAAA,UAAC;EAAO,EAAM;EACpEC,OAAO,EAAE,CAACC,KAAgB,EAAEC,GAAoB,KAAK;IACnD,IAAID,KAAK,CAACE,SAAS,CAACC,KAAK,KAAK,CAAC,IAAI,KAAK,CAACC,IAAI,CAACJ,KAAK,CAACK,IAAI,CAAC,EAAE;MACzDJ,GAAG,CAACK,gBAAgB,CAAC,KAAK,CAAC;IAC7B,CAAC,MAAM;MACLlB,iBAAiB,CAAC,KAAK,EAAEY,KAAK,CAACE,SAAS,CAACC,KAAK,EAAEF,GAAG,CAACM,QAAQ,CAAC;IAC/D;EACF;AACF,CAAC"
33
33
  }
@@ -29,5 +29,5 @@
29
29
  "sourcesContent": [
30
30
  "import * as React from 'react';\nimport { insertAtLineStart } from '../utils/InsertTextAtPosition';\nimport { ICommand, TextState, TextAreaTextApi } from './';\n\nexport const title3: ICommand = {\n name: 'title3',\n keyCommand: 'title3',\n shortcuts: 'ctrlcmd+3',\n value: 'title3',\n buttonProps: { 'aria-label': 'Insert title3 (ctrl + 3)', title: 'Insert title3 (ctrl + 3)' },\n icon: <div style={{ fontSize: 15, textAlign: 'left' }}>Title 3</div>,\n execute: (state: TextState, api: TextAreaTextApi) => {\n if (state.selection.start === 0 || /\\n$/.test(state.text)) {\n api.replaceSelection('### ');\n } else {\n insertAtLineStart('### ', state.selection.start, api.textArea);\n }\n },\n};\n"
31
31
  ],
32
- "mappings": "AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,iBAAiB,QAAQ,+BAA+B;AAAC;AAGlE,OAAO,IAAMC,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QAAQ;EACdC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE,WAAW;EACtBC,KAAK,EAAE,QAAQ;EACfC,WAAW,EAAE;IAAE,YAAY,EAAE,0BAA0B;IAAEC,KAAK,EAAE;EAA2B,CAAC;EAC5FC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAE;MAAEC,SAAS,EAAE;IAAO,CAAE;IAAA;EAAA,EAAc;EACpEC,OAAO,EAAE,CAACC,KAAgB,EAAEC,GAAoB,KAAK;IACnD,IAAID,KAAK,CAACE,SAAS,CAACC,KAAK,KAAK,CAAC,IAAI,KAAK,CAACC,IAAI,CAACJ,KAAK,CAACK,IAAI,CAAC,EAAE;MACzDJ,GAAG,CAACK,gBAAgB,CAAC,MAAM,CAAC;IAC9B,CAAC,MAAM;MACLlB,iBAAiB,CAAC,MAAM,EAAEY,KAAK,CAACE,SAAS,CAACC,KAAK,EAAEF,GAAG,CAACM,QAAQ,CAAC;IAChE;EACF;AACF,CAAC"
32
+ "mappings": "AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,iBAAiB,QAAQ,+BAA+B;AAAC;AAGlE,OAAO,IAAMC,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QAAQ;EACdC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE,WAAW;EACtBC,KAAK,EAAE,QAAQ;EACfC,WAAW,EAAE;IAAE,YAAY,EAAE,0BAA0B;IAAEC,KAAK,EAAE;EAA2B,CAAC;EAC5FC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAE;MAAEC,SAAS,EAAE;IAAO,CAAE;IAAA,UAAC;EAAO,EAAM;EACpEC,OAAO,EAAE,CAACC,KAAgB,EAAEC,GAAoB,KAAK;IACnD,IAAID,KAAK,CAACE,SAAS,CAACC,KAAK,KAAK,CAAC,IAAI,KAAK,CAACC,IAAI,CAACJ,KAAK,CAACK,IAAI,CAAC,EAAE;MACzDJ,GAAG,CAACK,gBAAgB,CAAC,MAAM,CAAC;IAC9B,CAAC,MAAM;MACLlB,iBAAiB,CAAC,MAAM,EAAEY,KAAK,CAACE,SAAS,CAACC,KAAK,EAAEF,GAAG,CAACM,QAAQ,CAAC;IAChE;EACF;AACF,CAAC"
33
33
  }
@@ -29,5 +29,5 @@
29
29
  "sourcesContent": [
30
30
  "import * as React from 'react';\nimport { insertAtLineStart } from '../utils/InsertTextAtPosition';\nimport { ICommand, TextState, TextAreaTextApi } from './';\n\nexport const title4: ICommand = {\n name: 'title4',\n keyCommand: 'title4',\n shortcuts: 'ctrlcmd+4',\n value: 'title4',\n buttonProps: { 'aria-label': 'Insert title4 (ctrl + 4)', title: 'Insert title4 (ctrl + 4)' },\n icon: <div style={{ fontSize: 14, textAlign: 'left' }}>Title 4</div>,\n execute: (state: TextState, api: TextAreaTextApi) => {\n if (state.selection.start === 0 || /\\n$/.test(state.text)) {\n api.replaceSelection('#### ');\n } else {\n insertAtLineStart('#### ', state.selection.start, api.textArea);\n }\n },\n};\n"
31
31
  ],
32
- "mappings": "AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,iBAAiB,QAAQ,+BAA+B;AAAC;AAGlE,OAAO,IAAMC,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QAAQ;EACdC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE,WAAW;EACtBC,KAAK,EAAE,QAAQ;EACfC,WAAW,EAAE;IAAE,YAAY,EAAE,0BAA0B;IAAEC,KAAK,EAAE;EAA2B,CAAC;EAC5FC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAE;MAAEC,SAAS,EAAE;IAAO,CAAE;IAAA;EAAA,EAAc;EACpEC,OAAO,EAAE,CAACC,KAAgB,EAAEC,GAAoB,KAAK;IACnD,IAAID,KAAK,CAACE,SAAS,CAACC,KAAK,KAAK,CAAC,IAAI,KAAK,CAACC,IAAI,CAACJ,KAAK,CAACK,IAAI,CAAC,EAAE;MACzDJ,GAAG,CAACK,gBAAgB,CAAC,OAAO,CAAC;IAC/B,CAAC,MAAM;MACLlB,iBAAiB,CAAC,OAAO,EAAEY,KAAK,CAACE,SAAS,CAACC,KAAK,EAAEF,GAAG,CAACM,QAAQ,CAAC;IACjE;EACF;AACF,CAAC"
32
+ "mappings": "AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,iBAAiB,QAAQ,+BAA+B;AAAC;AAGlE,OAAO,IAAMC,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QAAQ;EACdC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE,WAAW;EACtBC,KAAK,EAAE,QAAQ;EACfC,WAAW,EAAE;IAAE,YAAY,EAAE,0BAA0B;IAAEC,KAAK,EAAE;EAA2B,CAAC;EAC5FC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAE;MAAEC,SAAS,EAAE;IAAO,CAAE;IAAA,UAAC;EAAO,EAAM;EACpEC,OAAO,EAAE,CAACC,KAAgB,EAAEC,GAAoB,KAAK;IACnD,IAAID,KAAK,CAACE,SAAS,CAACC,KAAK,KAAK,CAAC,IAAI,KAAK,CAACC,IAAI,CAACJ,KAAK,CAACK,IAAI,CAAC,EAAE;MACzDJ,GAAG,CAACK,gBAAgB,CAAC,OAAO,CAAC;IAC/B,CAAC,MAAM;MACLlB,iBAAiB,CAAC,OAAO,EAAEY,KAAK,CAACE,SAAS,CAACC,KAAK,EAAEF,GAAG,CAACM,QAAQ,CAAC;IACjE;EACF;AACF,CAAC"
33
33
  }
@@ -29,5 +29,5 @@
29
29
  "sourcesContent": [
30
30
  "import * as React from 'react';\nimport { insertAtLineStart } from '../utils/InsertTextAtPosition';\nimport { ICommand, TextState, TextAreaTextApi } from './';\n\nexport const title5: ICommand = {\n name: 'title5',\n keyCommand: 'title5',\n shortcuts: 'ctrlcmd+5',\n value: 'title5',\n buttonProps: { 'aria-label': 'Insert title5 (ctrl + 5)', title: 'Insert title5 (ctrl + 5)' },\n icon: <div style={{ fontSize: 12, textAlign: 'left' }}>Title 5</div>,\n execute: (state: TextState, api: TextAreaTextApi) => {\n if (state.selection.start === 0 || /\\n$/.test(state.text)) {\n api.replaceSelection('##### ');\n } else {\n insertAtLineStart('##### ', state.selection.start, api.textArea);\n }\n },\n};\n"
31
31
  ],
32
- "mappings": "AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,iBAAiB,QAAQ,+BAA+B;AAAC;AAGlE,OAAO,IAAMC,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QAAQ;EACdC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE,WAAW;EACtBC,KAAK,EAAE,QAAQ;EACfC,WAAW,EAAE;IAAE,YAAY,EAAE,0BAA0B;IAAEC,KAAK,EAAE;EAA2B,CAAC;EAC5FC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAE;MAAEC,SAAS,EAAE;IAAO,CAAE;IAAA;EAAA,EAAc;EACpEC,OAAO,EAAE,CAACC,KAAgB,EAAEC,GAAoB,KAAK;IACnD,IAAID,KAAK,CAACE,SAAS,CAACC,KAAK,KAAK,CAAC,IAAI,KAAK,CAACC,IAAI,CAACJ,KAAK,CAACK,IAAI,CAAC,EAAE;MACzDJ,GAAG,CAACK,gBAAgB,CAAC,QAAQ,CAAC;IAChC,CAAC,MAAM;MACLlB,iBAAiB,CAAC,QAAQ,EAAEY,KAAK,CAACE,SAAS,CAACC,KAAK,EAAEF,GAAG,CAACM,QAAQ,CAAC;IAClE;EACF;AACF,CAAC"
32
+ "mappings": "AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,iBAAiB,QAAQ,+BAA+B;AAAC;AAGlE,OAAO,IAAMC,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QAAQ;EACdC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE,WAAW;EACtBC,KAAK,EAAE,QAAQ;EACfC,WAAW,EAAE;IAAE,YAAY,EAAE,0BAA0B;IAAEC,KAAK,EAAE;EAA2B,CAAC;EAC5FC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAE;MAAEC,SAAS,EAAE;IAAO,CAAE;IAAA,UAAC;EAAO,EAAM;EACpEC,OAAO,EAAE,CAACC,KAAgB,EAAEC,GAAoB,KAAK;IACnD,IAAID,KAAK,CAACE,SAAS,CAACC,KAAK,KAAK,CAAC,IAAI,KAAK,CAACC,IAAI,CAACJ,KAAK,CAACK,IAAI,CAAC,EAAE;MACzDJ,GAAG,CAACK,gBAAgB,CAAC,QAAQ,CAAC;IAChC,CAAC,MAAM;MACLlB,iBAAiB,CAAC,QAAQ,EAAEY,KAAK,CAACE,SAAS,CAACC,KAAK,EAAEF,GAAG,CAACM,QAAQ,CAAC;IAClE;EACF;AACF,CAAC"
33
33
  }
@@ -29,5 +29,5 @@
29
29
  "sourcesContent": [
30
30
  "import * as React from 'react';\nimport { insertAtLineStart } from '../utils/InsertTextAtPosition';\nimport { ICommand, TextState, TextAreaTextApi } from './';\n\nexport const title6: ICommand = {\n name: 'title6',\n keyCommand: 'title6',\n shortcuts: 'ctrlcmd+6',\n value: 'title6',\n buttonProps: { 'aria-label': 'Insert title6 (ctrl + 6)', title: 'Insert title6 (ctrl + 6)' },\n icon: <div style={{ fontSize: 12, textAlign: 'left' }}>Title 6</div>,\n execute: (state: TextState, api: TextAreaTextApi) => {\n if (state.selection.start === 0 || /\\n$/.test(state.text)) {\n api.replaceSelection('###### ');\n } else {\n insertAtLineStart('###### ', state.selection.start, api.textArea);\n }\n },\n};\n"
31
31
  ],
32
- "mappings": "AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,iBAAiB,QAAQ,+BAA+B;AAAC;AAGlE,OAAO,IAAMC,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QAAQ;EACdC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE,WAAW;EACtBC,KAAK,EAAE,QAAQ;EACfC,WAAW,EAAE;IAAE,YAAY,EAAE,0BAA0B;IAAEC,KAAK,EAAE;EAA2B,CAAC;EAC5FC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAE;MAAEC,SAAS,EAAE;IAAO,CAAE;IAAA;EAAA,EAAc;EACpEC,OAAO,EAAE,CAACC,KAAgB,EAAEC,GAAoB,KAAK;IACnD,IAAID,KAAK,CAACE,SAAS,CAACC,KAAK,KAAK,CAAC,IAAI,KAAK,CAACC,IAAI,CAACJ,KAAK,CAACK,IAAI,CAAC,EAAE;MACzDJ,GAAG,CAACK,gBAAgB,CAAC,SAAS,CAAC;IACjC,CAAC,MAAM;MACLlB,iBAAiB,CAAC,SAAS,EAAEY,KAAK,CAACE,SAAS,CAACC,KAAK,EAAEF,GAAG,CAACM,QAAQ,CAAC;IACnE;EACF;AACF,CAAC"
32
+ "mappings": "AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,iBAAiB,QAAQ,+BAA+B;AAAC;AAGlE,OAAO,IAAMC,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QAAQ;EACdC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE,WAAW;EACtBC,KAAK,EAAE,QAAQ;EACfC,WAAW,EAAE;IAAE,YAAY,EAAE,0BAA0B;IAAEC,KAAK,EAAE;EAA2B,CAAC;EAC5FC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAE;MAAEC,SAAS,EAAE;IAAO,CAAE;IAAA,UAAC;EAAO,EAAM;EACpEC,OAAO,EAAE,CAACC,KAAgB,EAAEC,GAAoB,KAAK;IACnD,IAAID,KAAK,CAACE,SAAS,CAACC,KAAK,KAAK,CAAC,IAAI,KAAK,CAACC,IAAI,CAACJ,KAAK,CAACK,IAAI,CAAC,EAAE;MACzDJ,GAAG,CAACK,gBAAgB,CAAC,SAAS,CAAC;IACjC,CAAC,MAAM;MACLlB,iBAAiB,CAAC,SAAS,EAAEY,KAAK,CAACE,SAAS,CAACC,KAAK,EAAEF,GAAG,CAACM,QAAQ,CAAC;IACnE;EACF;AACF,CAAC"
33
33
  }
@@ -1,4 +1,4 @@
1
- .w-md-editor-aree {
1
+ .w-md-editor-area {
2
2
  overflow: auto;
3
3
  border-radius: 5px;
4
4
  }
@@ -58,7 +58,7 @@ export default function TextArea(props) {
58
58
  };
59
59
  return /*#__PURE__*/_jsx("div", {
60
60
  ref: warp,
61
- className: prefixCls + "-aree " + (className || ''),
61
+ className: prefixCls + "-area " + (className || ''),
62
62
  onScroll: onScroll,
63
63
  children: /*#__PURE__*/_jsx("div", {
64
64
  className: prefixCls + "-text",
@@ -51,7 +51,7 @@
51
51
  "../../../src/components/TextArea/index.tsx"
52
52
  ],
53
53
  "sourcesContent": [
54
- "import React, { useEffect, Fragment, useContext } from 'react';\nimport { EditorContext, ContextStore, ExecuteCommandState } from '../../Context';\nimport shortcuts from './shortcuts';\nimport Markdown from './Markdown';\nimport Textarea, { TextAreaProps } from './Textarea';\nimport { IProps } from '../../Editor';\nimport { TextAreaCommandOrchestrator, ICommand } from '../../commands';\nimport './index.less';\n\ntype RenderTextareaHandle = {\n dispatch: ContextStore['dispatch'];\n onChange?: TextAreaProps['onChange'];\n useContext?: {\n commands: ContextStore['commands'];\n extraCommands: ContextStore['extraCommands'];\n commandOrchestrator?: TextAreaCommandOrchestrator;\n };\n shortcuts?: (\n e: KeyboardEvent | React.KeyboardEvent<HTMLTextAreaElement>,\n commands: ICommand[],\n commandOrchestrator?: TextAreaCommandOrchestrator,\n dispatch?: React.Dispatch<ContextStore>,\n state?: ExecuteCommandState,\n ) => void;\n};\n\nexport interface ITextAreaProps\n extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'value' | 'onScroll'>,\n IProps {\n value?: string;\n onScroll?: (e: React.UIEvent<HTMLDivElement>) => void;\n renderTextarea?: (\n props: React.TextareaHTMLAttributes<HTMLTextAreaElement> | React.HTMLAttributes<HTMLDivElement>,\n opts: RenderTextareaHandle,\n ) => JSX.Element;\n}\n\nexport type TextAreaRef = {\n text?: HTMLTextAreaElement;\n warp?: HTMLDivElement;\n};\n\nexport default function TextArea(props: ITextAreaProps) {\n const { prefixCls, className, onScroll, renderTextarea, ...otherProps } = props || {};\n const { markdown, scrollTop, commands, highlightEnable, extraCommands, dispatch } = useContext(EditorContext);\n const textRef = React.useRef<HTMLTextAreaElement>(null);\n const executeRef = React.useRef<TextAreaCommandOrchestrator>();\n const warp = React.createRef<HTMLDivElement>();\n useEffect(() => {\n const state: ContextStore = {};\n if (warp.current) {\n state.textareaWarp = warp.current || undefined;\n warp.current.scrollTop = scrollTop || 0;\n }\n if (dispatch) {\n dispatch({ ...state });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (textRef.current && dispatch) {\n const commandOrchestrator = new TextAreaCommandOrchestrator(textRef.current);\n executeRef.current = commandOrchestrator;\n dispatch({ textarea: textRef.current, commandOrchestrator });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const textStyle: React.CSSProperties = highlightEnable ? {} : { WebkitTextFillColor: 'initial', overflow: 'auto' };\n\n return (\n <div ref={warp} className={`${prefixCls}-aree ${className || ''}`} onScroll={onScroll}>\n <div className={`${prefixCls}-text`}>\n {renderTextarea ? (\n React.cloneElement(\n renderTextarea(\n {\n ...otherProps,\n value: markdown,\n autoComplete: 'off',\n autoCorrect: 'off',\n spellCheck: 'false',\n autoCapitalize: 'off',\n className: `${prefixCls}-text-input`,\n style: {\n WebkitTextFillColor: 'inherit',\n overflow: 'auto',\n },\n },\n {\n dispatch,\n onChange: otherProps.onChange,\n shortcuts,\n useContext: { commands, extraCommands, commandOrchestrator: executeRef.current },\n },\n ),\n {\n ref: textRef,\n },\n )\n ) : (\n <Fragment>\n {highlightEnable && <Markdown prefixCls={prefixCls} />}\n <Textarea prefixCls={prefixCls} {...otherProps} style={textStyle} />\n </Fragment>\n )}\n </div>\n </div>\n );\n}\n"
54
+ "import React, { useEffect, Fragment, useContext } from 'react';\nimport { EditorContext, ContextStore, ExecuteCommandState } from '../../Context';\nimport shortcuts from './shortcuts';\nimport Markdown from './Markdown';\nimport Textarea, { TextAreaProps } from './Textarea';\nimport { IProps } from '../../Editor';\nimport { TextAreaCommandOrchestrator, ICommand } from '../../commands';\nimport './index.less';\n\ntype RenderTextareaHandle = {\n dispatch: ContextStore['dispatch'];\n onChange?: TextAreaProps['onChange'];\n useContext?: {\n commands: ContextStore['commands'];\n extraCommands: ContextStore['extraCommands'];\n commandOrchestrator?: TextAreaCommandOrchestrator;\n };\n shortcuts?: (\n e: KeyboardEvent | React.KeyboardEvent<HTMLTextAreaElement>,\n commands: ICommand[],\n commandOrchestrator?: TextAreaCommandOrchestrator,\n dispatch?: React.Dispatch<ContextStore>,\n state?: ExecuteCommandState,\n ) => void;\n};\n\nexport interface ITextAreaProps\n extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'value' | 'onScroll'>,\n IProps {\n value?: string;\n onScroll?: (e: React.UIEvent<HTMLDivElement>) => void;\n renderTextarea?: (\n props: React.TextareaHTMLAttributes<HTMLTextAreaElement> | React.HTMLAttributes<HTMLDivElement>,\n opts: RenderTextareaHandle,\n ) => JSX.Element;\n}\n\nexport type TextAreaRef = {\n text?: HTMLTextAreaElement;\n warp?: HTMLDivElement;\n};\n\nexport default function TextArea(props: ITextAreaProps) {\n const { prefixCls, className, onScroll, renderTextarea, ...otherProps } = props || {};\n const { markdown, scrollTop, commands, highlightEnable, extraCommands, dispatch } = useContext(EditorContext);\n const textRef = React.useRef<HTMLTextAreaElement>(null);\n const executeRef = React.useRef<TextAreaCommandOrchestrator>();\n const warp = React.createRef<HTMLDivElement>();\n useEffect(() => {\n const state: ContextStore = {};\n if (warp.current) {\n state.textareaWarp = warp.current || undefined;\n warp.current.scrollTop = scrollTop || 0;\n }\n if (dispatch) {\n dispatch({ ...state });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (textRef.current && dispatch) {\n const commandOrchestrator = new TextAreaCommandOrchestrator(textRef.current);\n executeRef.current = commandOrchestrator;\n dispatch({ textarea: textRef.current, commandOrchestrator });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const textStyle: React.CSSProperties = highlightEnable ? {} : { WebkitTextFillColor: 'initial', overflow: 'auto' };\n\n return (\n <div ref={warp} className={`${prefixCls}-area ${className || ''}`} onScroll={onScroll}>\n <div className={`${prefixCls}-text`}>\n {renderTextarea ? (\n React.cloneElement(\n renderTextarea(\n {\n ...otherProps,\n value: markdown,\n autoComplete: 'off',\n autoCorrect: 'off',\n spellCheck: 'false',\n autoCapitalize: 'off',\n className: `${prefixCls}-text-input`,\n style: {\n WebkitTextFillColor: 'inherit',\n overflow: 'auto',\n },\n },\n {\n dispatch,\n onChange: otherProps.onChange,\n shortcuts,\n useContext: { commands, extraCommands, commandOrchestrator: executeRef.current },\n },\n ),\n {\n ref: textRef,\n },\n )\n ) : (\n <Fragment>\n {highlightEnable && <Markdown prefixCls={prefixCls} />}\n <Textarea prefixCls={prefixCls} {...otherProps} style={textStyle} />\n </Fragment>\n )}\n </div>\n </div>\n );\n}\n"
55
55
  ],
56
56
  "mappings": "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"
57
57
  }
@@ -1,7 +1,7 @@
1
1
  @md-editor:~ "w-md-editor";
2
2
 
3
3
  .@{md-editor} {
4
- &-aree {
4
+ &-area {
5
5
  overflow: auto;
6
6
  border-radius: 5px;
7
7
  }
package/lib/Context.d.ts CHANGED
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { ICommand, TextAreaCommandOrchestrator } from './commands';
3
3
  import { MDEditorProps } from './Editor';
4
4
  export declare type PreviewType = 'live' | 'edit' | 'preview';
5
- export declare type ContextStore = {
5
+ export interface ContextStore {
6
6
  components?: MDEditorProps['components'];
7
7
  commands?: ICommand<string>[];
8
8
  extraCommands?: ICommand<string>[];
@@ -23,7 +23,7 @@ export declare type ContextStore = {
23
23
  scrollTopPreview?: number;
24
24
  tabSize?: number;
25
25
  defaultTabEnable?: boolean;
26
- };
26
+ }
27
27
  export declare type ExecuteCommandState = Pick<ContextStore, 'fullscreen' | 'preview' | 'highlightEnable'>;
28
28
  export declare function reducer(state: ContextStore, action: ContextStore): {
29
29
  components?: {
@@ -13,7 +13,7 @@
13
13
  "../src/Context.tsx"
14
14
  ],
15
15
  "sourcesContent": [
16
- "import React from 'react';\nimport { ICommand, TextAreaCommandOrchestrator } from './commands';\nimport { MDEditorProps } from './Editor';\n\nexport type PreviewType = 'live' | 'edit' | 'preview';\n\nexport type ContextStore = {\n components?: MDEditorProps['components'];\n commands?: ICommand<string>[];\n extraCommands?: ICommand<string>[];\n markdown?: string;\n preview?: PreviewType;\n height?: React.CSSProperties['height'];\n fullscreen?: boolean;\n highlightEnable?: boolean;\n autoFocus?: boolean;\n textarea?: HTMLTextAreaElement;\n commandOrchestrator?: TextAreaCommandOrchestrator;\n textareaWarp?: HTMLDivElement;\n textareaPre?: HTMLPreElement;\n container?: HTMLDivElement | null;\n dispatch?: React.Dispatch<ContextStore>;\n barPopup?: Record<string, boolean>;\n scrollTop?: number;\n scrollTopPreview?: number;\n tabSize?: number;\n defaultTabEnable?: boolean;\n};\n\nexport type ExecuteCommandState = Pick<ContextStore, 'fullscreen' | 'preview' | 'highlightEnable'>;\n\nexport function reducer(state: ContextStore, action: ContextStore) {\n return { ...state, ...action };\n}\n\nexport const EditorContext = React.createContext<ContextStore>({ markdown: '' });\n"
16
+ "import React from 'react';\nimport { ICommand, TextAreaCommandOrchestrator } from './commands';\nimport { MDEditorProps } from './Editor';\n\nexport type PreviewType = 'live' | 'edit' | 'preview';\n\nexport interface ContextStore {\n components?: MDEditorProps['components'];\n commands?: ICommand<string>[];\n extraCommands?: ICommand<string>[];\n markdown?: string;\n preview?: PreviewType;\n height?: React.CSSProperties['height'];\n fullscreen?: boolean;\n highlightEnable?: boolean;\n autoFocus?: boolean;\n textarea?: HTMLTextAreaElement;\n commandOrchestrator?: TextAreaCommandOrchestrator;\n textareaWarp?: HTMLDivElement;\n textareaPre?: HTMLPreElement;\n container?: HTMLDivElement | null;\n dispatch?: React.Dispatch<ContextStore>;\n barPopup?: Record<string, boolean>;\n scrollTop?: number;\n scrollTopPreview?: number;\n tabSize?: number;\n defaultTabEnable?: boolean;\n}\n\nexport type ExecuteCommandState = Pick<ContextStore, 'fullscreen' | 'preview' | 'highlightEnable'>;\n\nexport function reducer(state: ContextStore, action: ContextStore) {\n return { ...state, ...action };\n}\n\nexport const EditorContext = React.createContext<ContextStore>({ markdown: '' });\n"
17
17
  ],
18
18
  "mappings": ";;;;;;;;;AAAA;AA+BO,SAASA,OAAO,CAACC,KAAmB,EAAEC,MAAoB,EAAE;EACjE,yEAAYD,KAAK,GAAKC,MAAM;AAC9B;AAEO,IAAMC,aAAa,gBAAGC,iBAAK,CAACC,aAAa,CAAe;EAAEC,QAAQ,EAAE;AAAG,CAAC,CAAC;AAAC"
19
19
  }
package/lib/Editor.d.ts CHANGED
@@ -31,7 +31,7 @@ export interface MDEditorProps extends Omit<React.HTMLAttributes<HTMLDivElement>
31
31
  * The height of the editor.
32
32
  * ⚠️ `Dragbar` is invalid when **`height`** parameter percentage.
33
33
  */
34
- height?: CSSProperties['height'];
34
+ height?: number;
35
35
  /**
36
36
  * Custom toolbar heigth
37
37
  * @default 29px
@@ -139,6 +139,8 @@ export interface MDEditorProps extends Omit<React.HTMLAttributes<HTMLDivElement>
139
139
  */
140
140
  direction?: CSSProperties['direction'];
141
141
  }
142
+ export interface RefMDEditor extends ContextStore {
143
+ }
142
144
  declare type Editor = React.FC<PropsWithRef<MDEditorProps>> & {
143
145
  Markdown: typeof MarkdownPreview;
144
146
  };
package/lib/Editor.js CHANGED
@@ -99,7 +99,10 @@ var InternalMDEditor = function InternalMDEditor(props, ref) {
99
99
  var previewRef = (0, _react.useRef)(null);
100
100
  var enableScrollRef = (0, _react.useRef)(enableScroll);
101
101
  (0, _react.useImperativeHandle)(ref, function () {
102
- return (0, _objectSpread2["default"])({}, state);
102
+ return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, state), {}, {
103
+ container: container.current,
104
+ dispatch: dispatch
105
+ });
103
106
  });
104
107
  (0, _react.useMemo)(function () {
105
108
  return enableScrollRef.current = enableScroll;
package/lib/Editor.js.map CHANGED
@@ -62,8 +62,8 @@
62
62
  "previewRef",
63
63
  "enableScrollRef",
64
64
  "useImperativeHandle",
65
- "useMemo",
66
65
  "current",
66
+ "useMemo",
67
67
  "useEffect",
68
68
  "stateInit",
69
69
  "undefined",
@@ -106,7 +106,7 @@
106
106
  "../src/Editor.tsx"
107
107
  ],
108
108
  "sourcesContent": [
109
- "import React, { useEffect, useReducer, useMemo, useRef, useImperativeHandle, CSSProperties, PropsWithRef } from 'react';\nimport MarkdownPreview, { MarkdownPreviewProps } 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, event?: React.ChangeEvent<HTMLTextAreaElement>, state?: ContextStore) => void;\n /**\n * editor height change listener\n */\n onHeightChange?: (value?: CSSProperties['height'], oldValue?: CSSProperties['height'], state?: ContextStore) => 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 * ⚠️ `Dragbar` is invalid when **`height`** parameter percentage.\n */\n height?: CSSProperties['height'];\n /**\n * Custom toolbar heigth\n * @default 29px\n *\n * @deprecated toolbar height adaptive: https://github.com/uiwjs/react-md-editor/issues/427\n *\n */\n toolbarHeight?: number;\n /**\n * Show drag and drop tool. Set the height of the editor.\n */\n visibleDragbar?: boolean;\n /**\n * @deprecated use `visibleDragbar`\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 * Disable `fullscreen` setting body styles\n */\n overflow?: boolean;\n /**\n * Maximum drag height. `visibleDragbar=true`\n */\n maxHeight?: number;\n /**\n * Minimum drag height. `visibleDragbar=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 /**\n * Use div to replace TextArea or re-render TextArea\n * @deprecated Please use ~~`renderTextarea`~~ -> `components`\n */\n renderTextarea?: ITextAreaProps['renderTextarea'];\n /**\n * re-render element\n */\n components?: {\n /** Use div to replace TextArea or re-render TextArea */\n textarea?: ITextAreaProps['renderTextarea'];\n /**\n * Override the default command element\n * _`toolbar`_ < _`command[].render`_\n */\n toolbar?: ICommand['render'];\n /** Custom markdown preview */\n preview?: (source: string, state: ContextStore, dispath: React.Dispatch<ContextStore>) => JSX.Element;\n };\n /** Theme configuration */\n 'data-color-mode'?: 'light' | 'dark';\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 * If `false`, the `tab` key inserts a tab character into the textarea. If `true`, the `tab` key executes default behavior e.g. focus shifts to next element.\n */\n defaultTabEnable?: boolean;\n /**\n * You can create your own commands or reuse existing commands.\n */\n commands?: ICommand[];\n /**\n * Filter or modify your commands.\n * https://github.com/uiwjs/react-md-editor/issues/296\n */\n commandsFilter?: (command: ICommand, isExtra: boolean) => false | 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 /** Toolbar on bottom */\n toolbarBottom?: boolean;\n /**\n * The **`direction`** property sets the direction of text, table columns, and horizontal overflow. Use `rtl` for languages written from right to left (like Hebrew or Arabic), and `ltr` for those written from left to right (like English and most other languages).\n *\n * https://github.com/uiwjs/react-md-editor/issues/462\n */\n direction?: CSSProperties['direction'];\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 commandsFilter,\n direction,\n extraCommands = getExtraCommands(),\n height = 200,\n enableScroll = true,\n visibleDragbar = typeof props.visiableDragbar === 'boolean' ? props.visiableDragbar : true,\n highlightEnable = true,\n preview: previewType = 'live',\n fullscreen = false,\n overflow = true,\n previewOptions = {},\n textareaProps,\n maxHeight = 1200,\n minHeight = 100,\n autoFocus,\n tabSize = 2,\n defaultTabEnable = false,\n onChange,\n onHeightChange,\n hideToolbar,\n toolbarBottom = false,\n components,\n renderTextarea,\n ...other\n } = props || {};\n const cmds = commands\n .map((item) => (commandsFilter ? commandsFilter(item, false) : item))\n .filter(Boolean) as ICommand[];\n const extraCmds = extraCommands\n .map((item) => (commandsFilter ? commandsFilter(item, true) : item))\n .filter(Boolean) as ICommand[];\n let [state, dispatch] = useReducer(reducer, {\n markdown: propsValue,\n preview: previewType,\n components,\n height,\n highlightEnable,\n tabSize,\n defaultTabEnable,\n scrollTop: 0,\n scrollTopPreview: 0,\n commands: cmds,\n extraCommands: extraCmds,\n fullscreen,\n barPopup: {},\n });\n const container = useRef<HTMLDivElement>(null);\n const previewRef = useRef<HTMLDivElement>(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 'wmde-markdown-var',\n direction ? `${prefixCls}-${direction}` : null,\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(() => 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 // eslint-disable-next-line react-hooks/exhaustive-deps\n useMemo(() => height !== state.height && dispatch({ height: height }), [height]);\n useMemo(\n () => height !== state.height && onHeightChange && onHeightChange(state.height, height, state),\n [height, onHeightChange, state],\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 : 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 const previewClassName = `${prefixCls}-preview ${previewOptions.className || ''}`;\n const handlePreviewScroll = (e: React.UIEvent<HTMLDivElement, UIEvent>) => handleScroll(e, 'preview');\n let mdPreview = useMemo(\n () => (\n <div ref={previewRef} className={previewClassName}>\n <MarkdownPreview {...previewOptions} onScroll={handlePreviewScroll} source={state.markdown || ''} />\n </div>\n ),\n [previewClassName, previewOptions, state.markdown],\n );\n const preview = components?.preview && components?.preview(state.markdown || '', state, dispatch);\n if (preview && React.isValidElement(preview)) {\n mdPreview = (\n <div className={previewClassName} ref={previewRef} onScroll={handlePreviewScroll}>\n {preview}\n </div>\n );\n }\n\n const containerStyle = { ...other.style, height: state.height || '100%' };\n const containerClick = () => dispatch({ barPopup: { ...setGroupPopFalse(state.barPopup) } });\n const dragBarChange = (newHeight: number) => dispatch({ height: newHeight });\n\n return (\n <EditorContext.Provider value={{ ...state, dispatch }}>\n <div ref={container} className={cls} {...other} onClick={containerClick} style={containerStyle}>\n {!hideToolbar && !toolbarBottom && (\n <Toolbar prefixCls={prefixCls} overflow={overflow} toolbarBottom={toolbarBottom} />\n )}\n <div className={`${prefixCls}-content`}>\n {/(edit|live)/.test(state.preview || '') && (\n <TextArea\n className={`${prefixCls}-input`}\n prefixCls={prefixCls}\n autoFocus={autoFocus}\n {...textareaProps}\n onChange={(evn) => {\n onChange && onChange(evn.target.value, evn, state);\n if (textareaProps && textareaProps.onChange) {\n textareaProps.onChange(evn);\n }\n }}\n renderTextarea={components?.textarea || renderTextarea}\n onScroll={(e) => handleScroll(e, 'text')}\n />\n )}\n {/(live|preview)/.test(state.preview || '') && mdPreview}\n </div>\n {visibleDragbar && !state.fullscreen && (\n <DragBar\n prefixCls={prefixCls}\n height={state.height as number}\n maxHeight={maxHeight!}\n minHeight={minHeight!}\n onChange={dragBarChange}\n />\n )}\n {!hideToolbar && toolbarBottom && (\n <Toolbar prefixCls={prefixCls} overflow={overflow} toolbarBottom={toolbarBottom} />\n )}\n </div>\n </EditorContext.Provider>\n );\n};\n\ntype Editor = React.FC<PropsWithRef<MDEditorProps>> & { Markdown: typeof MarkdownPreview };\n\nconst mdEditor: Editor = React.forwardRef(InternalMDEditor) as unknown as Editor;\n\nmdEditor.Markdown = MarkdownPreview;\n\nexport default mdEditor;\n"
109
+ "import React, { useEffect, useReducer, useMemo, useRef, useImperativeHandle, CSSProperties, PropsWithRef } from 'react';\nimport MarkdownPreview, { MarkdownPreviewProps } 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, event?: React.ChangeEvent<HTMLTextAreaElement>, state?: ContextStore) => void;\n /**\n * editor height change listener\n */\n onHeightChange?: (value?: CSSProperties['height'], oldValue?: CSSProperties['height'], state?: ContextStore) => 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 * ⚠️ `Dragbar` is invalid when **`height`** parameter percentage.\n */\n height?: number;\n /**\n * Custom toolbar heigth\n * @default 29px\n *\n * @deprecated toolbar height adaptive: https://github.com/uiwjs/react-md-editor/issues/427\n *\n */\n toolbarHeight?: number;\n /**\n * Show drag and drop tool. Set the height of the editor.\n */\n visibleDragbar?: boolean;\n /**\n * @deprecated use `visibleDragbar`\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 * Disable `fullscreen` setting body styles\n */\n overflow?: boolean;\n /**\n * Maximum drag height. `visibleDragbar=true`\n */\n maxHeight?: number;\n /**\n * Minimum drag height. `visibleDragbar=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 /**\n * Use div to replace TextArea or re-render TextArea\n * @deprecated Please use ~~`renderTextarea`~~ -> `components`\n */\n renderTextarea?: ITextAreaProps['renderTextarea'];\n /**\n * re-render element\n */\n components?: {\n /** Use div to replace TextArea or re-render TextArea */\n textarea?: ITextAreaProps['renderTextarea'];\n /**\n * Override the default command element\n * _`toolbar`_ < _`command[].render`_\n */\n toolbar?: ICommand['render'];\n /** Custom markdown preview */\n preview?: (source: string, state: ContextStore, dispath: React.Dispatch<ContextStore>) => JSX.Element;\n };\n /** Theme configuration */\n 'data-color-mode'?: 'light' | 'dark';\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 * If `false`, the `tab` key inserts a tab character into the textarea. If `true`, the `tab` key executes default behavior e.g. focus shifts to next element.\n */\n defaultTabEnable?: boolean;\n /**\n * You can create your own commands or reuse existing commands.\n */\n commands?: ICommand[];\n /**\n * Filter or modify your commands.\n * https://github.com/uiwjs/react-md-editor/issues/296\n */\n commandsFilter?: (command: ICommand, isExtra: boolean) => false | 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 /** Toolbar on bottom */\n toolbarBottom?: boolean;\n /**\n * The **`direction`** property sets the direction of text, table columns, and horizontal overflow. Use `rtl` for languages written from right to left (like Hebrew or Arabic), and `ltr` for those written from left to right (like English and most other languages).\n *\n * https://github.com/uiwjs/react-md-editor/issues/462\n */\n direction?: CSSProperties['direction'];\n}\n\nfunction setGroupPopFalse(data: Record<string, boolean> = {}) {\n Object.keys(data).forEach((keyname) => {\n data[keyname] = false;\n });\n return data;\n}\n\nexport interface RefMDEditor extends ContextStore {}\n\nconst InternalMDEditor = (\n props: MDEditorProps,\n ref?: ((instance: RefMDEditor) => void) | React.RefObject<RefMDEditor> | null,\n) => {\n const {\n prefixCls = 'w-md-editor',\n className,\n value: propsValue,\n commands = getCommands(),\n commandsFilter,\n direction,\n extraCommands = getExtraCommands(),\n height = 200,\n enableScroll = true,\n visibleDragbar = typeof props.visiableDragbar === 'boolean' ? props.visiableDragbar : true,\n highlightEnable = true,\n preview: previewType = 'live',\n fullscreen = false,\n overflow = true,\n previewOptions = {},\n textareaProps,\n maxHeight = 1200,\n minHeight = 100,\n autoFocus,\n tabSize = 2,\n defaultTabEnable = false,\n onChange,\n onHeightChange,\n hideToolbar,\n toolbarBottom = false,\n components,\n renderTextarea,\n ...other\n } = props || {};\n const cmds = commands\n .map((item) => (commandsFilter ? commandsFilter(item, false) : item))\n .filter(Boolean) as ICommand[];\n const extraCmds = extraCommands\n .map((item) => (commandsFilter ? commandsFilter(item, true) : item))\n .filter(Boolean) as ICommand[];\n let [state, dispatch] = useReducer(reducer, {\n markdown: propsValue,\n preview: previewType,\n components,\n height,\n highlightEnable,\n tabSize,\n defaultTabEnable,\n scrollTop: 0,\n scrollTopPreview: 0,\n commands: cmds,\n extraCommands: extraCmds,\n fullscreen,\n barPopup: {},\n });\n const container = useRef<HTMLDivElement>(null);\n const previewRef = useRef<HTMLDivElement>(null);\n const enableScrollRef = useRef(enableScroll);\n\n useImperativeHandle(ref, () => ({ ...state, container: container.current, dispatch }));\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 'wmde-markdown-var',\n direction ? `${prefixCls}-${direction}` : null,\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(() => 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 // eslint-disable-next-line react-hooks/exhaustive-deps\n useMemo(() => height !== state.height && dispatch({ height: height }), [height]);\n useMemo(\n () => height !== state.height && onHeightChange && onHeightChange(state.height, height, state),\n [height, onHeightChange, state],\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 : 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 const previewClassName = `${prefixCls}-preview ${previewOptions.className || ''}`;\n const handlePreviewScroll = (e: React.UIEvent<HTMLDivElement, UIEvent>) => handleScroll(e, 'preview');\n let mdPreview = useMemo(\n () => (\n <div ref={previewRef} className={previewClassName}>\n <MarkdownPreview {...previewOptions} onScroll={handlePreviewScroll} source={state.markdown || ''} />\n </div>\n ),\n [previewClassName, previewOptions, state.markdown],\n );\n const preview = components?.preview && components?.preview(state.markdown || '', state, dispatch);\n if (preview && React.isValidElement(preview)) {\n mdPreview = (\n <div className={previewClassName} ref={previewRef} onScroll={handlePreviewScroll}>\n {preview}\n </div>\n );\n }\n\n const containerStyle = { ...other.style, height: state.height || '100%' };\n const containerClick = () => dispatch({ barPopup: { ...setGroupPopFalse(state.barPopup) } });\n const dragBarChange = (newHeight: number) => dispatch({ height: newHeight });\n\n return (\n <EditorContext.Provider value={{ ...state, dispatch }}>\n <div ref={container} className={cls} {...other} onClick={containerClick} style={containerStyle}>\n {!hideToolbar && !toolbarBottom && (\n <Toolbar prefixCls={prefixCls} overflow={overflow} toolbarBottom={toolbarBottom} />\n )}\n <div className={`${prefixCls}-content`}>\n {/(edit|live)/.test(state.preview || '') && (\n <TextArea\n className={`${prefixCls}-input`}\n prefixCls={prefixCls}\n autoFocus={autoFocus}\n {...textareaProps}\n onChange={(evn) => {\n onChange && onChange(evn.target.value, evn, state);\n if (textareaProps && textareaProps.onChange) {\n textareaProps.onChange(evn);\n }\n }}\n renderTextarea={components?.textarea || renderTextarea}\n onScroll={(e) => handleScroll(e, 'text')}\n />\n )}\n {/(live|preview)/.test(state.preview || '') && mdPreview}\n </div>\n {visibleDragbar && !state.fullscreen && (\n <DragBar\n prefixCls={prefixCls}\n height={state.height as number}\n maxHeight={maxHeight!}\n minHeight={minHeight!}\n onChange={dragBarChange}\n />\n )}\n {!hideToolbar && toolbarBottom && (\n <Toolbar prefixCls={prefixCls} overflow={overflow} toolbarBottom={toolbarBottom} />\n )}\n </div>\n </EditorContext.Provider>\n );\n};\n\ntype Editor = React.FC<PropsWithRef<MDEditorProps>> & { Markdown: typeof MarkdownPreview };\n\nconst mdEditor: Editor = React.forwardRef(InternalMDEditor) as unknown as Editor;\n\nmdEditor.Markdown = MarkdownPreview;\n\nexport default mdEditor;\n"
110
110
  ],
111
- "mappings": "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"
111
+ "mappings": "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"
112
112
  }
@@ -28,5 +28,5 @@
28
28
  "sourcesContent": [
29
29
  "import React from 'react';\nimport { insertAtLineStart } from '../utils/InsertTextAtPosition';\nimport { ICommand, TextState, TextAreaTextApi } from './';\n\nexport const title1: ICommand = {\n name: 'title1',\n keyCommand: 'title1',\n shortcuts: 'ctrlcmd+1',\n value: 'title1',\n buttonProps: { 'aria-label': 'Insert title1 (ctrl + 1)', title: 'Insert title1 (ctrl + 1)' },\n icon: <div style={{ fontSize: 18, textAlign: 'left' }}>Title 1</div>,\n execute: (state: TextState, api: TextAreaTextApi) => {\n if (state.selection.start === 0 || /\\n$/.test(state.text)) {\n api.replaceSelection('# ');\n } else {\n insertAtLineStart('# ', state.selection.start, api.textArea);\n }\n },\n};\n"
30
30
  ],
31
- "mappings": ";;;;;;;AAAA;AACA;AAAkE;AAG3D,IAAMA,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QAAQ;EACdC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE,WAAW;EACtBC,KAAK,EAAE,QAAQ;EACfC,WAAW,EAAE;IAAE,YAAY,EAAE,0BAA0B;IAAEC,KAAK,EAAE;EAA2B,CAAC;EAC5FC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAE;MAAEC,SAAS,EAAE;IAAO,CAAE;IAAA;EAAA,EAAc;EACpEC,OAAO,EAAE,iBAACC,KAAgB,EAAEC,GAAoB,EAAK;IACnD,IAAID,KAAK,CAACE,SAAS,CAACC,KAAK,KAAK,CAAC,IAAI,KAAK,CAACC,IAAI,CAACJ,KAAK,CAACK,IAAI,CAAC,EAAE;MACzDJ,GAAG,CAACK,gBAAgB,CAAC,IAAI,CAAC;IAC5B,CAAC,MAAM;MACL,IAAAC,uCAAiB,EAAC,IAAI,EAAEP,KAAK,CAACE,SAAS,CAACC,KAAK,EAAEF,GAAG,CAACO,QAAQ,CAAC;IAC9D;EACF;AACF,CAAC;AAAC"
31
+ "mappings": ";;;;;;;AAAA;AACA;AAAkE;AAG3D,IAAMA,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QAAQ;EACdC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE,WAAW;EACtBC,KAAK,EAAE,QAAQ;EACfC,WAAW,EAAE;IAAE,YAAY,EAAE,0BAA0B;IAAEC,KAAK,EAAE;EAA2B,CAAC;EAC5FC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAE;MAAEC,SAAS,EAAE;IAAO,CAAE;IAAA,UAAC;EAAO,EAAM;EACpEC,OAAO,EAAE,iBAACC,KAAgB,EAAEC,GAAoB,EAAK;IACnD,IAAID,KAAK,CAACE,SAAS,CAACC,KAAK,KAAK,CAAC,IAAI,KAAK,CAACC,IAAI,CAACJ,KAAK,CAACK,IAAI,CAAC,EAAE;MACzDJ,GAAG,CAACK,gBAAgB,CAAC,IAAI,CAAC;IAC5B,CAAC,MAAM;MACL,IAAAC,uCAAiB,EAAC,IAAI,EAAEP,KAAK,CAACE,SAAS,CAACC,KAAK,EAAEF,GAAG,CAACO,QAAQ,CAAC;IAC9D;EACF;AACF,CAAC;AAAC"
32
32
  }
@@ -28,5 +28,5 @@
28
28
  "sourcesContent": [
29
29
  "import * as React from 'react';\nimport { insertAtLineStart } from '../utils/InsertTextAtPosition';\nimport { ICommand, TextState, TextAreaTextApi } from './';\n\nexport const title2: ICommand = {\n name: 'title2',\n keyCommand: 'title2',\n shortcuts: 'ctrlcmd+2',\n value: 'title2',\n buttonProps: { 'aria-label': 'Insert title2 (ctrl + 2)', title: 'Insert title2 (ctrl + 2)' },\n icon: <div style={{ fontSize: 16, textAlign: 'left' }}>Title 2</div>,\n execute: (state: TextState, api: TextAreaTextApi) => {\n if (state.selection.start === 0 || /\\n$/.test(state.text)) {\n api.replaceSelection('## ');\n } else {\n insertAtLineStart('## ', state.selection.start, api.textArea);\n }\n },\n};\n"
30
30
  ],
31
- "mappings": ";;;;;;;AAAA;AACA;AAAkE;AAG3D,IAAMA,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QAAQ;EACdC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE,WAAW;EACtBC,KAAK,EAAE,QAAQ;EACfC,WAAW,EAAE;IAAE,YAAY,EAAE,0BAA0B;IAAEC,KAAK,EAAE;EAA2B,CAAC;EAC5FC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAE;MAAEC,SAAS,EAAE;IAAO,CAAE;IAAA;EAAA,EAAc;EACpEC,OAAO,EAAE,iBAACC,KAAgB,EAAEC,GAAoB,EAAK;IACnD,IAAID,KAAK,CAACE,SAAS,CAACC,KAAK,KAAK,CAAC,IAAI,KAAK,CAACC,IAAI,CAACJ,KAAK,CAACK,IAAI,CAAC,EAAE;MACzDJ,GAAG,CAACK,gBAAgB,CAAC,KAAK,CAAC;IAC7B,CAAC,MAAM;MACL,IAAAC,uCAAiB,EAAC,KAAK,EAAEP,KAAK,CAACE,SAAS,CAACC,KAAK,EAAEF,GAAG,CAACO,QAAQ,CAAC;IAC/D;EACF;AACF,CAAC;AAAC"
31
+ "mappings": ";;;;;;;AAAA;AACA;AAAkE;AAG3D,IAAMA,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QAAQ;EACdC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE,WAAW;EACtBC,KAAK,EAAE,QAAQ;EACfC,WAAW,EAAE;IAAE,YAAY,EAAE,0BAA0B;IAAEC,KAAK,EAAE;EAA2B,CAAC;EAC5FC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAE;MAAEC,SAAS,EAAE;IAAO,CAAE;IAAA,UAAC;EAAO,EAAM;EACpEC,OAAO,EAAE,iBAACC,KAAgB,EAAEC,GAAoB,EAAK;IACnD,IAAID,KAAK,CAACE,SAAS,CAACC,KAAK,KAAK,CAAC,IAAI,KAAK,CAACC,IAAI,CAACJ,KAAK,CAACK,IAAI,CAAC,EAAE;MACzDJ,GAAG,CAACK,gBAAgB,CAAC,KAAK,CAAC;IAC7B,CAAC,MAAM;MACL,IAAAC,uCAAiB,EAAC,KAAK,EAAEP,KAAK,CAACE,SAAS,CAACC,KAAK,EAAEF,GAAG,CAACO,QAAQ,CAAC;IAC/D;EACF;AACF,CAAC;AAAC"
32
32
  }
@@ -28,5 +28,5 @@
28
28
  "sourcesContent": [
29
29
  "import * as React from 'react';\nimport { insertAtLineStart } from '../utils/InsertTextAtPosition';\nimport { ICommand, TextState, TextAreaTextApi } from './';\n\nexport const title3: ICommand = {\n name: 'title3',\n keyCommand: 'title3',\n shortcuts: 'ctrlcmd+3',\n value: 'title3',\n buttonProps: { 'aria-label': 'Insert title3 (ctrl + 3)', title: 'Insert title3 (ctrl + 3)' },\n icon: <div style={{ fontSize: 15, textAlign: 'left' }}>Title 3</div>,\n execute: (state: TextState, api: TextAreaTextApi) => {\n if (state.selection.start === 0 || /\\n$/.test(state.text)) {\n api.replaceSelection('### ');\n } else {\n insertAtLineStart('### ', state.selection.start, api.textArea);\n }\n },\n};\n"
30
30
  ],
31
- "mappings": ";;;;;;;AAAA;AACA;AAAkE;AAG3D,IAAMA,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QAAQ;EACdC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE,WAAW;EACtBC,KAAK,EAAE,QAAQ;EACfC,WAAW,EAAE;IAAE,YAAY,EAAE,0BAA0B;IAAEC,KAAK,EAAE;EAA2B,CAAC;EAC5FC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAE;MAAEC,SAAS,EAAE;IAAO,CAAE;IAAA;EAAA,EAAc;EACpEC,OAAO,EAAE,iBAACC,KAAgB,EAAEC,GAAoB,EAAK;IACnD,IAAID,KAAK,CAACE,SAAS,CAACC,KAAK,KAAK,CAAC,IAAI,KAAK,CAACC,IAAI,CAACJ,KAAK,CAACK,IAAI,CAAC,EAAE;MACzDJ,GAAG,CAACK,gBAAgB,CAAC,MAAM,CAAC;IAC9B,CAAC,MAAM;MACL,IAAAC,uCAAiB,EAAC,MAAM,EAAEP,KAAK,CAACE,SAAS,CAACC,KAAK,EAAEF,GAAG,CAACO,QAAQ,CAAC;IAChE;EACF;AACF,CAAC;AAAC"
31
+ "mappings": ";;;;;;;AAAA;AACA;AAAkE;AAG3D,IAAMA,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QAAQ;EACdC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE,WAAW;EACtBC,KAAK,EAAE,QAAQ;EACfC,WAAW,EAAE;IAAE,YAAY,EAAE,0BAA0B;IAAEC,KAAK,EAAE;EAA2B,CAAC;EAC5FC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAE;MAAEC,SAAS,EAAE;IAAO,CAAE;IAAA,UAAC;EAAO,EAAM;EACpEC,OAAO,EAAE,iBAACC,KAAgB,EAAEC,GAAoB,EAAK;IACnD,IAAID,KAAK,CAACE,SAAS,CAACC,KAAK,KAAK,CAAC,IAAI,KAAK,CAACC,IAAI,CAACJ,KAAK,CAACK,IAAI,CAAC,EAAE;MACzDJ,GAAG,CAACK,gBAAgB,CAAC,MAAM,CAAC;IAC9B,CAAC,MAAM;MACL,IAAAC,uCAAiB,EAAC,MAAM,EAAEP,KAAK,CAACE,SAAS,CAACC,KAAK,EAAEF,GAAG,CAACO,QAAQ,CAAC;IAChE;EACF;AACF,CAAC;AAAC"
32
32
  }
@@ -28,5 +28,5 @@
28
28
  "sourcesContent": [
29
29
  "import * as React from 'react';\nimport { insertAtLineStart } from '../utils/InsertTextAtPosition';\nimport { ICommand, TextState, TextAreaTextApi } from './';\n\nexport const title4: ICommand = {\n name: 'title4',\n keyCommand: 'title4',\n shortcuts: 'ctrlcmd+4',\n value: 'title4',\n buttonProps: { 'aria-label': 'Insert title4 (ctrl + 4)', title: 'Insert title4 (ctrl + 4)' },\n icon: <div style={{ fontSize: 14, textAlign: 'left' }}>Title 4</div>,\n execute: (state: TextState, api: TextAreaTextApi) => {\n if (state.selection.start === 0 || /\\n$/.test(state.text)) {\n api.replaceSelection('#### ');\n } else {\n insertAtLineStart('#### ', state.selection.start, api.textArea);\n }\n },\n};\n"
30
30
  ],
31
- "mappings": ";;;;;;;AAAA;AACA;AAAkE;AAG3D,IAAMA,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QAAQ;EACdC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE,WAAW;EACtBC,KAAK,EAAE,QAAQ;EACfC,WAAW,EAAE;IAAE,YAAY,EAAE,0BAA0B;IAAEC,KAAK,EAAE;EAA2B,CAAC;EAC5FC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAE;MAAEC,SAAS,EAAE;IAAO,CAAE;IAAA;EAAA,EAAc;EACpEC,OAAO,EAAE,iBAACC,KAAgB,EAAEC,GAAoB,EAAK;IACnD,IAAID,KAAK,CAACE,SAAS,CAACC,KAAK,KAAK,CAAC,IAAI,KAAK,CAACC,IAAI,CAACJ,KAAK,CAACK,IAAI,CAAC,EAAE;MACzDJ,GAAG,CAACK,gBAAgB,CAAC,OAAO,CAAC;IAC/B,CAAC,MAAM;MACL,IAAAC,uCAAiB,EAAC,OAAO,EAAEP,KAAK,CAACE,SAAS,CAACC,KAAK,EAAEF,GAAG,CAACO,QAAQ,CAAC;IACjE;EACF;AACF,CAAC;AAAC"
31
+ "mappings": ";;;;;;;AAAA;AACA;AAAkE;AAG3D,IAAMA,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QAAQ;EACdC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE,WAAW;EACtBC,KAAK,EAAE,QAAQ;EACfC,WAAW,EAAE;IAAE,YAAY,EAAE,0BAA0B;IAAEC,KAAK,EAAE;EAA2B,CAAC;EAC5FC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAE;MAAEC,SAAS,EAAE;IAAO,CAAE;IAAA,UAAC;EAAO,EAAM;EACpEC,OAAO,EAAE,iBAACC,KAAgB,EAAEC,GAAoB,EAAK;IACnD,IAAID,KAAK,CAACE,SAAS,CAACC,KAAK,KAAK,CAAC,IAAI,KAAK,CAACC,IAAI,CAACJ,KAAK,CAACK,IAAI,CAAC,EAAE;MACzDJ,GAAG,CAACK,gBAAgB,CAAC,OAAO,CAAC;IAC/B,CAAC,MAAM;MACL,IAAAC,uCAAiB,EAAC,OAAO,EAAEP,KAAK,CAACE,SAAS,CAACC,KAAK,EAAEF,GAAG,CAACO,QAAQ,CAAC;IACjE;EACF;AACF,CAAC;AAAC"
32
32
  }
@@ -28,5 +28,5 @@
28
28
  "sourcesContent": [
29
29
  "import * as React from 'react';\nimport { insertAtLineStart } from '../utils/InsertTextAtPosition';\nimport { ICommand, TextState, TextAreaTextApi } from './';\n\nexport const title5: ICommand = {\n name: 'title5',\n keyCommand: 'title5',\n shortcuts: 'ctrlcmd+5',\n value: 'title5',\n buttonProps: { 'aria-label': 'Insert title5 (ctrl + 5)', title: 'Insert title5 (ctrl + 5)' },\n icon: <div style={{ fontSize: 12, textAlign: 'left' }}>Title 5</div>,\n execute: (state: TextState, api: TextAreaTextApi) => {\n if (state.selection.start === 0 || /\\n$/.test(state.text)) {\n api.replaceSelection('##### ');\n } else {\n insertAtLineStart('##### ', state.selection.start, api.textArea);\n }\n },\n};\n"
30
30
  ],
31
- "mappings": ";;;;;;;AAAA;AACA;AAAkE;AAG3D,IAAMA,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QAAQ;EACdC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE,WAAW;EACtBC,KAAK,EAAE,QAAQ;EACfC,WAAW,EAAE;IAAE,YAAY,EAAE,0BAA0B;IAAEC,KAAK,EAAE;EAA2B,CAAC;EAC5FC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAE;MAAEC,SAAS,EAAE;IAAO,CAAE;IAAA;EAAA,EAAc;EACpEC,OAAO,EAAE,iBAACC,KAAgB,EAAEC,GAAoB,EAAK;IACnD,IAAID,KAAK,CAACE,SAAS,CAACC,KAAK,KAAK,CAAC,IAAI,KAAK,CAACC,IAAI,CAACJ,KAAK,CAACK,IAAI,CAAC,EAAE;MACzDJ,GAAG,CAACK,gBAAgB,CAAC,QAAQ,CAAC;IAChC,CAAC,MAAM;MACL,IAAAC,uCAAiB,EAAC,QAAQ,EAAEP,KAAK,CAACE,SAAS,CAACC,KAAK,EAAEF,GAAG,CAACO,QAAQ,CAAC;IAClE;EACF;AACF,CAAC;AAAC"
31
+ "mappings": ";;;;;;;AAAA;AACA;AAAkE;AAG3D,IAAMA,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QAAQ;EACdC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE,WAAW;EACtBC,KAAK,EAAE,QAAQ;EACfC,WAAW,EAAE;IAAE,YAAY,EAAE,0BAA0B;IAAEC,KAAK,EAAE;EAA2B,CAAC;EAC5FC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAE;MAAEC,SAAS,EAAE;IAAO,CAAE;IAAA,UAAC;EAAO,EAAM;EACpEC,OAAO,EAAE,iBAACC,KAAgB,EAAEC,GAAoB,EAAK;IACnD,IAAID,KAAK,CAACE,SAAS,CAACC,KAAK,KAAK,CAAC,IAAI,KAAK,CAACC,IAAI,CAACJ,KAAK,CAACK,IAAI,CAAC,EAAE;MACzDJ,GAAG,CAACK,gBAAgB,CAAC,QAAQ,CAAC;IAChC,CAAC,MAAM;MACL,IAAAC,uCAAiB,EAAC,QAAQ,EAAEP,KAAK,CAACE,SAAS,CAACC,KAAK,EAAEF,GAAG,CAACO,QAAQ,CAAC;IAClE;EACF;AACF,CAAC;AAAC"
32
32
  }
@@ -28,5 +28,5 @@
28
28
  "sourcesContent": [
29
29
  "import * as React from 'react';\nimport { insertAtLineStart } from '../utils/InsertTextAtPosition';\nimport { ICommand, TextState, TextAreaTextApi } from './';\n\nexport const title6: ICommand = {\n name: 'title6',\n keyCommand: 'title6',\n shortcuts: 'ctrlcmd+6',\n value: 'title6',\n buttonProps: { 'aria-label': 'Insert title6 (ctrl + 6)', title: 'Insert title6 (ctrl + 6)' },\n icon: <div style={{ fontSize: 12, textAlign: 'left' }}>Title 6</div>,\n execute: (state: TextState, api: TextAreaTextApi) => {\n if (state.selection.start === 0 || /\\n$/.test(state.text)) {\n api.replaceSelection('###### ');\n } else {\n insertAtLineStart('###### ', state.selection.start, api.textArea);\n }\n },\n};\n"
30
30
  ],
31
- "mappings": ";;;;;;;AAAA;AACA;AAAkE;AAG3D,IAAMA,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QAAQ;EACdC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE,WAAW;EACtBC,KAAK,EAAE,QAAQ;EACfC,WAAW,EAAE;IAAE,YAAY,EAAE,0BAA0B;IAAEC,KAAK,EAAE;EAA2B,CAAC;EAC5FC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAE;MAAEC,SAAS,EAAE;IAAO,CAAE;IAAA;EAAA,EAAc;EACpEC,OAAO,EAAE,iBAACC,KAAgB,EAAEC,GAAoB,EAAK;IACnD,IAAID,KAAK,CAACE,SAAS,CAACC,KAAK,KAAK,CAAC,IAAI,KAAK,CAACC,IAAI,CAACJ,KAAK,CAACK,IAAI,CAAC,EAAE;MACzDJ,GAAG,CAACK,gBAAgB,CAAC,SAAS,CAAC;IACjC,CAAC,MAAM;MACL,IAAAC,uCAAiB,EAAC,SAAS,EAAEP,KAAK,CAACE,SAAS,CAACC,KAAK,EAAEF,GAAG,CAACO,QAAQ,CAAC;IACnE;EACF;AACF,CAAC;AAAC"
31
+ "mappings": ";;;;;;;AAAA;AACA;AAAkE;AAG3D,IAAMA,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QAAQ;EACdC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE,WAAW;EACtBC,KAAK,EAAE,QAAQ;EACfC,WAAW,EAAE;IAAE,YAAY,EAAE,0BAA0B;IAAEC,KAAK,EAAE;EAA2B,CAAC;EAC5FC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAE;MAAEC,SAAS,EAAE;IAAO,CAAE;IAAA,UAAC;EAAO,EAAM;EACpEC,OAAO,EAAE,iBAACC,KAAgB,EAAEC,GAAoB,EAAK;IACnD,IAAID,KAAK,CAACE,SAAS,CAACC,KAAK,KAAK,CAAC,IAAI,KAAK,CAACC,IAAI,CAACJ,KAAK,CAACK,IAAI,CAAC,EAAE;MACzDJ,GAAG,CAACK,gBAAgB,CAAC,SAAS,CAAC;IACjC,CAAC,MAAM;MACL,IAAAC,uCAAiB,EAAC,SAAS,EAAEP,KAAK,CAACE,SAAS,CAACC,KAAK,EAAEF,GAAG,CAACO,QAAQ,CAAC;IACnE;EACF;AACF,CAAC;AAAC"
32
32
  }
@@ -61,7 +61,7 @@ function TextArea(props) {
61
61
  };
62
62
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
63
63
  ref: warp,
64
- className: "".concat(prefixCls, "-aree ").concat(className || ''),
64
+ className: "".concat(prefixCls, "-area ").concat(className || ''),
65
65
  onScroll: onScroll,
66
66
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
67
67
  className: "".concat(prefixCls, "-text"),