@uiw/react-md-editor 3.12.3 → 3.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/mdeditor.css +5 -0
  2. package/dist/mdeditor.js +846 -1376
  3. package/dist/mdeditor.min.css +1 -1
  4. package/dist/mdeditor.min.js +1 -1
  5. package/dist/mdeditor.min.js.LICENSE.txt +0 -9
  6. package/esm/Editor.d.ts +2 -0
  7. package/esm/Editor.js +10 -3
  8. package/esm/Editor.js.map +3 -2
  9. package/esm/components/Toolbar/index.css +5 -0
  10. package/esm/components/Toolbar/index.d.ts +1 -0
  11. package/esm/components/Toolbar/index.js +3 -1
  12. package/esm/components/Toolbar/index.js.map +5 -3
  13. package/esm/components/Toolbar/index.less +5 -0
  14. package/lib/Context.js.map +1 -1
  15. package/lib/Editor.d.ts +2 -0
  16. package/lib/Editor.js +11 -3
  17. package/lib/Editor.js.map +10 -2
  18. package/lib/commands/bold.js.map +2 -1
  19. package/lib/commands/code.js.map +4 -1
  20. package/lib/commands/comment.js.map +2 -1
  21. package/lib/commands/image.js.map +2 -1
  22. package/lib/commands/index.js.map +2 -1
  23. package/lib/commands/italic.js.map +2 -1
  24. package/lib/commands/link.js.map +2 -1
  25. package/lib/commands/list.js.map +4 -1
  26. package/lib/commands/quote.js.map +4 -1
  27. package/lib/commands/strikeThrough.js.map +2 -1
  28. package/lib/commands/title1.js.map +2 -1
  29. package/lib/commands/title2.js.map +2 -1
  30. package/lib/commands/title3.js.map +2 -1
  31. package/lib/commands/title4.js.map +2 -1
  32. package/lib/commands/title5.js.map +2 -1
  33. package/lib/commands/title6.js.map +2 -1
  34. package/lib/components/DragBar/index.js.map +5 -2
  35. package/lib/components/TextArea/Markdown.js.map +5 -1
  36. package/lib/components/TextArea/Textarea.js.map +5 -1
  37. package/lib/components/TextArea/handleKeyDown.js.map +3 -1
  38. package/lib/components/TextArea/index.js.map +3 -2
  39. package/lib/components/Toolbar/Child.js.map +3 -1
  40. package/lib/components/Toolbar/index.d.ts +1 -0
  41. package/lib/components/Toolbar/index.js +3 -1
  42. package/lib/components/Toolbar/index.js.map +8 -3
  43. package/lib/components/Toolbar/index.less +5 -0
  44. package/markdown-editor.css +5 -0
  45. package/package.json +1 -1
  46. package/src/Editor.tsx +9 -1
  47. package/src/components/Toolbar/index.less +5 -0
  48. package/src/components/Toolbar/index.tsx +4 -2
@@ -9,6 +9,7 @@
9
9
  "state",
10
10
  "api",
11
11
  "newSelectionRange",
12
+ "selectWord",
12
13
  "text",
13
14
  "selection",
14
15
  "state1",
@@ -26,5 +27,5 @@
26
27
  "sourcesContent": [
27
28
  "import { ICommand, TextState, TextAreaTextApi } from './';\nimport { selectWord } from '../utils/markdownUtils';\n\nexport const comment: ICommand = {\n name: 'comment',\n keyCommand: 'comment',\n shortcuts: 'ctrlcmd+/',\n execute: (state: TextState, api: TextAreaTextApi) => {\n // Adjust the selection to encompass the whole word if the caret is inside one\n const newSelectionRange = selectWord({ text: state.text, selection: state.selection });\n const state1 = api.setSelectionRange(newSelectionRange);\n // Replaces the current selection with the bold mark up\n const state2 = api.replaceSelection(`<!-- ${state1.selectedText} -->`);\n // Adjust the selection to not contain the **\n api.setSelectionRange({\n start: state2.selection.end - 4 - state1.selectedText.length,\n end: state2.selection.end - 4,\n });\n },\n};\n"
28
29
  ],
29
- "mappings": ";;;;;;;AACA;;AAEO,IAAMA,OAAiB,GAAG;EAC/BC,IAAI,EAAE,SADyB;EAE/BC,UAAU,EAAE,SAFmB;EAG/BC,SAAS,EAAE,WAHoB;EAI/BC,OAAO,EAAE,iBAACC,KAAD,EAAmBC,GAAnB,EAA4C;IACnD;IACA,IAAMC,iBAAiB,GAAG,+BAAW;MAAEC,IAAI,EAAEH,KAAK,CAACG,IAAd;MAAoBC,SAAS,EAAEJ,KAAK,CAACI;IAArC,CAAX,CAA1B;IACA,IAAMC,MAAM,GAAGJ,GAAG,CAACK,iBAAJ,CAAsBJ,iBAAtB,CAAf,CAHmD,CAInD;;IACA,IAAMK,MAAM,GAAGN,GAAG,CAACO,gBAAJ,gBAA6BH,MAAM,CAACI,YAApC,UAAf,CALmD,CAMnD;;IACAR,GAAG,CAACK,iBAAJ,CAAsB;MACpBI,KAAK,EAAEH,MAAM,CAACH,SAAP,CAAiBO,GAAjB,GAAuB,CAAvB,GAA2BN,MAAM,CAACI,YAAP,CAAoBG,MADlC;MAEpBD,GAAG,EAAEJ,MAAM,CAACH,SAAP,CAAiBO,GAAjB,GAAuB;IAFR,CAAtB;EAID;AAf8B,CAA1B"
30
+ "mappings": ";;;;;;;AACA;;AAEO,IAAMA,OAAiB,GAAG;EAC/BC,IAAI,EAAE,SADyB;EAE/BC,UAAU,EAAE,SAFmB;EAG/BC,SAAS,EAAE,WAHoB;EAI/BC,OAAO,EAAE,iBAACC,KAAD,EAAmBC,GAAnB,EAA4C;IACnD;IACA,IAAMC,iBAAiB,GAAG,IAAAC,yBAAA,EAAW;MAAEC,IAAI,EAAEJ,KAAK,CAACI,IAAd;MAAoBC,SAAS,EAAEL,KAAK,CAACK;IAArC,CAAX,CAA1B;IACA,IAAMC,MAAM,GAAGL,GAAG,CAACM,iBAAJ,CAAsBL,iBAAtB,CAAf,CAHmD,CAInD;;IACA,IAAMM,MAAM,GAAGP,GAAG,CAACQ,gBAAJ,gBAA6BH,MAAM,CAACI,YAApC,UAAf,CALmD,CAMnD;;IACAT,GAAG,CAACM,iBAAJ,CAAsB;MACpBI,KAAK,EAAEH,MAAM,CAACH,SAAP,CAAiBO,GAAjB,GAAuB,CAAvB,GAA2BN,MAAM,CAACI,YAAP,CAAoBG,MADlC;MAEpBD,GAAG,EAAEJ,MAAM,CAACH,SAAP,CAAiBO,GAAjB,GAAuB;IAFR,CAAtB;EAID;AAf8B,CAA1B"
30
31
  }
@@ -12,6 +12,7 @@
12
12
  "state",
13
13
  "api",
14
14
  "newSelectionRange",
15
+ "selectWord",
15
16
  "text",
16
17
  "selection",
17
18
  "state1",
@@ -29,5 +30,5 @@
29
30
  "sourcesContent": [
30
31
  "import * as React from 'react';\nimport { ICommand, TextState, TextAreaTextApi } from './';\nimport { selectWord } from '../utils/markdownUtils';\n\nexport const image: ICommand = {\n name: 'image',\n keyCommand: 'image',\n shortcuts: 'ctrlcmd+i',\n buttonProps: { 'aria-label': 'Add image', title: 'Add image' },\n icon: (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 20 20\">\n <path\n fill=\"currentColor\"\n d=\"M15 9c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4-7H1c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm-1 13l-6-5-2 2-4-5-4 8V4h16v11z\"\n />\n </svg>\n ),\n execute: (state: TextState, api: TextAreaTextApi) => {\n // Select everything\n const newSelectionRange = selectWord({ text: state.text, selection: state.selection });\n const state1 = api.setSelectionRange(newSelectionRange);\n // Replaces the current selection with the image\n const imageTemplate = state1.selectedText || 'https://example.com/your-image.png';\n api.replaceSelection(`![](${imageTemplate})`);\n // Adjust the selection to not contain the **\n api.setSelectionRange({\n start: 4 + state1.selection.start,\n end: 4 + state1.selection.start + imageTemplate.length,\n });\n },\n};\n"
31
32
  ],
32
- "mappings": ";;;;;;;;;AAAA;;AAEA;;;;AAEO,IAAMA,KAAe,GAAG;EAC7BC,IAAI,EAAE,OADuB;EAE7BC,UAAU,EAAE,OAFiB;EAG7BC,SAAS,EAAE,WAHkB;EAI7BC,WAAW,EAAE;IAAE,cAAc,WAAhB;IAA6BC,KAAK,EAAE;EAApC,CAJgB;EAK7BC,IAAI,eACF;IAAK,KAAK,EAAC,IAAX;IAAgB,MAAM,EAAC,IAAvB;IAA4B,OAAO,EAAC,WAApC;IAAA,uBACE;MACE,IAAI,EAAC,cADP;MAEE,CAAC,EAAC;IAFJ;EADF,EAN2B;EAa7BC,OAAO,EAAE,iBAACC,KAAD,EAAmBC,GAAnB,EAA4C;IACnD;IACA,IAAMC,iBAAiB,GAAG,+BAAW;MAAEC,IAAI,EAAEH,KAAK,CAACG,IAAd;MAAoBC,SAAS,EAAEJ,KAAK,CAACI;IAArC,CAAX,CAA1B;IACA,IAAMC,MAAM,GAAGJ,GAAG,CAACK,iBAAJ,CAAsBJ,iBAAtB,CAAf,CAHmD,CAInD;;IACA,IAAMK,aAAa,GAAGF,MAAM,CAACG,YAAP,IAAuB,oCAA7C;IACAP,GAAG,CAACQ,gBAAJ,eAA4BF,aAA5B,QANmD,CAOnD;;IACAN,GAAG,CAACK,iBAAJ,CAAsB;MACpBI,KAAK,EAAE,IAAIL,MAAM,CAACD,SAAP,CAAiBM,KADR;MAEpBC,GAAG,EAAE,IAAIN,MAAM,CAACD,SAAP,CAAiBM,KAArB,GAA6BH,aAAa,CAACK;IAF5B,CAAtB;EAID;AAzB4B,CAAxB"
33
+ "mappings": ";;;;;;;;;AAAA;;AAEA;;;;AAEO,IAAMA,KAAe,GAAG;EAC7BC,IAAI,EAAE,OADuB;EAE7BC,UAAU,EAAE,OAFiB;EAG7BC,SAAS,EAAE,WAHkB;EAI7BC,WAAW,EAAE;IAAE,cAAc,WAAhB;IAA6BC,KAAK,EAAE;EAApC,CAJgB;EAK7BC,IAAI,eACF;IAAK,KAAK,EAAC,IAAX;IAAgB,MAAM,EAAC,IAAvB;IAA4B,OAAO,EAAC,WAApC;IAAA,uBACE;MACE,IAAI,EAAC,cADP;MAEE,CAAC,EAAC;IAFJ;EADF,EAN2B;EAa7BC,OAAO,EAAE,iBAACC,KAAD,EAAmBC,GAAnB,EAA4C;IACnD;IACA,IAAMC,iBAAiB,GAAG,IAAAC,yBAAA,EAAW;MAAEC,IAAI,EAAEJ,KAAK,CAACI,IAAd;MAAoBC,SAAS,EAAEL,KAAK,CAACK;IAArC,CAAX,CAA1B;IACA,IAAMC,MAAM,GAAGL,GAAG,CAACM,iBAAJ,CAAsBL,iBAAtB,CAAf,CAHmD,CAInD;;IACA,IAAMM,aAAa,GAAGF,MAAM,CAACG,YAAP,IAAuB,oCAA7C;IACAR,GAAG,CAACS,gBAAJ,eAA4BF,aAA5B,QANmD,CAOnD;;IACAP,GAAG,CAACM,iBAAJ,CAAsB;MACpBI,KAAK,EAAE,IAAIL,MAAM,CAACD,SAAP,CAAiBM,KADR;MAEpBC,GAAG,EAAE,IAAIN,MAAM,CAACD,SAAP,CAAiBM,KAArB,GAA6BH,aAAa,CAACK;IAF5B,CAAtB;EAID;AAzB4B,CAAxB"
33
34
  }
@@ -34,6 +34,7 @@
34
34
  "selectedText",
35
35
  "slice",
36
36
  "TextAreaTextApi",
37
+ "insertTextAtPosition",
37
38
  "focus",
38
39
  "TextAreaCommandOrchestrator",
39
40
  "textApi",
@@ -48,5 +49,5 @@
48
49
  "sourcesContent": [
49
50
  "import { bold } from './bold';\nimport { code, codeBlock } from './code';\nimport { italic } from './italic';\nimport { link } from './link';\nimport { unorderedListCommand, orderedListCommand, checkedListCommand } from './list';\nimport { quote } from './quote';\nimport { hr } from './hr';\nimport { title } from './title';\nimport { title1 } from './title1';\nimport { title2 } from './title2';\nimport { title3 } from './title3';\nimport { title4 } from './title4';\nimport { title5 } from './title5';\nimport { title6 } from './title6';\nimport { comment } from './comment';\nimport { group } from './group';\nimport { divider } from './divider';\nimport { codePreview, codeEdit, codeLive } from './preview';\nimport { fullscreen } from './fullscreen';\nimport { image } from './image';\nimport { strikethrough } from './strikeThrough';\nimport { insertTextAtPosition } from '../utils/InsertTextAtPosition';\nimport { ContextStore, ExecuteCommandState } from '../Context';\n\nexport interface CommandOrchestrator {\n executeCommand(command: ICommand): void;\n}\n\nexport interface ICommandChildHandle<T = string> extends ICommandBase<T> {\n children?: (handle: {\n close: () => void;\n execute: () => void;\n getState?: TextAreaCommandOrchestrator['getState'];\n textApi?: TextAreaTextApi;\n }) => React.ReactElement;\n}\n\nexport interface ICommandChildCommands<T = string> extends ICommandBase<T> {\n children?: Array<ICommand<T>>;\n}\n\nexport interface ICommandBase<T> {\n parent?: ICommand<any>;\n keyCommand?: string;\n name?: string;\n shortcuts?: string;\n groupName?: string;\n icon?: React.ReactElement;\n value?: T;\n position?: 'right';\n liProps?: React.LiHTMLAttributes<HTMLLIElement>;\n buttonProps?: React.ButtonHTMLAttributes<HTMLButtonElement> | null;\n execute?: (\n state: TextState,\n api: TextAreaTextApi,\n dispatch?: React.Dispatch<ContextStore>,\n executeCommandState?: ExecuteCommandState,\n ) => void;\n}\n\nexport type ICommand<T = string> = ICommandChildCommands<T> | ICommandChildHandle<T>;\n\nexport interface TextRange {\n start: number;\n end: number;\n}\n\nexport interface TextState {\n text: string;\n selectedText: string;\n selection: TextRange;\n}\n\nconst getCommands: () => ICommand[] = () => [\n comment,\n bold,\n italic,\n strikethrough,\n hr,\n title,\n divider,\n link,\n quote,\n code,\n codeBlock,\n image,\n divider,\n unorderedListCommand,\n orderedListCommand,\n checkedListCommand,\n];\n\nconst getExtraCommands: () => ICommand[] = () => [codeEdit, codeLive, codePreview, divider, fullscreen];\n\nfunction getStateFromTextArea(textArea: HTMLTextAreaElement): TextState {\n return {\n selection: {\n start: textArea.selectionStart,\n end: textArea.selectionEnd,\n },\n text: textArea.value,\n selectedText: textArea.value.slice(textArea.selectionStart, textArea.selectionEnd),\n };\n}\n\nclass TextAreaTextApi {\n textArea: HTMLTextAreaElement;\n\n constructor(textArea: HTMLTextAreaElement) {\n this.textArea = textArea;\n }\n\n /**\n * Replaces the current selection with the new text. This will make the new selectedText to be empty, the\n * selection start and selection end will be the same and will both point to the end\n * @param text Text that should replace the current selection\n */\n replaceSelection(text: string): TextState {\n insertTextAtPosition(this.textArea, text);\n return getStateFromTextArea(this.textArea);\n }\n\n /**\n * Selects the specified text range\n * @param selection\n */\n setSelectionRange(selection: TextRange): TextState {\n this.textArea.focus();\n this.textArea.selectionStart = selection.start;\n this.textArea.selectionEnd = selection.end;\n return getStateFromTextArea(this.textArea);\n }\n}\n\nclass TextAreaCommandOrchestrator implements CommandOrchestrator {\n textArea: HTMLTextAreaElement;\n textApi: TextAreaTextApi;\n\n constructor(textArea: HTMLTextAreaElement) {\n this.textArea = textArea;\n this.textApi = new TextAreaTextApi(textArea);\n }\n\n getState() {\n if (!this.textArea) return false;\n return getStateFromTextArea(this.textArea);\n }\n\n executeCommand(\n command: ICommand<string>,\n dispatch?: React.Dispatch<ContextStore>,\n state?: ExecuteCommandState,\n ): void {\n command.execute && command.execute(getStateFromTextArea(this.textArea), this.textApi, dispatch, state);\n }\n}\n\nexport {\n // Toolbars.\n title,\n title1,\n title2,\n title3,\n title4,\n title5,\n title6,\n bold,\n codeBlock,\n italic,\n strikethrough,\n hr,\n group,\n divider,\n link,\n quote,\n code,\n image,\n unorderedListCommand,\n orderedListCommand,\n checkedListCommand,\n codeEdit,\n codeLive,\n codePreview,\n fullscreen,\n // Tool method.\n getCommands,\n getExtraCommands,\n getStateFromTextArea,\n TextAreaCommandOrchestrator,\n TextAreaTextApi,\n};\n"
50
51
  ],
51
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAoDA,IAAMA,WAA6B,GAAG,SAAhCA,WAAgC;EAAA,OAAM,CAC1CC,gBAD0C,EAE1CC,UAF0C,EAG1CC,cAH0C,EAI1CC,4BAJ0C,EAK1CC,MAL0C,EAM1CC,YAN0C,EAO1CC,gBAP0C,EAQ1CC,UAR0C,EAS1CC,YAT0C,EAU1CC,UAV0C,EAW1CC,eAX0C,EAY1CC,YAZ0C,EAa1CL,gBAb0C,EAc1CM,0BAd0C,EAe1CC,wBAf0C,EAgB1CC,wBAhB0C,CAAN;AAAA,CAAtC;;;;AAmBA,IAAMC,gBAAkC,GAAG,SAArCA,gBAAqC;EAAA,OAAM,CAACC,iBAAD,EAAWC,iBAAX,EAAqBC,oBAArB,EAAkCZ,gBAAlC,EAA2Ca,sBAA3C,CAAN;AAAA,CAA3C;;;;AAEA,SAASC,oBAAT,CAA8BC,QAA9B,EAAwE;EACtE,OAAO;IACLC,SAAS,EAAE;MACTC,KAAK,EAAEF,QAAQ,CAACG,cADP;MAETC,GAAG,EAAEJ,QAAQ,CAACK;IAFL,CADN;IAKLC,IAAI,EAAEN,QAAQ,CAACO,KALV;IAMLC,YAAY,EAAER,QAAQ,CAACO,KAAT,CAAeE,KAAf,CAAqBT,QAAQ,CAACG,cAA9B,EAA8CH,QAAQ,CAACK,YAAvD;EANT,CAAP;AAQD;;IAEKK,e;EAGJ,yBAAYV,QAAZ,EAA2C;IAAA;IAAA;IACzC,KAAKA,QAAL,GAAgBA,QAAhB;EACD;EAED;AACF;AACA;AACA;AACA;;;;;WACE,0BAAiBM,IAAjB,EAA0C;MACxC,gDAAqB,KAAKN,QAA1B,EAAoCM,IAApC;MACA,OAAOP,oBAAoB,CAAC,KAAKC,QAAN,CAA3B;IACD;IAED;AACF;AACA;AACA;;;;WACE,2BAAkBC,SAAlB,EAAmD;MACjD,KAAKD,QAAL,CAAcW,KAAd;MACA,KAAKX,QAAL,CAAcG,cAAd,GAA+BF,SAAS,CAACC,KAAzC;MACA,KAAKF,QAAL,CAAcK,YAAd,GAA6BJ,SAAS,CAACG,GAAvC;MACA,OAAOL,oBAAoB,CAAC,KAAKC,QAAN,CAA3B;IACD;;;;;;;IAGGY,2B;EAIJ,qCAAYZ,QAAZ,EAA2C;IAAA;IAAA;IAAA;IACzC,KAAKA,QAAL,GAAgBA,QAAhB;IACA,KAAKa,OAAL,GAAe,IAAIH,eAAJ,CAAoBV,QAApB,CAAf;EACD;;;;WAED,oBAAW;MACT,IAAI,CAAC,KAAKA,QAAV,EAAoB,OAAO,KAAP;MACpB,OAAOD,oBAAoB,CAAC,KAAKC,QAAN,CAA3B;IACD;;;WAED,wBACEc,OADF,EAEEC,QAFF,EAGEC,KAHF,EAIQ;MACNF,OAAO,CAACG,OAAR,IAAmBH,OAAO,CAACG,OAAR,CAAgBlB,oBAAoB,CAAC,KAAKC,QAAN,CAApC,EAAqD,KAAKa,OAA1D,EAAmEE,QAAnE,EAA6EC,KAA7E,CAAnB;IACD"
52
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAoDA,IAAMA,WAA6B,GAAG,SAAhCA,WAAgC;EAAA,OAAM,CAC1CC,gBAD0C,EAE1CC,UAF0C,EAG1CC,cAH0C,EAI1CC,4BAJ0C,EAK1CC,MAL0C,EAM1CC,YAN0C,EAO1CC,gBAP0C,EAQ1CC,UAR0C,EAS1CC,YAT0C,EAU1CC,UAV0C,EAW1CC,eAX0C,EAY1CC,YAZ0C,EAa1CL,gBAb0C,EAc1CM,0BAd0C,EAe1CC,wBAf0C,EAgB1CC,wBAhB0C,CAAN;AAAA,CAAtC;;;;AAmBA,IAAMC,gBAAkC,GAAG,SAArCA,gBAAqC;EAAA,OAAM,CAACC,iBAAD,EAAWC,iBAAX,EAAqBC,oBAArB,EAAkCZ,gBAAlC,EAA2Ca,sBAA3C,CAAN;AAAA,CAA3C;;;;AAEA,SAASC,oBAAT,CAA8BC,QAA9B,EAAwE;EACtE,OAAO;IACLC,SAAS,EAAE;MACTC,KAAK,EAAEF,QAAQ,CAACG,cADP;MAETC,GAAG,EAAEJ,QAAQ,CAACK;IAFL,CADN;IAKLC,IAAI,EAAEN,QAAQ,CAACO,KALV;IAMLC,YAAY,EAAER,QAAQ,CAACO,KAAT,CAAeE,KAAf,CAAqBT,QAAQ,CAACG,cAA9B,EAA8CH,QAAQ,CAACK,YAAvD;EANT,CAAP;AAQD;;IAEKK,e;EAGJ,yBAAYV,QAAZ,EAA2C;IAAA;IAAA;IACzC,KAAKA,QAAL,GAAgBA,QAAhB;EACD;EAED;AACF;AACA;AACA;AACA;;;;;WACE,0BAAiBM,IAAjB,EAA0C;MACxC,IAAAK,0CAAA,EAAqB,KAAKX,QAA1B,EAAoCM,IAApC;MACA,OAAOP,oBAAoB,CAAC,KAAKC,QAAN,CAA3B;IACD;IAED;AACF;AACA;AACA;;;;WACE,2BAAkBC,SAAlB,EAAmD;MACjD,KAAKD,QAAL,CAAcY,KAAd;MACA,KAAKZ,QAAL,CAAcG,cAAd,GAA+BF,SAAS,CAACC,KAAzC;MACA,KAAKF,QAAL,CAAcK,YAAd,GAA6BJ,SAAS,CAACG,GAAvC;MACA,OAAOL,oBAAoB,CAAC,KAAKC,QAAN,CAA3B;IACD;;;;;;;IAGGa,2B;EAIJ,qCAAYb,QAAZ,EAA2C;IAAA;IAAA;IAAA;IACzC,KAAKA,QAAL,GAAgBA,QAAhB;IACA,KAAKc,OAAL,GAAe,IAAIJ,eAAJ,CAAoBV,QAApB,CAAf;EACD;;;;WAED,oBAAW;MACT,IAAI,CAAC,KAAKA,QAAV,EAAoB,OAAO,KAAP;MACpB,OAAOD,oBAAoB,CAAC,KAAKC,QAAN,CAA3B;IACD;;;WAED,wBACEe,OADF,EAEEC,QAFF,EAGEC,KAHF,EAIQ;MACNF,OAAO,CAACG,OAAR,IAAmBH,OAAO,CAACG,OAAR,CAAgBnB,oBAAoB,CAAC,KAAKC,QAAN,CAApC,EAAqD,KAAKc,OAA1D,EAAmEE,QAAnE,EAA6EC,KAA7E,CAAnB;IACD"
52
53
  }
@@ -12,6 +12,7 @@
12
12
  "state",
13
13
  "api",
14
14
  "newSelectionRange",
15
+ "selectWord",
15
16
  "text",
16
17
  "selection",
17
18
  "state1",
@@ -29,5 +30,5 @@
29
30
  "sourcesContent": [
30
31
  "import * as React from 'react';\nimport { ICommand, TextState, TextAreaTextApi } from './';\nimport { selectWord } from '../utils/markdownUtils';\n\nexport const italic: ICommand = {\n name: 'italic',\n keyCommand: 'italic',\n shortcuts: 'ctrlcmd+i',\n buttonProps: { 'aria-label': 'Add italic text', title: 'Add italic text' },\n icon: (\n <svg data-name=\"italic\" width=\"12\" height=\"12\" role=\"img\" viewBox=\"0 0 320 512\">\n <path\n fill=\"currentColor\"\n d=\"M204.758 416h-33.849l62.092-320h40.725a16 16 0 0 0 15.704-12.937l6.242-32C297.599 41.184 290.034 32 279.968 32H120.235a16 16 0 0 0-15.704 12.937l-6.242 32C96.362 86.816 103.927 96 113.993 96h33.846l-62.09 320H46.278a16 16 0 0 0-15.704 12.935l-6.245 32C22.402 470.815 29.967 480 40.034 480h158.479a16 16 0 0 0 15.704-12.935l6.245-32c1.927-9.88-5.638-19.065-15.704-19.065z\"\n />\n </svg>\n ),\n execute: (state: TextState, api: TextAreaTextApi) => {\n // Adjust the selection to encompass the whole word if the caret is inside one\n const newSelectionRange = selectWord({ text: state.text, selection: state.selection });\n const state1 = api.setSelectionRange(newSelectionRange);\n // Replaces the current selection with the italic mark up\n const state2 = api.replaceSelection(`*${state1.selectedText}*`);\n // Adjust the selection to not contain the *\n api.setSelectionRange({\n start: state2.selection.end - 1 - state1.selectedText.length,\n end: state2.selection.end - 1,\n });\n },\n};\n"
31
32
  ],
32
- "mappings": ";;;;;;;;;AAAA;;AAEA;;;;AAEO,IAAMA,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QADwB;EAE9BC,UAAU,EAAE,QAFkB;EAG9BC,SAAS,EAAE,WAHmB;EAI9BC,WAAW,EAAE;IAAE,cAAc,iBAAhB;IAAmCC,KAAK,EAAE;EAA1C,CAJiB;EAK9BC,IAAI,eACF;IAAK,aAAU,QAAf;IAAwB,KAAK,EAAC,IAA9B;IAAmC,MAAM,EAAC,IAA1C;IAA+C,IAAI,EAAC,KAApD;IAA0D,OAAO,EAAC,aAAlE;IAAA,uBACE;MACE,IAAI,EAAC,cADP;MAEE,CAAC,EAAC;IAFJ;EADF,EAN4B;EAa9BC,OAAO,EAAE,iBAACC,KAAD,EAAmBC,GAAnB,EAA4C;IACnD;IACA,IAAMC,iBAAiB,GAAG,+BAAW;MAAEC,IAAI,EAAEH,KAAK,CAACG,IAAd;MAAoBC,SAAS,EAAEJ,KAAK,CAACI;IAArC,CAAX,CAA1B;IACA,IAAMC,MAAM,GAAGJ,GAAG,CAACK,iBAAJ,CAAsBJ,iBAAtB,CAAf,CAHmD,CAInD;;IACA,IAAMK,MAAM,GAAGN,GAAG,CAACO,gBAAJ,YAAyBH,MAAM,CAACI,YAAhC,OAAf,CALmD,CAMnD;;IACAR,GAAG,CAACK,iBAAJ,CAAsB;MACpBI,KAAK,EAAEH,MAAM,CAACH,SAAP,CAAiBO,GAAjB,GAAuB,CAAvB,GAA2BN,MAAM,CAACI,YAAP,CAAoBG,MADlC;MAEpBD,GAAG,EAAEJ,MAAM,CAACH,SAAP,CAAiBO,GAAjB,GAAuB;IAFR,CAAtB;EAID;AAxB6B,CAAzB"
33
+ "mappings": ";;;;;;;;;AAAA;;AAEA;;;;AAEO,IAAMA,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QADwB;EAE9BC,UAAU,EAAE,QAFkB;EAG9BC,SAAS,EAAE,WAHmB;EAI9BC,WAAW,EAAE;IAAE,cAAc,iBAAhB;IAAmCC,KAAK,EAAE;EAA1C,CAJiB;EAK9BC,IAAI,eACF;IAAK,aAAU,QAAf;IAAwB,KAAK,EAAC,IAA9B;IAAmC,MAAM,EAAC,IAA1C;IAA+C,IAAI,EAAC,KAApD;IAA0D,OAAO,EAAC,aAAlE;IAAA,uBACE;MACE,IAAI,EAAC,cADP;MAEE,CAAC,EAAC;IAFJ;EADF,EAN4B;EAa9BC,OAAO,EAAE,iBAACC,KAAD,EAAmBC,GAAnB,EAA4C;IACnD;IACA,IAAMC,iBAAiB,GAAG,IAAAC,yBAAA,EAAW;MAAEC,IAAI,EAAEJ,KAAK,CAACI,IAAd;MAAoBC,SAAS,EAAEL,KAAK,CAACK;IAArC,CAAX,CAA1B;IACA,IAAMC,MAAM,GAAGL,GAAG,CAACM,iBAAJ,CAAsBL,iBAAtB,CAAf,CAHmD,CAInD;;IACA,IAAMM,MAAM,GAAGP,GAAG,CAACQ,gBAAJ,YAAyBH,MAAM,CAACI,YAAhC,OAAf,CALmD,CAMnD;;IACAT,GAAG,CAACM,iBAAJ,CAAsB;MACpBI,KAAK,EAAEH,MAAM,CAACH,SAAP,CAAiBO,GAAjB,GAAuB,CAAvB,GAA2BN,MAAM,CAACI,YAAP,CAAoBG,MADlC;MAEpBD,GAAG,EAAEJ,MAAM,CAACH,SAAP,CAAiBO,GAAjB,GAAuB;IAFR,CAAtB;EAID;AAxB6B,CAAzB"
33
34
  }
@@ -12,6 +12,7 @@
12
12
  "state",
13
13
  "api",
14
14
  "newSelectionRange",
15
+ "selectWord",
15
16
  "text",
16
17
  "selection",
17
18
  "state1",
@@ -29,5 +30,5 @@
29
30
  "sourcesContent": [
30
31
  "import * as React from 'react';\nimport { ICommand, TextState, TextAreaTextApi } from './';\nimport { selectWord } from '../utils/markdownUtils';\n\nexport const link: ICommand = {\n name: 'link',\n keyCommand: 'link',\n shortcuts: 'ctrlcmd+k',\n buttonProps: { 'aria-label': 'Add a link', title: 'Add a link' },\n icon: (\n <svg data-name=\"italic\" width=\"12\" height=\"12\" role=\"img\" viewBox=\"0 0 520 520\">\n <path\n fill=\"currentColor\"\n d=\"M331.751196,182.121107 C392.438214,241.974735 391.605313,337.935283 332.11686,396.871226 C332.005129,396.991316 331.873084,397.121413 331.751196,397.241503 L263.493918,464.491645 C203.291404,523.80587 105.345257,523.797864 45.151885,464.491645 C-15.0506283,405.187427 -15.0506283,308.675467 45.151885,249.371249 L82.8416853,212.237562 C92.836501,202.39022 110.049118,208.9351 110.56511,222.851476 C111.223305,240.5867 114.451306,258.404985 120.407566,275.611815 C122.424812,281.438159 120.983487,287.882964 116.565047,292.23621 L103.272145,305.332975 C74.8052033,333.379887 73.9123737,379.047937 102.098973,407.369054 C130.563883,435.969378 177.350591,436.139505 206.033884,407.879434 L274.291163,340.6393 C302.9257,312.427264 302.805844,266.827265 274.291163,238.733318 C270.531934,235.036561 266.74528,232.16442 263.787465,230.157924 C259.544542,227.2873 256.928256,222.609848 256.731165,217.542518 C256.328935,206.967633 260.13184,196.070508 268.613213,187.714278 L289.998463,166.643567 C295.606326,161.118448 304.403592,160.439942 310.906317,164.911276 C318.353355,170.034591 325.328531,175.793397 331.751196,182.121107 Z M240.704978,55.4828366 L172.447607,122.733236 C172.325719,122.853326 172.193674,122.983423 172.081943,123.103513 C117.703294,179.334654 129.953294,261.569283 185.365841,328.828764 C191.044403,335.721376 198.762988,340.914712 206.209732,346.037661 C212.712465,350.509012 221.510759,349.829503 227.117615,344.305363 L248.502893,323.234572 C256.984277,314.87831 260.787188,303.981143 260.384957,293.406218 C260.187865,288.338869 257.571576,283.661398 253.328648,280.790763 C250.370829,278.78426 246.58417,275.912107 242.824936,272.215337 C214.310216,244.121282 206.209732,204.825874 229.906702,179.334654 L298.164073,112.094263 C326.847404,83.8340838 373.633159,84.0042113 402.099123,112.604645 C430.285761,140.92587 429.393946,186.594095 400.92595,214.641114 L387.63303,227.737929 C383.214584,232.091191 381.773257,238.536021 383.790506,244.362388 C389.746774,261.569283 392.974779,279.387637 393.632975,297.122928 C394.149984,311.039357 411.361608,317.584262 421.356437,307.736882 L459.046288,270.603053 C519.249898,211.29961 519.249898,114.787281 459.047304,55.4828366 C398.853851,-3.82360914 300.907572,-3.83161514 240.704978,55.4828366 Z\"\n />\n </svg>\n ),\n execute: (state: TextState, api: TextAreaTextApi) => {\n // Adjust the selection to encompass the whole word if the caret is inside one\n const newSelectionRange = selectWord({ text: state.text, selection: state.selection });\n const state1 = api.setSelectionRange(newSelectionRange);\n // Replaces the current selection with the bold mark up\n const state2 = api.replaceSelection(`[${state1.selectedText}](url)`);\n // Adjust the selection to not contain the **\n api.setSelectionRange({\n start: state2.selection.end - 6 - state1.selectedText.length,\n end: state2.selection.end - 6,\n });\n },\n};\n"
31
32
  ],
32
- "mappings": ";;;;;;;;;AAAA;;AAEA;;;;AAEO,IAAMA,IAAc,GAAG;EAC5BC,IAAI,EAAE,MADsB;EAE5BC,UAAU,EAAE,MAFgB;EAG5BC,SAAS,EAAE,WAHiB;EAI5BC,WAAW,EAAE;IAAE,cAAc,YAAhB;IAA8BC,KAAK,EAAE;EAArC,CAJe;EAK5BC,IAAI,eACF;IAAK,aAAU,QAAf;IAAwB,KAAK,EAAC,IAA9B;IAAmC,MAAM,EAAC,IAA1C;IAA+C,IAAI,EAAC,KAApD;IAA0D,OAAO,EAAC,aAAlE;IAAA,uBACE;MACE,IAAI,EAAC,cADP;MAEE,CAAC,EAAC;IAFJ;EADF,EAN0B;EAa5BC,OAAO,EAAE,iBAACC,KAAD,EAAmBC,GAAnB,EAA4C;IACnD;IACA,IAAMC,iBAAiB,GAAG,+BAAW;MAAEC,IAAI,EAAEH,KAAK,CAACG,IAAd;MAAoBC,SAAS,EAAEJ,KAAK,CAACI;IAArC,CAAX,CAA1B;IACA,IAAMC,MAAM,GAAGJ,GAAG,CAACK,iBAAJ,CAAsBJ,iBAAtB,CAAf,CAHmD,CAInD;;IACA,IAAMK,MAAM,GAAGN,GAAG,CAACO,gBAAJ,YAAyBH,MAAM,CAACI,YAAhC,YAAf,CALmD,CAMnD;;IACAR,GAAG,CAACK,iBAAJ,CAAsB;MACpBI,KAAK,EAAEH,MAAM,CAACH,SAAP,CAAiBO,GAAjB,GAAuB,CAAvB,GAA2BN,MAAM,CAACI,YAAP,CAAoBG,MADlC;MAEpBD,GAAG,EAAEJ,MAAM,CAACH,SAAP,CAAiBO,GAAjB,GAAuB;IAFR,CAAtB;EAID;AAxB2B,CAAvB"
33
+ "mappings": ";;;;;;;;;AAAA;;AAEA;;;;AAEO,IAAMA,IAAc,GAAG;EAC5BC,IAAI,EAAE,MADsB;EAE5BC,UAAU,EAAE,MAFgB;EAG5BC,SAAS,EAAE,WAHiB;EAI5BC,WAAW,EAAE;IAAE,cAAc,YAAhB;IAA8BC,KAAK,EAAE;EAArC,CAJe;EAK5BC,IAAI,eACF;IAAK,aAAU,QAAf;IAAwB,KAAK,EAAC,IAA9B;IAAmC,MAAM,EAAC,IAA1C;IAA+C,IAAI,EAAC,KAApD;IAA0D,OAAO,EAAC,aAAlE;IAAA,uBACE;MACE,IAAI,EAAC,cADP;MAEE,CAAC,EAAC;IAFJ;EADF,EAN0B;EAa5BC,OAAO,EAAE,iBAACC,KAAD,EAAmBC,GAAnB,EAA4C;IACnD;IACA,IAAMC,iBAAiB,GAAG,IAAAC,yBAAA,EAAW;MAAEC,IAAI,EAAEJ,KAAK,CAACI,IAAd;MAAoBC,SAAS,EAAEL,KAAK,CAACK;IAArC,CAAX,CAA1B;IACA,IAAMC,MAAM,GAAGL,GAAG,CAACM,iBAAJ,CAAsBL,iBAAtB,CAAf,CAHmD,CAInD;;IACA,IAAMM,MAAM,GAAGP,GAAG,CAACQ,gBAAJ,YAAyBH,MAAM,CAACI,YAAhC,YAAf,CALmD,CAMnD;;IACAT,GAAG,CAACM,iBAAJ,CAAsB;MACpBI,KAAK,EAAEH,MAAM,CAACH,SAAP,CAAiBO,GAAjB,GAAuB,CAAvB,GAA2BN,MAAM,CAACI,YAAP,CAAoBG,MADlC;MAEpBD,GAAG,EAAEJ,MAAM,CAACH,SAAP,CAAiBO,GAAjB,GAAuB;IAFR,CAAtB;EAID;AAxB2B,CAAvB"
33
34
  }
@@ -19,15 +19,18 @@
19
19
  "state",
20
20
  "api",
21
21
  "newSelectionRange",
22
+ "selectWord",
22
23
  "text",
23
24
  "selection",
24
25
  "state1",
25
26
  "setSelectionRange",
26
27
  "breaksBeforeCount",
28
+ "getBreaksNeededForEmptyLineBefore",
27
29
  "start",
28
30
  "breaksBefore",
29
31
  "Array",
30
32
  "breaksAfterCount",
33
+ "getBreaksNeededForEmptyLineAfter",
31
34
  "end",
32
35
  "breaksAfter",
33
36
  "replaceSelection",
@@ -52,5 +55,5 @@
52
55
  "sourcesContent": [
53
56
  "import * as React from 'react';\nimport { ICommand, TextState, TextAreaTextApi } from './';\nimport {\n selectWord,\n getBreaksNeededForEmptyLineBefore,\n getBreaksNeededForEmptyLineAfter,\n} from '../utils/markdownUtils';\n\nexport type AlterLineFunction = (line: string, index: number) => string;\n\n/**\n * Inserts insertionString before each line\n */\nexport function insertBeforeEachLine(\n selectedText: string,\n insertBefore: string | AlterLineFunction,\n): { modifiedText: string; insertionLength: number } {\n const lines = selectedText.split(/\\n/);\n\n let insertionLength = 0;\n const modifiedText = lines\n .map((item, index) => {\n if (typeof insertBefore === 'string') {\n insertionLength += insertBefore.length;\n return insertBefore + item;\n } else if (typeof insertBefore === 'function') {\n const insertionResult = insertBefore(item, index);\n insertionLength += insertionResult.length;\n return insertBefore(item, index) + item;\n }\n throw Error('insertion is expected to be either a string or a function');\n })\n .join('\\n');\n\n return { modifiedText, insertionLength };\n}\n\nexport const makeList = (state: TextState, api: TextAreaTextApi, insertBefore: string | AlterLineFunction) => {\n // Adjust the selection to encompass the whole word if the caret is inside one\n const newSelectionRange = selectWord({ text: state.text, selection: state.selection });\n const state1 = api.setSelectionRange(newSelectionRange);\n\n const breaksBeforeCount = getBreaksNeededForEmptyLineBefore(state1.text, state1.selection.start);\n const breaksBefore = Array(breaksBeforeCount + 1).join('\\n');\n\n const breaksAfterCount = getBreaksNeededForEmptyLineAfter(state1.text, state1.selection.end);\n const breaksAfter = Array(breaksAfterCount + 1).join('\\n');\n\n const modifiedText = insertBeforeEachLine(state1.selectedText, insertBefore);\n\n api.replaceSelection(`${breaksBefore}${modifiedText.modifiedText}${breaksAfter}`);\n\n // Specifically when the text has only one line, we can exclude the \"- \", for example, from the selection\n const oneLinerOffset = state1.selectedText.indexOf('\\n') === -1 ? modifiedText.insertionLength : 0;\n\n const selectionStart = state1.selection.start + breaksBeforeCount + oneLinerOffset;\n const selectionEnd = selectionStart + modifiedText.modifiedText.length - oneLinerOffset;\n\n // Adjust the selection to not contain the **\n api.setSelectionRange({\n start: selectionStart,\n end: selectionEnd,\n });\n};\n\nexport const unorderedListCommand: ICommand = {\n name: 'unordered-list',\n keyCommand: 'list',\n shortcuts: 'ctrl+shift+l',\n buttonProps: { 'aria-label': 'Add unordered list', title: 'Add unordered list' },\n icon: (\n <svg data-name=\"unordered-list\" width=\"12\" height=\"12\" viewBox=\"0 0 512 512\">\n <path\n fill=\"currentColor\"\n d=\"M96 96c0 26.51-21.49 48-48 48S0 122.51 0 96s21.49-48 48-48 48 21.49 48 48zM48 208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm0 160c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm96-236h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"\n />\n </svg>\n ),\n execute: (state: TextState, api: TextAreaTextApi) => {\n makeList(state, api, '- ');\n },\n};\n\nexport const orderedListCommand: ICommand = {\n name: 'ordered-list',\n keyCommand: 'list',\n shortcuts: 'ctrl+shift+o',\n buttonProps: { 'aria-label': 'Add ordered list', title: 'Add ordered list' },\n icon: (\n <svg data-name=\"ordered-list\" width=\"12\" height=\"12\" role=\"img\" viewBox=\"0 0 512 512\">\n <path\n fill=\"currentColor\"\n d=\"M3.263 139.527c0-7.477 3.917-11.572 11.573-11.572h15.131V88.078c0-5.163.534-10.503.534-10.503h-.356s-1.779 2.67-2.848 3.738c-4.451 4.273-10.504 4.451-15.666-1.068l-5.518-6.231c-5.342-5.341-4.984-11.216.534-16.379l21.72-19.938C32.815 33.602 36.732 32 42.785 32H54.89c7.656 0 11.749 3.916 11.749 11.572v84.384h15.488c7.655 0 11.572 4.094 11.572 11.572v8.901c0 7.477-3.917 11.572-11.572 11.572H14.836c-7.656 0-11.573-4.095-11.573-11.572v-8.902zM2.211 304.591c0-47.278 50.955-56.383 50.955-69.165 0-7.18-5.954-8.755-9.28-8.755-3.153 0-6.479 1.051-9.455 3.852-5.079 4.903-10.507 7.004-16.111 2.451l-8.579-6.829c-5.779-4.553-7.18-9.805-2.803-15.409C13.592 201.981 26.025 192 47.387 192c19.437 0 44.476 10.506 44.476 39.573 0 38.347-46.753 46.402-48.679 56.909h39.049c7.529 0 11.557 4.027 11.557 11.382v8.755c0 7.354-4.028 11.382-11.557 11.382h-67.94c-7.005 0-12.083-4.028-12.083-11.382v-4.028zM5.654 454.61l5.603-9.28c3.853-6.654 9.105-7.004 15.584-3.152 4.903 2.101 9.63 3.152 14.359 3.152 10.155 0 14.358-3.502 14.358-8.23 0-6.654-5.604-9.106-15.934-9.106h-4.728c-5.954 0-9.28-2.101-12.258-7.88l-1.05-1.926c-2.451-4.728-1.226-9.806 2.801-14.884l5.604-7.004c6.829-8.405 12.257-13.483 12.257-13.483v-.35s-4.203 1.051-12.608 1.051H16.685c-7.53 0-11.383-4.028-11.383-11.382v-8.755c0-7.53 3.853-11.382 11.383-11.382h58.484c7.529 0 11.382 4.027 11.382 11.382v3.327c0 5.778-1.401 9.806-5.079 14.183l-17.509 20.137c19.611 5.078 28.716 20.487 28.716 34.845 0 21.363-14.358 44.126-48.503 44.126-16.636 0-28.192-4.728-35.896-9.455-5.779-4.202-6.304-9.805-2.626-15.934zM144 132h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"\n />\n </svg>\n ),\n execute: (state: TextState, api: TextAreaTextApi) => {\n makeList(state, api, (item, index) => `${index + 1}. `);\n },\n};\n\nexport const checkedListCommand: ICommand = {\n name: 'checked-list',\n keyCommand: 'list',\n shortcuts: 'ctrl+shift+c',\n buttonProps: { 'aria-label': 'Add checked list', title: 'Add checked list' },\n icon: (\n <svg data-name=\"checked-list\" width=\"12\" height=\"12\" role=\"img\" viewBox=\"0 0 512 512\">\n <path\n fill=\"currentColor\"\n d=\"M208 132h288c8.8 0 16-7.2 16-16V76c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zm0 160h288c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zm0 160h288c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zM64 368c-26.5 0-48.6 21.5-48.6 48s22.1 48 48.6 48 48-21.5 48-48-21.5-48-48-48zm92.5-299l-72.2 72.2-15.6 15.6c-4.7 4.7-12.9 4.7-17.6 0L3.5 109.4c-4.7-4.7-4.7-12.3 0-17l15.7-15.7c4.7-4.7 12.3-4.7 17 0l22.7 22.1 63.7-63.3c4.7-4.7 12.3-4.7 17 0l17 16.5c4.6 4.7 4.6 12.3-.1 17zm0 159.6l-72.2 72.2-15.7 15.7c-4.7 4.7-12.9 4.7-17.6 0L3.5 269c-4.7-4.7-4.7-12.3 0-17l15.7-15.7c4.7-4.7 12.3-4.7 17 0l22.7 22.1 63.7-63.7c4.7-4.7 12.3-4.7 17 0l17 17c4.6 4.6 4.6 12.2-.1 16.9z\"\n />\n </svg>\n ),\n execute: (state: TextState, api: TextAreaTextApi) => {\n makeList(state, api, (item, index) => `- [ ] `);\n },\n};\n"
54
57
  ],
55
- "mappings": "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"
58
+ "mappings": "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"
56
59
  }
@@ -12,16 +12,19 @@
12
12
  "state",
13
13
  "api",
14
14
  "newSelectionRange",
15
+ "selectWord",
15
16
  "text",
16
17
  "selection",
17
18
  "state1",
18
19
  "setSelectionRange",
19
20
  "breaksBeforeCount",
21
+ "getBreaksNeededForEmptyLineBefore",
20
22
  "start",
21
23
  "breaksBefore",
22
24
  "Array",
23
25
  "join",
24
26
  "breaksAfterCount",
27
+ "getBreaksNeededForEmptyLineAfter",
25
28
  "end",
26
29
  "breaksAfter",
27
30
  "replaceSelection",
@@ -36,5 +39,5 @@
36
39
  "sourcesContent": [
37
40
  "import * as React from 'react';\nimport { ICommand, TextState, TextAreaTextApi } from './';\nimport {\n getBreaksNeededForEmptyLineBefore,\n getBreaksNeededForEmptyLineAfter,\n selectWord,\n} from '../utils/markdownUtils';\n\nexport const quote: ICommand = {\n name: 'quote',\n keyCommand: 'quote',\n shortcuts: 'ctrlcmd+q',\n buttonProps: { 'aria-label': 'Insert a quote', title: 'Insert a quote' },\n icon: (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 520 520\">\n <path\n fill=\"currentColor\"\n d=\"M520,95.75 L520,225.75 C520,364.908906 457.127578,437.050625 325.040469,472.443125 C309.577578,476.586875 294.396016,464.889922 294.396016,448.881641 L294.396016,414.457031 C294.396016,404.242891 300.721328,395.025078 310.328125,391.554687 C377.356328,367.342187 414.375,349.711094 414.375,274.5 L341.25,274.5 C314.325781,274.5 292.5,252.674219 292.5,225.75 L292.5,95.75 C292.5,68.8257812 314.325781,47 341.25,47 L471.25,47 C498.174219,47 520,68.8257812 520,95.75 Z M178.75,47 L48.75,47 C21.8257813,47 0,68.8257812 0,95.75 L0,225.75 C0,252.674219 21.8257813,274.5 48.75,274.5 L121.875,274.5 C121.875,349.711094 84.8563281,367.342187 17.828125,391.554687 C8.22132813,395.025078 1.89601563,404.242891 1.89601563,414.457031 L1.89601563,448.881641 C1.89601563,464.889922 17.0775781,476.586875 32.5404687,472.443125 C164.627578,437.050625 227.5,364.908906 227.5,225.75 L227.5,95.75 C227.5,68.8257812 205.674219,47 178.75,47 Z\"\n />\n </svg>\n ),\n execute: (state: TextState, api: TextAreaTextApi) => {\n // Adjust the selection to encompass the whole word if the caret is inside one\n const newSelectionRange = selectWord({ text: state.text, selection: state.selection });\n const state1 = api.setSelectionRange(newSelectionRange);\n const breaksBeforeCount = getBreaksNeededForEmptyLineBefore(state1.text, state1.selection.start);\n const breaksBefore = Array(breaksBeforeCount + 1).join('\\n');\n\n const breaksAfterCount = getBreaksNeededForEmptyLineAfter(state1.text, state1.selection.end);\n const breaksAfter = Array(breaksAfterCount + 1).join('\\n');\n\n // Replaces the current selection with the quote mark up\n api.replaceSelection(`${breaksBefore}> ${state1.selectedText}${breaksAfter}`);\n\n const selectionStart = state1.selection.start + breaksBeforeCount + 2;\n const selectionEnd = selectionStart + state1.selectedText.length;\n\n api.setSelectionRange({\n start: selectionStart,\n end: selectionEnd,\n });\n },\n};\n"
38
41
  ],
39
- "mappings": ";;;;;;;;;AAAA;;AAEA;;;;AAMO,IAAMA,KAAe,GAAG;EAC7BC,IAAI,EAAE,OADuB;EAE7BC,UAAU,EAAE,OAFiB;EAG7BC,SAAS,EAAE,WAHkB;EAI7BC,WAAW,EAAE;IAAE,cAAc,gBAAhB;IAAkCC,KAAK,EAAE;EAAzC,CAJgB;EAK7BC,IAAI,eACF;IAAK,KAAK,EAAC,IAAX;IAAgB,MAAM,EAAC,IAAvB;IAA4B,OAAO,EAAC,aAApC;IAAA,uBACE;MACE,IAAI,EAAC,cADP;MAEE,CAAC,EAAC;IAFJ;EADF,EAN2B;EAa7BC,OAAO,EAAE,iBAACC,KAAD,EAAmBC,GAAnB,EAA4C;IACnD;IACA,IAAMC,iBAAiB,GAAG,+BAAW;MAAEC,IAAI,EAAEH,KAAK,CAACG,IAAd;MAAoBC,SAAS,EAAEJ,KAAK,CAACI;IAArC,CAAX,CAA1B;IACA,IAAMC,MAAM,GAAGJ,GAAG,CAACK,iBAAJ,CAAsBJ,iBAAtB,CAAf;IACA,IAAMK,iBAAiB,GAAG,sDAAkCF,MAAM,CAACF,IAAzC,EAA+CE,MAAM,CAACD,SAAP,CAAiBI,KAAhE,CAA1B;IACA,IAAMC,YAAY,GAAGC,KAAK,CAACH,iBAAiB,GAAG,CAArB,CAAL,CAA6BI,IAA7B,CAAkC,IAAlC,CAArB;IAEA,IAAMC,gBAAgB,GAAG,qDAAiCP,MAAM,CAACF,IAAxC,EAA8CE,MAAM,CAACD,SAAP,CAAiBS,GAA/D,CAAzB;IACA,IAAMC,WAAW,GAAGJ,KAAK,CAACE,gBAAgB,GAAG,CAApB,CAAL,CAA4BD,IAA5B,CAAiC,IAAjC,CAApB,CARmD,CAUnD;;IACAV,GAAG,CAACc,gBAAJ,WAAwBN,YAAxB,eAAyCJ,MAAM,CAACW,YAAhD,SAA+DF,WAA/D;IAEA,IAAMG,cAAc,GAAGZ,MAAM,CAACD,SAAP,CAAiBI,KAAjB,GAAyBD,iBAAzB,GAA6C,CAApE;IACA,IAAMW,YAAY,GAAGD,cAAc,GAAGZ,MAAM,CAACW,YAAP,CAAoBG,MAA1D;IAEAlB,GAAG,CAACK,iBAAJ,CAAsB;MACpBE,KAAK,EAAES,cADa;MAEpBJ,GAAG,EAAEK;IAFe,CAAtB;EAID;AAjC4B,CAAxB"
42
+ "mappings": ";;;;;;;;;AAAA;;AAEA;;;;AAMO,IAAMA,KAAe,GAAG;EAC7BC,IAAI,EAAE,OADuB;EAE7BC,UAAU,EAAE,OAFiB;EAG7BC,SAAS,EAAE,WAHkB;EAI7BC,WAAW,EAAE;IAAE,cAAc,gBAAhB;IAAkCC,KAAK,EAAE;EAAzC,CAJgB;EAK7BC,IAAI,eACF;IAAK,KAAK,EAAC,IAAX;IAAgB,MAAM,EAAC,IAAvB;IAA4B,OAAO,EAAC,aAApC;IAAA,uBACE;MACE,IAAI,EAAC,cADP;MAEE,CAAC,EAAC;IAFJ;EADF,EAN2B;EAa7BC,OAAO,EAAE,iBAACC,KAAD,EAAmBC,GAAnB,EAA4C;IACnD;IACA,IAAMC,iBAAiB,GAAG,IAAAC,yBAAA,EAAW;MAAEC,IAAI,EAAEJ,KAAK,CAACI,IAAd;MAAoBC,SAAS,EAAEL,KAAK,CAACK;IAArC,CAAX,CAA1B;IACA,IAAMC,MAAM,GAAGL,GAAG,CAACM,iBAAJ,CAAsBL,iBAAtB,CAAf;IACA,IAAMM,iBAAiB,GAAG,IAAAC,gDAAA,EAAkCH,MAAM,CAACF,IAAzC,EAA+CE,MAAM,CAACD,SAAP,CAAiBK,KAAhE,CAA1B;IACA,IAAMC,YAAY,GAAGC,KAAK,CAACJ,iBAAiB,GAAG,CAArB,CAAL,CAA6BK,IAA7B,CAAkC,IAAlC,CAArB;IAEA,IAAMC,gBAAgB,GAAG,IAAAC,+CAAA,EAAiCT,MAAM,CAACF,IAAxC,EAA8CE,MAAM,CAACD,SAAP,CAAiBW,GAA/D,CAAzB;IACA,IAAMC,WAAW,GAAGL,KAAK,CAACE,gBAAgB,GAAG,CAApB,CAAL,CAA4BD,IAA5B,CAAiC,IAAjC,CAApB,CARmD,CAUnD;;IACAZ,GAAG,CAACiB,gBAAJ,WAAwBP,YAAxB,eAAyCL,MAAM,CAACa,YAAhD,SAA+DF,WAA/D;IAEA,IAAMG,cAAc,GAAGd,MAAM,CAACD,SAAP,CAAiBK,KAAjB,GAAyBF,iBAAzB,GAA6C,CAApE;IACA,IAAMa,YAAY,GAAGD,cAAc,GAAGd,MAAM,CAACa,YAAP,CAAoBG,MAA1D;IAEArB,GAAG,CAACM,iBAAJ,CAAsB;MACpBG,KAAK,EAAEU,cADa;MAEpBJ,GAAG,EAAEK;IAFe,CAAtB;EAID;AAjC4B,CAAxB"
40
43
  }
@@ -12,6 +12,7 @@
12
12
  "state",
13
13
  "api",
14
14
  "newSelectionRange",
15
+ "selectWord",
15
16
  "text",
16
17
  "selection",
17
18
  "state1",
@@ -29,5 +30,5 @@
29
30
  "sourcesContent": [
30
31
  "import * as React from 'react';\nimport { ICommand, TextState, TextAreaTextApi } from './';\nimport { selectWord } from '../utils/markdownUtils';\n\nexport const strikethrough: ICommand = {\n name: 'strikethrough',\n keyCommand: 'strikethrough',\n shortcuts: 'ctrl+shift+x',\n buttonProps: { 'aria-label': 'Add strikethrough text', title: 'Add strikethrough text' },\n icon: (\n <svg data-name=\"strikethrough\" width=\"12\" height=\"12\" role=\"img\" viewBox=\"0 0 512 512\">\n <path\n fill=\"currentColor\"\n d=\"M496 288H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h480c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16zm-214.666 16c27.258 12.937 46.524 28.683 46.524 56.243 0 33.108-28.977 53.676-75.621 53.676-32.325 0-76.874-12.08-76.874-44.271V368c0-8.837-7.164-16-16-16H113.75c-8.836 0-16 7.163-16 16v19.204c0 66.845 77.717 101.82 154.487 101.82 88.578 0 162.013-45.438 162.013-134.424 0-19.815-3.618-36.417-10.143-50.6H281.334zm-30.952-96c-32.422-13.505-56.836-28.946-56.836-59.683 0-33.92 30.901-47.406 64.962-47.406 42.647 0 64.962 16.593 64.962 32.985V136c0 8.837 7.164 16 16 16h45.613c8.836 0 16-7.163 16-16v-30.318c0-52.438-71.725-79.875-142.575-79.875-85.203 0-150.726 40.972-150.726 125.646 0 22.71 4.665 41.176 12.777 56.547h129.823z\"\n />\n </svg>\n ),\n execute: (state: TextState, api: TextAreaTextApi) => {\n // Adjust the selection to encompass the whole word if the caret is inside one\n const newSelectionRange = selectWord({ text: state.text, selection: state.selection });\n const state1 = api.setSelectionRange(newSelectionRange);\n // Replaces the current selection with the strikethrough mark up\n const state2 = api.replaceSelection(`~~${state1.selectedText}~~`);\n // Adjust the selection to not contain the ~~\n api.setSelectionRange({\n start: state2.selection.end - 2 - state1.selectedText.length,\n end: state2.selection.end - 2,\n });\n },\n};\n"
31
32
  ],
32
- "mappings": ";;;;;;;;;AAAA;;AAEA;;;;AAEO,IAAMA,aAAuB,GAAG;EACrCC,IAAI,EAAE,eAD+B;EAErCC,UAAU,EAAE,eAFyB;EAGrCC,SAAS,EAAE,cAH0B;EAIrCC,WAAW,EAAE;IAAE,cAAc,wBAAhB;IAA0CC,KAAK,EAAE;EAAjD,CAJwB;EAKrCC,IAAI,eACF;IAAK,aAAU,eAAf;IAA+B,KAAK,EAAC,IAArC;IAA0C,MAAM,EAAC,IAAjD;IAAsD,IAAI,EAAC,KAA3D;IAAiE,OAAO,EAAC,aAAzE;IAAA,uBACE;MACE,IAAI,EAAC,cADP;MAEE,CAAC,EAAC;IAFJ;EADF,EANmC;EAarCC,OAAO,EAAE,iBAACC,KAAD,EAAmBC,GAAnB,EAA4C;IACnD;IACA,IAAMC,iBAAiB,GAAG,+BAAW;MAAEC,IAAI,EAAEH,KAAK,CAACG,IAAd;MAAoBC,SAAS,EAAEJ,KAAK,CAACI;IAArC,CAAX,CAA1B;IACA,IAAMC,MAAM,GAAGJ,GAAG,CAACK,iBAAJ,CAAsBJ,iBAAtB,CAAf,CAHmD,CAInD;;IACA,IAAMK,MAAM,GAAGN,GAAG,CAACO,gBAAJ,aAA0BH,MAAM,CAACI,YAAjC,QAAf,CALmD,CAMnD;;IACAR,GAAG,CAACK,iBAAJ,CAAsB;MACpBI,KAAK,EAAEH,MAAM,CAACH,SAAP,CAAiBO,GAAjB,GAAuB,CAAvB,GAA2BN,MAAM,CAACI,YAAP,CAAoBG,MADlC;MAEpBD,GAAG,EAAEJ,MAAM,CAACH,SAAP,CAAiBO,GAAjB,GAAuB;IAFR,CAAtB;EAID;AAxBoC,CAAhC"
33
+ "mappings": ";;;;;;;;;AAAA;;AAEA;;;;AAEO,IAAMA,aAAuB,GAAG;EACrCC,IAAI,EAAE,eAD+B;EAErCC,UAAU,EAAE,eAFyB;EAGrCC,SAAS,EAAE,cAH0B;EAIrCC,WAAW,EAAE;IAAE,cAAc,wBAAhB;IAA0CC,KAAK,EAAE;EAAjD,CAJwB;EAKrCC,IAAI,eACF;IAAK,aAAU,eAAf;IAA+B,KAAK,EAAC,IAArC;IAA0C,MAAM,EAAC,IAAjD;IAAsD,IAAI,EAAC,KAA3D;IAAiE,OAAO,EAAC,aAAzE;IAAA,uBACE;MACE,IAAI,EAAC,cADP;MAEE,CAAC,EAAC;IAFJ;EADF,EANmC;EAarCC,OAAO,EAAE,iBAACC,KAAD,EAAmBC,GAAnB,EAA4C;IACnD;IACA,IAAMC,iBAAiB,GAAG,IAAAC,yBAAA,EAAW;MAAEC,IAAI,EAAEJ,KAAK,CAACI,IAAd;MAAoBC,SAAS,EAAEL,KAAK,CAACK;IAArC,CAAX,CAA1B;IACA,IAAMC,MAAM,GAAGL,GAAG,CAACM,iBAAJ,CAAsBL,iBAAtB,CAAf,CAHmD,CAInD;;IACA,IAAMM,MAAM,GAAGP,GAAG,CAACQ,gBAAJ,aAA0BH,MAAM,CAACI,YAAjC,QAAf,CALmD,CAMnD;;IACAT,GAAG,CAACM,iBAAJ,CAAsB;MACpBI,KAAK,EAAEH,MAAM,CAACH,SAAP,CAAiBO,GAAjB,GAAuB,CAAvB,GAA2BN,MAAM,CAACI,YAAP,CAAoBG,MADlC;MAEpBD,GAAG,EAAEJ,MAAM,CAACH,SAAP,CAAiBO,GAAjB,GAAuB;IAFR,CAAtB;EAID;AAxBoC,CAAhC"
33
34
  }
@@ -18,6 +18,7 @@
18
18
  "test",
19
19
  "text",
20
20
  "replaceSelection",
21
+ "insertAtLineStart",
21
22
  "textArea"
22
23
  ],
23
24
  "sources": [
@@ -26,5 +27,5 @@
26
27
  "sourcesContent": [
27
28
  "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 buttonProps: { 'aria-label': 'Insert title 1', title: 'Insert title 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"
28
29
  ],
29
- "mappings": ";;;;;;;;;AAAA;;AACA;;;;AAGO,IAAMA,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QADwB;EAE9BC,UAAU,EAAE,QAFkB;EAG9BC,SAAS,EAAE,WAHmB;EAI9BC,WAAW,EAAE;IAAE,cAAc,gBAAhB;IAAkCC,KAAK,EAAE;EAAzC,CAJiB;EAK9BC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAZ;MAAgBC,SAAS,EAAE;IAA3B,CAAZ;IAAA;EAAA,EALwB;EAM9BC,OAAO,EAAE,iBAACC,KAAD,EAAmBC,GAAnB,EAA4C;IACnD,IAAID,KAAK,CAACE,SAAN,CAAgBC,KAAhB,KAA0B,CAA1B,IAA+B,MAAMC,IAAN,CAAWJ,KAAK,CAACK,IAAjB,CAAnC,EAA2D;MACzDJ,GAAG,CAACK,gBAAJ,CAAqB,IAArB;IACD,CAFD,MAEO;MACL,6CAAkB,IAAlB,EAAwBN,KAAK,CAACE,SAAN,CAAgBC,KAAxC,EAA+CF,GAAG,CAACM,QAAnD;IACD;EACF;AAZ6B,CAAzB"
30
+ "mappings": ";;;;;;;;;AAAA;;AACA;;;;AAGO,IAAMA,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QADwB;EAE9BC,UAAU,EAAE,QAFkB;EAG9BC,SAAS,EAAE,WAHmB;EAI9BC,WAAW,EAAE;IAAE,cAAc,gBAAhB;IAAkCC,KAAK,EAAE;EAAzC,CAJiB;EAK9BC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAZ;MAAgBC,SAAS,EAAE;IAA3B,CAAZ;IAAA;EAAA,EALwB;EAM9BC,OAAO,EAAE,iBAACC,KAAD,EAAmBC,GAAnB,EAA4C;IACnD,IAAID,KAAK,CAACE,SAAN,CAAgBC,KAAhB,KAA0B,CAA1B,IAA+B,MAAMC,IAAN,CAAWJ,KAAK,CAACK,IAAjB,CAAnC,EAA2D;MACzDJ,GAAG,CAACK,gBAAJ,CAAqB,IAArB;IACD,CAFD,MAEO;MACL,IAAAC,uCAAA,EAAkB,IAAlB,EAAwBP,KAAK,CAACE,SAAN,CAAgBC,KAAxC,EAA+CF,GAAG,CAACO,QAAnD;IACD;EACF;AAZ6B,CAAzB"
30
31
  }
@@ -18,6 +18,7 @@
18
18
  "test",
19
19
  "text",
20
20
  "replaceSelection",
21
+ "insertAtLineStart",
21
22
  "textArea"
22
23
  ],
23
24
  "sources": [
@@ -26,5 +27,5 @@
26
27
  "sourcesContent": [
27
28
  "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 buttonProps: { 'aria-label': 'Insert title2', title: 'Insert title 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"
28
29
  ],
29
- "mappings": ";;;;;;;;;AAAA;;AACA;;;;AAGO,IAAMA,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QADwB;EAE9BC,UAAU,EAAE,QAFkB;EAG9BC,SAAS,EAAE,WAHmB;EAI9BC,WAAW,EAAE;IAAE,cAAc,eAAhB;IAAiCC,KAAK,EAAE;EAAxC,CAJiB;EAK9BC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAZ;MAAgBC,SAAS,EAAE;IAA3B,CAAZ;IAAA;EAAA,EALwB;EAM9BC,OAAO,EAAE,iBAACC,KAAD,EAAmBC,GAAnB,EAA4C;IACnD,IAAID,KAAK,CAACE,SAAN,CAAgBC,KAAhB,KAA0B,CAA1B,IAA+B,MAAMC,IAAN,CAAWJ,KAAK,CAACK,IAAjB,CAAnC,EAA2D;MACzDJ,GAAG,CAACK,gBAAJ,CAAqB,KAArB;IACD,CAFD,MAEO;MACL,6CAAkB,KAAlB,EAAyBN,KAAK,CAACE,SAAN,CAAgBC,KAAzC,EAAgDF,GAAG,CAACM,QAApD;IACD;EACF;AAZ6B,CAAzB"
30
+ "mappings": ";;;;;;;;;AAAA;;AACA;;;;AAGO,IAAMA,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QADwB;EAE9BC,UAAU,EAAE,QAFkB;EAG9BC,SAAS,EAAE,WAHmB;EAI9BC,WAAW,EAAE;IAAE,cAAc,eAAhB;IAAiCC,KAAK,EAAE;EAAxC,CAJiB;EAK9BC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAZ;MAAgBC,SAAS,EAAE;IAA3B,CAAZ;IAAA;EAAA,EALwB;EAM9BC,OAAO,EAAE,iBAACC,KAAD,EAAmBC,GAAnB,EAA4C;IACnD,IAAID,KAAK,CAACE,SAAN,CAAgBC,KAAhB,KAA0B,CAA1B,IAA+B,MAAMC,IAAN,CAAWJ,KAAK,CAACK,IAAjB,CAAnC,EAA2D;MACzDJ,GAAG,CAACK,gBAAJ,CAAqB,KAArB;IACD,CAFD,MAEO;MACL,IAAAC,uCAAA,EAAkB,KAAlB,EAAyBP,KAAK,CAACE,SAAN,CAAgBC,KAAzC,EAAgDF,GAAG,CAACO,QAApD;IACD;EACF;AAZ6B,CAAzB"
30
31
  }
@@ -18,6 +18,7 @@
18
18
  "test",
19
19
  "text",
20
20
  "replaceSelection",
21
+ "insertAtLineStart",
21
22
  "textArea"
22
23
  ],
23
24
  "sources": [
@@ -26,5 +27,5 @@
26
27
  "sourcesContent": [
27
28
  "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 buttonProps: { 'aria-label': 'Insert title3', title: 'Insert title 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"
28
29
  ],
29
- "mappings": ";;;;;;;;;AAAA;;AACA;;;;AAGO,IAAMA,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QADwB;EAE9BC,UAAU,EAAE,QAFkB;EAG9BC,SAAS,EAAE,WAHmB;EAI9BC,WAAW,EAAE;IAAE,cAAc,eAAhB;IAAiCC,KAAK,EAAE;EAAxC,CAJiB;EAK9BC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAZ;MAAgBC,SAAS,EAAE;IAA3B,CAAZ;IAAA;EAAA,EALwB;EAM9BC,OAAO,EAAE,iBAACC,KAAD,EAAmBC,GAAnB,EAA4C;IACnD,IAAID,KAAK,CAACE,SAAN,CAAgBC,KAAhB,KAA0B,CAA1B,IAA+B,MAAMC,IAAN,CAAWJ,KAAK,CAACK,IAAjB,CAAnC,EAA2D;MACzDJ,GAAG,CAACK,gBAAJ,CAAqB,MAArB;IACD,CAFD,MAEO;MACL,6CAAkB,MAAlB,EAA0BN,KAAK,CAACE,SAAN,CAAgBC,KAA1C,EAAiDF,GAAG,CAACM,QAArD;IACD;EACF;AAZ6B,CAAzB"
30
+ "mappings": ";;;;;;;;;AAAA;;AACA;;;;AAGO,IAAMA,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QADwB;EAE9BC,UAAU,EAAE,QAFkB;EAG9BC,SAAS,EAAE,WAHmB;EAI9BC,WAAW,EAAE;IAAE,cAAc,eAAhB;IAAiCC,KAAK,EAAE;EAAxC,CAJiB;EAK9BC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAZ;MAAgBC,SAAS,EAAE;IAA3B,CAAZ;IAAA;EAAA,EALwB;EAM9BC,OAAO,EAAE,iBAACC,KAAD,EAAmBC,GAAnB,EAA4C;IACnD,IAAID,KAAK,CAACE,SAAN,CAAgBC,KAAhB,KAA0B,CAA1B,IAA+B,MAAMC,IAAN,CAAWJ,KAAK,CAACK,IAAjB,CAAnC,EAA2D;MACzDJ,GAAG,CAACK,gBAAJ,CAAqB,MAArB;IACD,CAFD,MAEO;MACL,IAAAC,uCAAA,EAAkB,MAAlB,EAA0BP,KAAK,CAACE,SAAN,CAAgBC,KAA1C,EAAiDF,GAAG,CAACO,QAArD;IACD;EACF;AAZ6B,CAAzB"
30
31
  }
@@ -18,6 +18,7 @@
18
18
  "test",
19
19
  "text",
20
20
  "replaceSelection",
21
+ "insertAtLineStart",
21
22
  "textArea"
22
23
  ],
23
24
  "sources": [
@@ -26,5 +27,5 @@
26
27
  "sourcesContent": [
27
28
  "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 buttonProps: { 'aria-label': 'Insert title4', title: 'Insert title 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"
28
29
  ],
29
- "mappings": ";;;;;;;;;AAAA;;AACA;;;;AAGO,IAAMA,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QADwB;EAE9BC,UAAU,EAAE,QAFkB;EAG9BC,SAAS,EAAE,WAHmB;EAI9BC,WAAW,EAAE;IAAE,cAAc,eAAhB;IAAiCC,KAAK,EAAE;EAAxC,CAJiB;EAK9BC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAZ;MAAgBC,SAAS,EAAE;IAA3B,CAAZ;IAAA;EAAA,EALwB;EAM9BC,OAAO,EAAE,iBAACC,KAAD,EAAmBC,GAAnB,EAA4C;IACnD,IAAID,KAAK,CAACE,SAAN,CAAgBC,KAAhB,KAA0B,CAA1B,IAA+B,MAAMC,IAAN,CAAWJ,KAAK,CAACK,IAAjB,CAAnC,EAA2D;MACzDJ,GAAG,CAACK,gBAAJ,CAAqB,OAArB;IACD,CAFD,MAEO;MACL,6CAAkB,OAAlB,EAA2BN,KAAK,CAACE,SAAN,CAAgBC,KAA3C,EAAkDF,GAAG,CAACM,QAAtD;IACD;EACF;AAZ6B,CAAzB"
30
+ "mappings": ";;;;;;;;;AAAA;;AACA;;;;AAGO,IAAMA,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QADwB;EAE9BC,UAAU,EAAE,QAFkB;EAG9BC,SAAS,EAAE,WAHmB;EAI9BC,WAAW,EAAE;IAAE,cAAc,eAAhB;IAAiCC,KAAK,EAAE;EAAxC,CAJiB;EAK9BC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAZ;MAAgBC,SAAS,EAAE;IAA3B,CAAZ;IAAA;EAAA,EALwB;EAM9BC,OAAO,EAAE,iBAACC,KAAD,EAAmBC,GAAnB,EAA4C;IACnD,IAAID,KAAK,CAACE,SAAN,CAAgBC,KAAhB,KAA0B,CAA1B,IAA+B,MAAMC,IAAN,CAAWJ,KAAK,CAACK,IAAjB,CAAnC,EAA2D;MACzDJ,GAAG,CAACK,gBAAJ,CAAqB,OAArB;IACD,CAFD,MAEO;MACL,IAAAC,uCAAA,EAAkB,OAAlB,EAA2BP,KAAK,CAACE,SAAN,CAAgBC,KAA3C,EAAkDF,GAAG,CAACO,QAAtD;IACD;EACF;AAZ6B,CAAzB"
30
31
  }
@@ -18,6 +18,7 @@
18
18
  "test",
19
19
  "text",
20
20
  "replaceSelection",
21
+ "insertAtLineStart",
21
22
  "textArea"
22
23
  ],
23
24
  "sources": [
@@ -26,5 +27,5 @@
26
27
  "sourcesContent": [
27
28
  "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 buttonProps: { 'aria-label': 'Insert title5', title: 'Insert title 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"
28
29
  ],
29
- "mappings": ";;;;;;;;;AAAA;;AACA;;;;AAGO,IAAMA,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QADwB;EAE9BC,UAAU,EAAE,QAFkB;EAG9BC,SAAS,EAAE,WAHmB;EAI9BC,WAAW,EAAE;IAAE,cAAc,eAAhB;IAAiCC,KAAK,EAAE;EAAxC,CAJiB;EAK9BC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAZ;MAAgBC,SAAS,EAAE;IAA3B,CAAZ;IAAA;EAAA,EALwB;EAM9BC,OAAO,EAAE,iBAACC,KAAD,EAAmBC,GAAnB,EAA4C;IACnD,IAAID,KAAK,CAACE,SAAN,CAAgBC,KAAhB,KAA0B,CAA1B,IAA+B,MAAMC,IAAN,CAAWJ,KAAK,CAACK,IAAjB,CAAnC,EAA2D;MACzDJ,GAAG,CAACK,gBAAJ,CAAqB,QAArB;IACD,CAFD,MAEO;MACL,6CAAkB,QAAlB,EAA4BN,KAAK,CAACE,SAAN,CAAgBC,KAA5C,EAAmDF,GAAG,CAACM,QAAvD;IACD;EACF;AAZ6B,CAAzB"
30
+ "mappings": ";;;;;;;;;AAAA;;AACA;;;;AAGO,IAAMA,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QADwB;EAE9BC,UAAU,EAAE,QAFkB;EAG9BC,SAAS,EAAE,WAHmB;EAI9BC,WAAW,EAAE;IAAE,cAAc,eAAhB;IAAiCC,KAAK,EAAE;EAAxC,CAJiB;EAK9BC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAZ;MAAgBC,SAAS,EAAE;IAA3B,CAAZ;IAAA;EAAA,EALwB;EAM9BC,OAAO,EAAE,iBAACC,KAAD,EAAmBC,GAAnB,EAA4C;IACnD,IAAID,KAAK,CAACE,SAAN,CAAgBC,KAAhB,KAA0B,CAA1B,IAA+B,MAAMC,IAAN,CAAWJ,KAAK,CAACK,IAAjB,CAAnC,EAA2D;MACzDJ,GAAG,CAACK,gBAAJ,CAAqB,QAArB;IACD,CAFD,MAEO;MACL,IAAAC,uCAAA,EAAkB,QAAlB,EAA4BP,KAAK,CAACE,SAAN,CAAgBC,KAA5C,EAAmDF,GAAG,CAACO,QAAvD;IACD;EACF;AAZ6B,CAAzB"
30
31
  }
@@ -18,6 +18,7 @@
18
18
  "test",
19
19
  "text",
20
20
  "replaceSelection",
21
+ "insertAtLineStart",
21
22
  "textArea"
22
23
  ],
23
24
  "sources": [
@@ -26,5 +27,5 @@
26
27
  "sourcesContent": [
27
28
  "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 buttonProps: { 'aria-label': 'Insert title6', title: 'Insert title 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"
28
29
  ],
29
- "mappings": ";;;;;;;;;AAAA;;AACA;;;;AAGO,IAAMA,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QADwB;EAE9BC,UAAU,EAAE,QAFkB;EAG9BC,SAAS,EAAE,WAHmB;EAI9BC,WAAW,EAAE;IAAE,cAAc,eAAhB;IAAiCC,KAAK,EAAE;EAAxC,CAJiB;EAK9BC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAZ;MAAgBC,SAAS,EAAE;IAA3B,CAAZ;IAAA;EAAA,EALwB;EAM9BC,OAAO,EAAE,iBAACC,KAAD,EAAmBC,GAAnB,EAA4C;IACnD,IAAID,KAAK,CAACE,SAAN,CAAgBC,KAAhB,KAA0B,CAA1B,IAA+B,MAAMC,IAAN,CAAWJ,KAAK,CAACK,IAAjB,CAAnC,EAA2D;MACzDJ,GAAG,CAACK,gBAAJ,CAAqB,SAArB;IACD,CAFD,MAEO;MACL,6CAAkB,SAAlB,EAA6BN,KAAK,CAACE,SAAN,CAAgBC,KAA7C,EAAoDF,GAAG,CAACM,QAAxD;IACD;EACF;AAZ6B,CAAzB"
30
+ "mappings": ";;;;;;;;;AAAA;;AACA;;;;AAGO,IAAMA,MAAgB,GAAG;EAC9BC,IAAI,EAAE,QADwB;EAE9BC,UAAU,EAAE,QAFkB;EAG9BC,SAAS,EAAE,WAHmB;EAI9BC,WAAW,EAAE;IAAE,cAAc,eAAhB;IAAiCC,KAAK,EAAE;EAAxC,CAJiB;EAK9BC,IAAI,eAAE;IAAK,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAZ;MAAgBC,SAAS,EAAE;IAA3B,CAAZ;IAAA;EAAA,EALwB;EAM9BC,OAAO,EAAE,iBAACC,KAAD,EAAmBC,GAAnB,EAA4C;IACnD,IAAID,KAAK,CAACE,SAAN,CAAgBC,KAAhB,KAA0B,CAA1B,IAA+B,MAAMC,IAAN,CAAWJ,KAAK,CAACK,IAAjB,CAAnC,EAA2D;MACzDJ,GAAG,CAACK,gBAAJ,CAAqB,SAArB;IACD,CAFD,MAEO;MACL,IAAAC,uCAAA,EAAkB,SAAlB,EAA6BP,KAAK,CAACE,SAAN,CAAgBC,KAA7C,EAAoDF,GAAG,CAACO,QAAxD;IACD;EACF;AAZ6B,CAAzB"
30
31
  }
@@ -6,6 +6,7 @@
6
6
  "prefixCls",
7
7
  "onChange",
8
8
  "dragRef",
9
+ "useRef",
9
10
  "handleMouseMove",
10
11
  "event",
11
12
  "current",
@@ -18,10 +19,12 @@
18
19
  "handleMouseUp",
19
20
  "undefined",
20
21
  "handleMouseDown",
22
+ "useEffect",
21
23
  "document",
22
24
  "addEventListener",
23
25
  "removeEventListener",
24
- "svg"
26
+ "svg",
27
+ "useMemo"
25
28
  ],
26
29
  "sources": [
27
30
  "../../../src/components/DragBar/index.tsx"
@@ -29,5 +32,5 @@
29
32
  "sourcesContent": [
30
33
  "import React, { useEffect, useMemo, useRef } from 'react';\nimport { IProps } from '../../Editor';\nimport './index.less';\n\nexport interface IDragBarProps extends IProps {\n height: number;\n maxHeight: number;\n minHeight: number;\n onChange: (value: number) => void;\n}\n\nconst DragBar: React.FC<IDragBarProps> = (props) => {\n const { prefixCls, onChange } = props || {};\n const dragRef = useRef<{ height: number; dragY: number }>();\n function handleMouseMove(event: MouseEvent) {\n if (dragRef.current) {\n const newHeight = dragRef.current.height + event.clientY - dragRef.current.dragY;\n if (newHeight >= props.minHeight && newHeight <= props.maxHeight) {\n onChange && onChange(dragRef.current.height + (event.clientY - dragRef.current.dragY));\n }\n }\n }\n function handleMouseUp() {\n dragRef.current = undefined;\n }\n function handleMouseDown(event: React.MouseEvent<HTMLDivElement, MouseEvent>) {\n dragRef.current = {\n height: props.height,\n dragY: event.clientY,\n };\n }\n\n useEffect(() => {\n if (document) {\n document.addEventListener('mousemove', handleMouseMove);\n document.addEventListener('mouseup', handleMouseUp);\n }\n return () => {\n if (document) {\n document.removeEventListener('mousemove', handleMouseMove);\n document.removeEventListener('mouseup', handleMouseUp);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const svg = useMemo(\n () => (\n <svg viewBox=\"0 0 512 512\" height=\"100%\">\n <path\n fill=\"currentColor\"\n d=\"M304 256c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48 48 21.5 48 48zm120-48c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm-336 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48z\"\n />\n </svg>\n ),\n [],\n );\n return (\n <div className={`${prefixCls}-bar`} onMouseDown={handleMouseDown}>\n {svg}\n </div>\n );\n};\n\nexport default DragBar;\n"
31
34
  ],
32
- "mappings": ";;;;;;;;;AAAA;;;;AAWA,IAAMA,OAAgC,GAAG,SAAnCA,OAAmC,CAACC,KAAD,EAAW;EAClD,WAAgCA,KAAK,IAAI,EAAzC;EAAA,IAAQC,SAAR,QAAQA,SAAR;EAAA,IAAmBC,QAAnB,QAAmBA,QAAnB;;EACA,IAAMC,OAAO,GAAG,oBAAhB;;EACA,SAASC,eAAT,CAAyBC,KAAzB,EAA4C;IAC1C,IAAIF,OAAO,CAACG,OAAZ,EAAqB;MACnB,IAAMC,SAAS,GAAGJ,OAAO,CAACG,OAAR,CAAgBE,MAAhB,GAAyBH,KAAK,CAACI,OAA/B,GAAyCN,OAAO,CAACG,OAAR,CAAgBI,KAA3E;;MACA,IAAIH,SAAS,IAAIP,KAAK,CAACW,SAAnB,IAAgCJ,SAAS,IAAIP,KAAK,CAACY,SAAvD,EAAkE;QAChEV,QAAQ,IAAIA,QAAQ,CAACC,OAAO,CAACG,OAAR,CAAgBE,MAAhB,IAA0BH,KAAK,CAACI,OAAN,GAAgBN,OAAO,CAACG,OAAR,CAAgBI,KAA1D,CAAD,CAApB;MACD;IACF;EACF;;EACD,SAASG,aAAT,GAAyB;IACvBV,OAAO,CAACG,OAAR,GAAkBQ,SAAlB;EACD;;EACD,SAASC,eAAT,CAAyBV,KAAzB,EAA8E;IAC5EF,OAAO,CAACG,OAAR,GAAkB;MAChBE,MAAM,EAAER,KAAK,CAACQ,MADE;MAEhBE,KAAK,EAAEL,KAAK,CAACI;IAFG,CAAlB;EAID;;EAED,sBAAU,YAAM;IACd,IAAIO,QAAJ,EAAc;MACZA,QAAQ,CAACC,gBAAT,CAA0B,WAA1B,EAAuCb,eAAvC;MACAY,QAAQ,CAACC,gBAAT,CAA0B,SAA1B,EAAqCJ,aAArC;IACD;;IACD,OAAO,YAAM;MACX,IAAIG,QAAJ,EAAc;QACZA,QAAQ,CAACE,mBAAT,CAA6B,WAA7B,EAA0Cd,eAA1C;QACAY,QAAQ,CAACE,mBAAT,CAA6B,SAA7B,EAAwCL,aAAxC;MACD;IACF,CALD,CALc,CAWd;EACD,CAZD,EAYG,EAZH;EAaA,IAAMM,GAAG,GAAG,oBACV;IAAA,oBACE;MAAK,OAAO,EAAC,aAAb;MAA2B,MAAM,EAAC,MAAlC;MAAA,uBACE;QACE,IAAI,EAAC,cADP;QAEE,CAAC,EAAC;MAFJ;IADF,EADF;EAAA,CADU,EASV,EATU,CAAZ;EAWA,oBACE;IAAK,SAAS,YAAKlB,SAAL,SAAd;IAAoC,WAAW,EAAEc,eAAjD;IAAA,UACGI;EADH,EADF;AAKD,CAlDD;;eAoDepB,O"
35
+ "mappings": ";;;;;;;;;AAAA;;;;AAWA,IAAMA,OAAgC,GAAG,SAAnCA,OAAmC,CAACC,KAAD,EAAW;EAClD,WAAgCA,KAAK,IAAI,EAAzC;EAAA,IAAQC,SAAR,QAAQA,SAAR;EAAA,IAAmBC,QAAnB,QAAmBA,QAAnB;;EACA,IAAMC,OAAO,GAAG,IAAAC,aAAA,GAAhB;;EACA,SAASC,eAAT,CAAyBC,KAAzB,EAA4C;IAC1C,IAAIH,OAAO,CAACI,OAAZ,EAAqB;MACnB,IAAMC,SAAS,GAAGL,OAAO,CAACI,OAAR,CAAgBE,MAAhB,GAAyBH,KAAK,CAACI,OAA/B,GAAyCP,OAAO,CAACI,OAAR,CAAgBI,KAA3E;;MACA,IAAIH,SAAS,IAAIR,KAAK,CAACY,SAAnB,IAAgCJ,SAAS,IAAIR,KAAK,CAACa,SAAvD,EAAkE;QAChEX,QAAQ,IAAIA,QAAQ,CAACC,OAAO,CAACI,OAAR,CAAgBE,MAAhB,IAA0BH,KAAK,CAACI,OAAN,GAAgBP,OAAO,CAACI,OAAR,CAAgBI,KAA1D,CAAD,CAApB;MACD;IACF;EACF;;EACD,SAASG,aAAT,GAAyB;IACvBX,OAAO,CAACI,OAAR,GAAkBQ,SAAlB;EACD;;EACD,SAASC,eAAT,CAAyBV,KAAzB,EAA8E;IAC5EH,OAAO,CAACI,OAAR,GAAkB;MAChBE,MAAM,EAAET,KAAK,CAACS,MADE;MAEhBE,KAAK,EAAEL,KAAK,CAACI;IAFG,CAAlB;EAID;;EAED,IAAAO,gBAAA,EAAU,YAAM;IACd,IAAIC,QAAJ,EAAc;MACZA,QAAQ,CAACC,gBAAT,CAA0B,WAA1B,EAAuCd,eAAvC;MACAa,QAAQ,CAACC,gBAAT,CAA0B,SAA1B,EAAqCL,aAArC;IACD;;IACD,OAAO,YAAM;MACX,IAAII,QAAJ,EAAc;QACZA,QAAQ,CAACE,mBAAT,CAA6B,WAA7B,EAA0Cf,eAA1C;QACAa,QAAQ,CAACE,mBAAT,CAA6B,SAA7B,EAAwCN,aAAxC;MACD;IACF,CALD,CALc,CAWd;EACD,CAZD,EAYG,EAZH;EAaA,IAAMO,GAAG,GAAG,IAAAC,cAAA,EACV;IAAA,oBACE;MAAK,OAAO,EAAC,aAAb;MAA2B,MAAM,EAAC,MAAlC;MAAA,uBACE;QACE,IAAI,EAAC,cADP;QAEE,CAAC,EAAC;MAFJ;IADF,EADF;EAAA,CADU,EASV,EATU,CAAZ;EAWA,oBACE;IAAK,SAAS,YAAKrB,SAAL,SAAd;IAAoC,WAAW,EAAEe,eAAjD;IAAA,UACGK;EADH,EADF;AAKD,CAlDD;;eAoDetB,O"
33
36
  }
@@ -4,12 +4,14 @@
4
4
  "Markdown",
5
5
  "props",
6
6
  "prefixCls",
7
+ "useContext",
7
8
  "EditorContext",
8
9
  "markdown",
9
10
  "dispatch",
10
11
  "preRef",
11
12
  "React",
12
13
  "createRef",
14
+ "useEffect",
13
15
  "current",
14
16
  "textareaPre",
15
17
  "html2Escape",
@@ -17,6 +19,8 @@
17
19
  "replace",
18
20
  "str",
19
21
  "c",
22
+ "useMemo",
23
+ "rehype",
20
24
  "data",
21
25
  "fragment",
22
26
  "use",
@@ -35,5 +39,5 @@
35
39
  "sourcesContent": [
36
40
  "import React, { useContext, useEffect, useMemo } from 'react';\nimport { rehype } from 'rehype';\nimport rehypePrism from 'rehype-prism-plus';\nimport { IProps } from '../../Editor';\nimport { EditorContext } from '../../Context';\n\nexport interface MarkdownProps extends IProps, React.HTMLAttributes<HTMLPreElement> {}\n\nexport default function Markdown(props: MarkdownProps) {\n const { prefixCls } = props;\n const { markdown = '', dispatch } = useContext(EditorContext);\n const preRef = React.createRef<HTMLPreElement>();\n useEffect(() => {\n if (preRef.current && dispatch) {\n dispatch({ textareaPre: preRef.current });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n function html2Escape(sHtml: string) {\n return sHtml\n .replace(/```(tsx?|jsx?|html|xml)(.*)\\s+([\\s\\S]*?)(\\s.+)?```/g, (str: string) => {\n return str.replace(\n /[<&\"]/g,\n (c: string) => (({ '<': '&lt;', '>': '&gt;', '&': '&amp;', '\"': '&quot;' } as Record<string, string>)[c]),\n );\n })\n .replace(\n /[<&\"]/g,\n (c: string) => (({ '<': '&lt;', '>': '&gt;', '&': '&amp;', '\"': '&quot;' } as Record<string, string>)[c]),\n );\n }\n\n return useMemo(() => {\n if (!markdown) {\n return <pre children={markdown || ''} ref={preRef} className={`${prefixCls}-text-pre wmde-markdown-color`} />;\n }\n const str = rehype()\n .data('settings', { fragment: true })\n .use(rehypePrism, { ignoreMissing: true })\n .processSync(\n `<pre class=\"language-markdown ${prefixCls}-text-pre wmde-markdown-color\"><code class=\"language-markdown\">${html2Escape(\n markdown,\n )}\\n</code></pre>`,\n );\n return React.createElement('div', {\n className: 'wmde-markdown-color',\n dangerouslySetInnerHTML: { __html: str.value as string },\n });\n }, [markdown, preRef, prefixCls]);\n}\n"
37
41
  ],
38
- "mappings": ";;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;;;AAIe,SAASA,QAAT,CAAkBC,KAAlB,EAAwC;EACrD,IAAQC,SAAR,GAAsBD,KAAtB,CAAQC,SAAR;;EACA,kBAAoC,uBAAWC,sBAAX,CAApC;EAAA,uCAAQC,QAAR;EAAA,IAAQA,QAAR,qCAAmB,EAAnB;EAAA,IAAuBC,QAAvB,eAAuBA,QAAvB;;EACA,IAAMC,MAAM,gBAAGC,eAAMC,SAAN,EAAf;;EACA,sBAAU,YAAM;IACd,IAAIF,MAAM,CAACG,OAAP,IAAkBJ,QAAtB,EAAgC;MAC9BA,QAAQ,CAAC;QAAEK,WAAW,EAAEJ,MAAM,CAACG;MAAtB,CAAD,CAAR;IACD,CAHa,CAId;;EACD,CALD,EAKG,EALH;;EAMA,SAASE,WAAT,CAAqBC,KAArB,EAAoC;IAClC,OAAOA,KAAK,CACTC,OADI,CACI,qDADJ,EAC2D,UAACC,GAAD,EAAiB;MAC/E,OAAOA,GAAG,CAACD,OAAJ,CACL,QADK,EAEL,UAACE,CAAD;QAAA,OAAiB;UAAE,KAAK,MAAP;UAAe,KAAK,MAApB;UAA4B,KAAK,OAAjC;UAA0C,KAAK;QAA/C,CAAD,CAAsFA,CAAtF,CAAhB;MAAA,CAFK,CAAP;IAID,CANI,EAOJF,OAPI,CAQH,QARG,EASH,UAACE,CAAD;MAAA,OAAiB;QAAE,KAAK,MAAP;QAAe,KAAK,MAApB;QAA4B,KAAK,OAAjC;QAA0C,KAAK;MAA/C,CAAD,CAAsFA,CAAtF,CAAhB;IAAA,CATG,CAAP;EAWD;;EAED,OAAO,oBAAQ,YAAM;IACnB,IAAI,CAACX,QAAL,EAAe;MACb,oBAAO;QAAK,QAAQ,EAAEA,QAAQ,IAAI,EAA3B;QAA+B,GAAG,EAAEE,MAApC;QAA4C,SAAS,YAAKJ,SAAL;MAArD,EAAP;IACD;;IACD,IAAMY,GAAG,GAAG,sBACTE,IADS,CACJ,UADI,EACQ;MAAEC,QAAQ,EAAE;IAAZ,CADR,EAETC,GAFS,CAELC,wBAFK,EAEQ;MAAEC,aAAa,EAAE;IAAjB,CAFR,EAGTC,WAHS,0CAIyBnB,SAJzB,+EAIoGS,WAAW,CACrHP,QADqH,CAJ/G,qBAAZ;IAQA,oBAAOG,eAAMe,aAAN,CAAoB,KAApB,EAA2B;MAChCC,SAAS,EAAE,qBADqB;MAEhCC,uBAAuB,EAAE;QAAEC,MAAM,EAAEX,GAAG,CAACY;MAAd;IAFO,CAA3B,CAAP;EAID,CAhBM,EAgBJ,CAACtB,QAAD,EAAWE,MAAX,EAAmBJ,SAAnB,CAhBI,CAAP;AAiBD"
42
+ "mappings": ";;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;;;AAIe,SAASA,QAAT,CAAkBC,KAAlB,EAAwC;EACrD,IAAQC,SAAR,GAAsBD,KAAtB,CAAQC,SAAR;;EACA,kBAAoC,IAAAC,iBAAA,EAAWC,sBAAX,CAApC;EAAA,uCAAQC,QAAR;EAAA,IAAQA,QAAR,qCAAmB,EAAnB;EAAA,IAAuBC,QAAvB,eAAuBA,QAAvB;;EACA,IAAMC,MAAM,gBAAGC,cAAA,CAAMC,SAAN,EAAf;;EACA,IAAAC,gBAAA,EAAU,YAAM;IACd,IAAIH,MAAM,CAACI,OAAP,IAAkBL,QAAtB,EAAgC;MAC9BA,QAAQ,CAAC;QAAEM,WAAW,EAAEL,MAAM,CAACI;MAAtB,CAAD,CAAR;IACD,CAHa,CAId;;EACD,CALD,EAKG,EALH;;EAMA,SAASE,WAAT,CAAqBC,KAArB,EAAoC;IAClC,OAAOA,KAAK,CACTC,OADI,CACI,qDADJ,EAC2D,UAACC,GAAD,EAAiB;MAC/E,OAAOA,GAAG,CAACD,OAAJ,CACL,QADK,EAEL,UAACE,CAAD;QAAA,OAAiB;UAAE,KAAK,MAAP;UAAe,KAAK,MAApB;UAA4B,KAAK,OAAjC;UAA0C,KAAK;QAA/C,CAAD,CAAsFA,CAAtF,CAAhB;MAAA,CAFK,CAAP;IAID,CANI,EAOJF,OAPI,CAQH,QARG,EASH,UAACE,CAAD;MAAA,OAAiB;QAAE,KAAK,MAAP;QAAe,KAAK,MAApB;QAA4B,KAAK,OAAjC;QAA0C,KAAK;MAA/C,CAAD,CAAsFA,CAAtF,CAAhB;IAAA,CATG,CAAP;EAWD;;EAED,OAAO,IAAAC,cAAA,EAAQ,YAAM;IACnB,IAAI,CAACb,QAAL,EAAe;MACb,oBAAO;QAAK,QAAQ,EAAEA,QAAQ,IAAI,EAA3B;QAA+B,GAAG,EAAEE,MAApC;QAA4C,SAAS,YAAKL,SAAL;MAArD,EAAP;IACD;;IACD,IAAMc,GAAG,GAAG,IAAAG,cAAA,IACTC,IADS,CACJ,UADI,EACQ;MAAEC,QAAQ,EAAE;IAAZ,CADR,EAETC,GAFS,CAELC,wBAFK,EAEQ;MAAEC,aAAa,EAAE;IAAjB,CAFR,EAGTC,WAHS,0CAIyBvB,SAJzB,+EAIoGW,WAAW,CACrHR,QADqH,CAJ/G,qBAAZ;IAQA,oBAAOG,cAAA,CAAMkB,aAAN,CAAoB,KAApB,EAA2B;MAChCC,SAAS,EAAE,qBADqB;MAEhCC,uBAAuB,EAAE;QAAEC,MAAM,EAAEb,GAAG,CAACc;MAAd;IAFO,CAA3B,CAAP;EAID,CAhBM,EAgBJ,CAACzB,QAAD,EAAWE,MAAX,EAAmBL,SAAnB,CAhBI,CAAP;AAiBD"
39
43
  }
@@ -6,6 +6,7 @@
6
6
  "prefixCls",
7
7
  "onChange",
8
8
  "other",
9
+ "useContext",
9
10
  "EditorContext",
10
11
  "markdown",
11
12
  "commands",
@@ -21,12 +22,15 @@
21
22
  "useRef",
22
23
  "executeRef",
23
24
  "statesRef",
25
+ "useEffect",
24
26
  "current",
25
27
  "commandOrchestrator",
26
28
  "TextAreaCommandOrchestrator",
27
29
  "textarea",
28
30
  "onKeyDown",
29
31
  "e",
32
+ "handleKeyDown",
33
+ "shortcuts",
30
34
  "addEventListener",
31
35
  "removeEventListener",
32
36
  "className",
@@ -39,5 +43,5 @@
39
43
  "sourcesContent": [
40
44
  "import React, { useContext, useEffect } from 'react';\nimport { IProps } from '../../Editor';\nimport { EditorContext, ExecuteCommandState } from '../../Context';\nimport { TextAreaCommandOrchestrator } from '../../commands';\nimport handleKeyDown from './handleKeyDown';\nimport shortcuts from './shortcuts';\nimport './index.less';\n\nexport interface TextAreaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'value'>, IProps {}\n\nexport default function Textarea(props: TextAreaProps) {\n const { prefixCls, onChange, ...other } = props;\n const {\n markdown,\n commands,\n fullscreen,\n preview,\n highlightEnable,\n extraCommands,\n tabSize,\n defaultTabEnable,\n dispatch,\n } = useContext(EditorContext);\n const textRef = React.useRef<HTMLTextAreaElement>(null);\n const executeRef = React.useRef<TextAreaCommandOrchestrator>();\n const statesRef = React.useRef<ExecuteCommandState>({ fullscreen, preview });\n\n useEffect(() => {\n statesRef.current = { fullscreen, preview, highlightEnable };\n }, [fullscreen, preview, highlightEnable]);\n\n useEffect(() => {\n if (textRef.current && dispatch) {\n const commandOrchestrator = new TextAreaCommandOrchestrator(textRef.current);\n executeRef.current = commandOrchestrator;\n dispatch({ textarea: textRef.current, commandOrchestrator });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const onKeyDown = (e: KeyboardEvent | React.KeyboardEvent<HTMLTextAreaElement>) => {\n handleKeyDown(e, tabSize, defaultTabEnable);\n shortcuts(e, [...(commands || []), ...(extraCommands || [])], executeRef.current, dispatch, statesRef.current);\n };\n useEffect(() => {\n if (textRef.current) {\n textRef.current.addEventListener('keydown', onKeyDown);\n }\n return () => {\n if (textRef.current) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n textRef.current.removeEventListener('keydown', onKeyDown);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <textarea\n autoComplete=\"off\"\n autoCorrect=\"off\"\n autoCapitalize=\"off\"\n spellCheck={false}\n {...other}\n ref={textRef}\n className={`${prefixCls}-text-input ${other.className ? other.className : ''}`}\n value={markdown}\n onChange={(e) => {\n dispatch && dispatch({ markdown: e.target.value });\n onChange && onChange(e);\n }}\n />\n );\n}\n"
41
45
  ],
42
- "mappings": "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"
46
+ "mappings": "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"
43
47
  }
@@ -40,6 +40,7 @@
40
40
  "indexOf",
41
41
  "end",
42
42
  "modifiedTextObj",
43
+ "insertBeforeEachLine",
43
44
  "shiftKey",
44
45
  "text",
45
46
  "map",
@@ -48,6 +49,7 @@
48
49
  "replaceSelection",
49
50
  "startTabSize",
50
51
  "endTabSize",
52
+ "insertTextAtPosition",
51
53
  "test",
52
54
  "startStr",
53
55
  "startsWith",
@@ -59,5 +61,5 @@
59
61
  "sourcesContent": [
60
62
  "import { insertTextAtPosition } from '../../utils/InsertTextAtPosition';\nimport { TextAreaTextApi } from '../../commands';\nimport { insertBeforeEachLine } from '../../commands/list';\n\n/**\n * - `13` - `Enter`\n * - `9` - `Tab`\n */\nfunction stopPropagation(e: KeyboardEvent | React.KeyboardEvent<HTMLTextAreaElement>) {\n e.stopPropagation();\n e.preventDefault();\n}\n\nexport default function handleKeyDown(\n e: KeyboardEvent | React.KeyboardEvent<HTMLTextAreaElement>,\n tabSize: number = 2,\n defaultTabEnable: boolean = false,\n) {\n const target = e.target as HTMLTextAreaElement;\n const starVal = target.value.substr(0, target.selectionStart);\n const valArr = starVal.split('\\n');\n const currentLineStr = valArr[valArr.length - 1];\n const textArea = new TextAreaTextApi(target);\n\n /**\n * `9` - `Tab`\n */\n if (!defaultTabEnable && e.code && e.code.toLowerCase() === 'tab') {\n stopPropagation(e);\n const space = new Array(tabSize + 1).join(' ');\n if (target.selectionStart !== target.selectionEnd) {\n const _star = target.value.substring(0, target.selectionStart).split('\\n');\n const _end = target.value.substring(0, target.selectionEnd).split('\\n');\n const modifiedTextLine: string[] = [];\n _end.forEach((item, idx) => {\n if (item !== _star[idx]) {\n modifiedTextLine.push(item);\n }\n });\n const modifiedText = modifiedTextLine.join('\\n');\n const oldSelectText = target.value.substring(target.selectionStart, target.selectionEnd);\n const newStarNum = target.value.substring(0, target.selectionStart).length;\n\n textArea.setSelectionRange({\n start: target.value.indexOf(modifiedText),\n end: target.selectionEnd,\n });\n\n const modifiedTextObj = insertBeforeEachLine(modifiedText, e.shiftKey ? '' : space);\n\n let text = modifiedTextObj.modifiedText;\n if (e.shiftKey) {\n text = text\n .split('\\n')\n .map((item) => item.replace(new RegExp(`^${space}`), ''))\n .join('\\n');\n }\n textArea.replaceSelection(text);\n\n let startTabSize = e.shiftKey ? -tabSize : tabSize;\n let endTabSize = e.shiftKey ? -modifiedTextLine.length * tabSize : modifiedTextLine.length * tabSize;\n\n textArea.setSelectionRange({\n start: newStarNum + startTabSize,\n end: newStarNum + oldSelectText.length + endTabSize,\n });\n } else {\n return insertTextAtPosition(target, space);\n }\n } else if (\n e.code &&\n e.code.toLowerCase() === 'enter' &&\n (/^(-|\\*)\\s/.test(currentLineStr) || /^\\d+.\\s/.test(currentLineStr))\n ) {\n /**\n * `13` - `Enter`\n */\n stopPropagation(e);\n let startStr = '\\n- ';\n\n if (currentLineStr.startsWith('*')) {\n startStr = '\\n* ';\n }\n\n if (currentLineStr.startsWith('- [ ]')) {\n startStr = '\\n- [ ] ';\n } else if (currentLineStr.startsWith('- [X]')) {\n startStr = '\\n- [X] ';\n }\n\n if (/^\\d+.\\s/.test(currentLineStr)) {\n startStr = `\\n${parseInt(currentLineStr) + 1}. `;\n }\n return insertTextAtPosition(target, startStr);\n }\n}\n"
61
63
  ],
62
- "mappings": "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"
64
+ "mappings": "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"
63
65
  }
@@ -8,6 +8,7 @@
8
8
  "onScroll",
9
9
  "renderTextarea",
10
10
  "otherProps",
11
+ "useContext",
11
12
  "EditorContext",
12
13
  "markdown",
13
14
  "scrollTop",
@@ -21,6 +22,7 @@
21
22
  "executeRef",
22
23
  "warp",
23
24
  "createRef",
25
+ "useEffect",
24
26
  "state",
25
27
  "current",
26
28
  "textareaWarp",
@@ -40,7 +42,6 @@
40
42
  "overflow",
41
43
  "onChange",
42
44
  "shortcuts",
43
- "useContext",
44
45
  "ref"
45
46
  ],
46
47
  "sources": [
@@ -49,5 +50,5 @@
49
50
  "sourcesContent": [
50
51
  "import React, { useEffect, Fragment, useContext } from 'react';\nimport { EditorContext, ContextStore, ExecuteCommandState } from '../../Context';\nimport shortcuts from './shortcuts';\nimport Markdown from './Markdown';\nimport Textarea, { TextAreaProps } from './Textarea';\nimport { IProps } from '../../Editor';\nimport { TextAreaCommandOrchestrator, ICommand } from '../../commands';\nimport './index.less';\n\ntype RenderTextareaHandle = {\n dispatch: ContextStore['dispatch'];\n onChange?: TextAreaProps['onChange'];\n useContext?: {\n commands: ContextStore['commands'];\n extraCommands: ContextStore['extraCommands'];\n commandOrchestrator?: TextAreaCommandOrchestrator;\n };\n shortcuts?: (\n e: KeyboardEvent | React.KeyboardEvent<HTMLTextAreaElement>,\n commands: ICommand[],\n commandOrchestrator?: TextAreaCommandOrchestrator,\n dispatch?: React.Dispatch<ContextStore>,\n state?: ExecuteCommandState,\n ) => void;\n};\n\nexport interface ITextAreaProps\n extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'value' | 'onScroll'>,\n IProps {\n value?: string;\n onScroll?: (e: React.UIEvent<HTMLDivElement>) => void;\n renderTextarea?: (\n props: React.TextareaHTMLAttributes<HTMLTextAreaElement> | React.HTMLAttributes<HTMLDivElement>,\n opts: RenderTextareaHandle,\n ) => JSX.Element;\n}\n\nexport type TextAreaRef = {\n text?: HTMLTextAreaElement;\n warp?: HTMLDivElement;\n};\n\nexport default function TextArea(props: ITextAreaProps) {\n const { prefixCls, className, onScroll, renderTextarea, ...otherProps } = props || {};\n const { markdown, scrollTop, commands, highlightEnable, extraCommands, dispatch } = useContext(EditorContext);\n const textRef = React.useRef<HTMLTextAreaElement>(null);\n const executeRef = React.useRef<TextAreaCommandOrchestrator>();\n const warp = React.createRef<HTMLDivElement>();\n useEffect(() => {\n const state: ContextStore = {};\n if (warp.current) {\n state.textareaWarp = warp.current || undefined;\n warp.current.scrollTop = scrollTop || 0;\n }\n if (dispatch) {\n dispatch({ ...state });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (textRef.current && dispatch) {\n const commandOrchestrator = new TextAreaCommandOrchestrator(textRef.current);\n executeRef.current = commandOrchestrator;\n dispatch({ textarea: textRef.current, commandOrchestrator });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // @ts-ignore\n const textStyle: React.CSSProperties = highlightEnable ? {} : { '-webkit-text-fill-color': 'inherit' };\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"
51
52
  ],
52
- "mappings": "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"
53
+ "mappings": "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"
53
54
  }
@@ -7,8 +7,10 @@
7
7
  "groupName",
8
8
  "commands",
9
9
  "children",
10
+ "useContext",
10
11
  "EditorContext",
11
12
  "barPopup",
13
+ "useMemo",
12
14
  "e",
13
15
  "stopPropagation",
14
16
  "Array",
@@ -20,5 +22,5 @@
20
22
  "sourcesContent": [
21
23
  "import React, { useContext, useMemo } from 'react';\nimport './Child.less';\nimport Toolbar, { IToolbarProps } from './';\nimport { EditorContext } from '../../Context';\n\nexport type ChildProps = IToolbarProps & {\n children?: JSX.Element;\n groupName?: string;\n};\n\nexport default function Child(props: ChildProps) {\n const { prefixCls, groupName, commands, children } = props || {};\n const { barPopup = {} } = useContext(EditorContext);\n return useMemo(\n () => (\n <div\n className={`${prefixCls}-toolbar-child ${groupName && barPopup[groupName] ? 'active' : ''}`}\n onClick={(e) => e.stopPropagation()}\n >\n {Array.isArray(commands) ? <Toolbar commands={commands} {...props} height=\"\" isChild /> : children}\n </div>\n ),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [commands, barPopup, groupName, prefixCls],\n );\n}\n"
22
24
  ],
23
- "mappings": ";;;;;;;;;;;;;AAAA;;AAEA;;AACA;;;;AAOe,SAASA,KAAT,CAAeC,KAAf,EAAkC;EAC/C,WAAqDA,KAAK,IAAI,EAA9D;EAAA,IAAQC,SAAR,QAAQA,SAAR;EAAA,IAAmBC,SAAnB,QAAmBA,SAAnB;EAAA,IAA8BC,QAA9B,QAA8BA,QAA9B;EAAA,IAAwCC,QAAxC,QAAwCA,QAAxC;;EACA,kBAA0B,uBAAWC,sBAAX,CAA1B;EAAA,uCAAQC,QAAR;EAAA,IAAQA,QAAR,qCAAmB,EAAnB;;EACA,OAAO,oBACL;IAAA,oBACE;MACE,SAAS,YAAKL,SAAL,4BAAgCC,SAAS,IAAII,QAAQ,CAACJ,SAAD,CAArB,GAAmC,QAAnC,GAA8C,EAA9E,CADX;MAEE,OAAO,EAAE,iBAACK,CAAD;QAAA,OAAOA,CAAC,CAACC,eAAF,EAAP;MAAA,CAFX;MAAA,UAIGC,KAAK,CAACC,OAAN,CAAcP,QAAd,iBAA0B,qBAAC,SAAD;QAAS,QAAQ,EAAEA;MAAnB,GAAiCH,KAAjC;QAAwC,MAAM,EAAC,EAA/C;QAAkD,OAAO;MAAzD,GAA1B,GAAyFI;IAJ5F,EADF;EAAA,CADK,EASL;EACA,CAACD,QAAD,EAAWG,QAAX,EAAqBJ,SAArB,EAAgCD,SAAhC,CAVK,CAAP;AAYD"
25
+ "mappings": ";;;;;;;;;;;;;AAAA;;AAEA;;AACA;;;;AAOe,SAASA,KAAT,CAAeC,KAAf,EAAkC;EAC/C,WAAqDA,KAAK,IAAI,EAA9D;EAAA,IAAQC,SAAR,QAAQA,SAAR;EAAA,IAAmBC,SAAnB,QAAmBA,SAAnB;EAAA,IAA8BC,QAA9B,QAA8BA,QAA9B;EAAA,IAAwCC,QAAxC,QAAwCA,QAAxC;;EACA,kBAA0B,IAAAC,iBAAA,EAAWC,sBAAX,CAA1B;EAAA,uCAAQC,QAAR;EAAA,IAAQA,QAAR,qCAAmB,EAAnB;;EACA,OAAO,IAAAC,cAAA,EACL;IAAA,oBACE;MACE,SAAS,YAAKP,SAAL,4BAAgCC,SAAS,IAAIK,QAAQ,CAACL,SAAD,CAArB,GAAmC,QAAnC,GAA8C,EAA9E,CADX;MAEE,OAAO,EAAE,iBAACO,CAAD;QAAA,OAAOA,CAAC,CAACC,eAAF,EAAP;MAAA,CAFX;MAAA,UAIGC,KAAK,CAACC,OAAN,CAAcT,QAAd,iBAA0B,qBAAC,SAAD;QAAS,QAAQ,EAAEA;MAAnB,GAAiCH,KAAjC;QAAwC,MAAM,EAAC,EAA/C;QAAkD,OAAO;MAAzD,GAA1B,GAAyFI;IAJ5F,EADF;EAAA,CADK,EASL;EACA,CAACD,QAAD,EAAWI,QAAX,EAAqBL,SAArB,EAAgCD,SAAhC,CAVK,CAAP;AAYD"
24
26
  }