@uiw/react-md-editor 3.12.3 → 3.14.1

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 (49) hide show
  1. package/README.md +9 -7
  2. package/dist/mdeditor.css +5 -10
  3. package/dist/mdeditor.js +1316 -1617
  4. package/dist/mdeditor.min.css +1 -1
  5. package/dist/mdeditor.min.js +1 -1
  6. package/dist/mdeditor.min.js.LICENSE.txt +0 -9
  7. package/esm/Editor.d.ts +8 -2
  8. package/esm/Editor.js +12 -5
  9. package/esm/Editor.js.map +4 -2
  10. package/esm/components/Toolbar/index.css +5 -0
  11. package/esm/components/Toolbar/index.d.ts +1 -0
  12. package/esm/components/Toolbar/index.js +3 -1
  13. package/esm/components/Toolbar/index.js.map +5 -3
  14. package/esm/components/Toolbar/index.less +5 -0
  15. package/lib/Context.js.map +1 -1
  16. package/lib/Editor.d.ts +8 -2
  17. package/lib/Editor.js +14 -6
  18. package/lib/Editor.js.map +11 -2
  19. package/lib/commands/bold.js.map +2 -1
  20. package/lib/commands/code.js.map +4 -1
  21. package/lib/commands/comment.js.map +2 -1
  22. package/lib/commands/image.js.map +2 -1
  23. package/lib/commands/index.js.map +2 -1
  24. package/lib/commands/italic.js.map +2 -1
  25. package/lib/commands/link.js.map +2 -1
  26. package/lib/commands/list.js.map +4 -1
  27. package/lib/commands/quote.js.map +4 -1
  28. package/lib/commands/strikeThrough.js.map +2 -1
  29. package/lib/commands/title1.js.map +2 -1
  30. package/lib/commands/title2.js.map +2 -1
  31. package/lib/commands/title3.js.map +2 -1
  32. package/lib/commands/title4.js.map +2 -1
  33. package/lib/commands/title5.js.map +2 -1
  34. package/lib/commands/title6.js.map +2 -1
  35. package/lib/components/DragBar/index.js.map +5 -2
  36. package/lib/components/TextArea/Markdown.js.map +5 -1
  37. package/lib/components/TextArea/Textarea.js.map +5 -1
  38. package/lib/components/TextArea/handleKeyDown.js.map +3 -1
  39. package/lib/components/TextArea/index.js.map +3 -2
  40. package/lib/components/Toolbar/Child.js.map +3 -1
  41. package/lib/components/Toolbar/index.d.ts +1 -0
  42. package/lib/components/Toolbar/index.js +3 -1
  43. package/lib/components/Toolbar/index.js.map +8 -3
  44. package/lib/components/Toolbar/index.less +5 -0
  45. package/markdown-editor.css +5 -0
  46. package/package.json +2 -2
  47. package/src/Editor.tsx +17 -5
  48. package/src/components/Toolbar/index.less +5 -0
  49. package/src/components/Toolbar/index.tsx +4 -2
@@ -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 bold: ICommand = {\n name: 'bold',\n keyCommand: 'bold',\n shortcuts: 'ctrlcmd+b',\n buttonProps: { 'aria-label': 'Add bold text', title: 'Add bold text' },\n icon: (\n <svg role=\"img\" width=\"12\" height=\"12\" viewBox=\"0 0 384 512\">\n <path\n fill=\"currentColor\"\n d=\"M304.793 243.891c33.639-18.537 53.657-54.16 53.657-95.693 0-48.236-26.25-87.626-68.626-104.179C265.138 34.01 240.849 32 209.661 32H24c-8.837 0-16 7.163-16 16v33.049c0 8.837 7.163 16 16 16h33.113v318.53H24c-8.837 0-16 7.163-16 16V464c0 8.837 7.163 16 16 16h195.69c24.203 0 44.834-1.289 66.866-7.584C337.52 457.193 376 410.647 376 350.014c0-52.168-26.573-91.684-71.207-106.123zM142.217 100.809h67.444c16.294 0 27.536 2.019 37.525 6.717 15.828 8.479 24.906 26.502 24.906 49.446 0 35.029-20.32 56.79-53.029 56.79h-76.846V100.809zm112.642 305.475c-10.14 4.056-22.677 4.907-31.409 4.907h-81.233V281.943h84.367c39.645 0 63.057 25.38 63.057 63.057.001 28.425-13.66 52.483-34.782 61.284z\"\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}**`);\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,IAAc,GAAG;EAC5BC,IAAI,EAAE,MADsB;EAE5BC,UAAU,EAAE,MAFgB;EAG5BC,SAAS,EAAE,WAHiB;EAI5BC,WAAW,EAAE;IAAE,cAAc,eAAhB;IAAiCC,KAAK,EAAE;EAAxC,CAJe;EAK5BC,IAAI,eACF;IAAK,IAAI,EAAC,KAAV;IAAgB,KAAK,EAAC,IAAtB;IAA2B,MAAM,EAAC,IAAlC;IAAuC,OAAO,EAAC,aAA/C;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,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;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,eAAhB;IAAiCC,KAAK,EAAE;EAAxC,CAJe;EAK5BC,IAAI,eACF;IAAK,IAAI,EAAC,KAAV;IAAgB,KAAK,EAAC,IAAtB;IAA2B,MAAM,EAAC,IAAlC;IAAuC,OAAO,EAAC,aAA/C;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,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;AAxB2B,CAAvB"
33
34
  }
@@ -12,6 +12,7 @@
12
12
  "tate",
13
13
  "api",
14
14
  "newSelectionRange",
15
+ "selectWord",
15
16
  "text",
16
17
  "selection",
17
18
  "state1",
@@ -25,10 +26,12 @@
25
26
  "length",
26
27
  "end",
27
28
  "breaksBeforeCount",
29
+ "getBreaksNeededForEmptyLineBefore",
28
30
  "breaksBefore",
29
31
  "Array",
30
32
  "join",
31
33
  "breaksAfterCount",
34
+ "getBreaksNeededForEmptyLineAfter",
32
35
  "breaksAfter",
33
36
  "codeBlock"
34
37
  ],
@@ -38,5 +41,5 @@
38
41
  "sourcesContent": [
39
42
  "import * as React from 'react';\nimport { ICommand, TextState, TextAreaTextApi } from './';\nimport {\n selectWord,\n getBreaksNeededForEmptyLineBefore,\n getBreaksNeededForEmptyLineAfter,\n} from '../utils/markdownUtils';\n\nexport const code: ICommand = {\n name: 'code',\n keyCommand: 'code',\n shortcuts: 'ctrlcmd+j',\n buttonProps: { 'aria-label': 'Insert code', title: 'Insert code' },\n icon: (\n <svg width=\"12\" height=\"12\" role=\"img\" viewBox=\"0 0 640 512\">\n <path\n fill=\"currentColor\"\n d=\"M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z\"\n />\n </svg>\n ),\n execute: (tate: TextState, api: TextAreaTextApi) => {\n // Adjust the selection to encompass the whole word if the caret is inside one\n const newSelectionRange = selectWord({ text: tate.text, selection: tate.selection });\n const state1 = api.setSelectionRange(newSelectionRange);\n // when there's no breaking line\n if (state1.selectedText.indexOf('\\n') === -1) {\n api.replaceSelection(`\\`${state1.selectedText}\\``);\n // Adjust the selection to not contain the **\n\n const selectionStart = state1.selection.start + 1;\n const selectionEnd = selectionStart + state1.selectedText.length;\n\n api.setSelectionRange({\n start: selectionStart,\n end: selectionEnd,\n });\n return;\n }\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 api.replaceSelection(`${breaksBefore}\\`\\`\\`\\n${state1.selectedText}\\n\\`\\`\\`${breaksAfter}`);\n\n const selectionStart = state1.selection.start + breaksBeforeCount + 4;\n const selectionEnd = selectionStart + state1.selectedText.length;\n\n api.setSelectionRange({\n start: selectionStart,\n end: selectionEnd,\n });\n },\n};\n\nexport const codeBlock: ICommand = {\n name: 'codeBlock',\n keyCommand: 'codeBlock',\n shortcuts: 'ctrlcmd+shift+j',\n icon: (\n <svg width=\"12\" height=\"12\" role=\"img\" viewBox=\"0 0 156 156\">\n <path\n fill=\"currentColor\"\n d=\"M110.85 120.575 43.7 120.483333 43.7083334 110.091667 110.85 110.191667 110.841667 120.583333 110.85 120.575ZM85.1333334 87.1916666 43.625 86.7083332 43.7083334 76.3166666 85.2083334 76.7916666 85.1333334 87.1916666 85.1333334 87.1916666ZM110.841667 53.4166666 43.7 53.3166666 43.7083334 42.925 110.85 43.025 110.841667 53.4166666ZM36 138C27.2916666 138 20.75 136.216667 16.4 132.666667 12.1333334 129.2 10 124.308333 10 118L10 95.3333332C10 91.0666666 9.25 88.1333332 7.7333334 86.5333332 6.3166668 84.8416666 3.7333334 84 0 84L0 72C3.7333334 72 6.3083334 71.2 7.7333334 69.6 9.2416668 67.9083334 10 64.9333334 10 60.6666666L10 38C10 31.775 12.1333334 26.8833334 16.4 23.3333332 20.7583334 19.7749998 27.2916666 18 36 18L40.6666668 18 40.6666668 30 36 30C34.0212222 29.9719277 32.1263151 30.7979128 30.8 32.2666666 29.3605875 33.8216362 28.5938182 35.8823287 28.6666668 38L28.6666668 60.6666666C28.6666668 67.5083332 26.6666668 72.4 22.6666668 75.3333332 20.9317416 76.7274684 18.8640675 77.6464347 16.6666668 78 18.8916668 78.35 20.8916668 79.2416666 22.6666668 80.6666666 26.6666668 83.95 28.6666668 88.8416666 28.6666668 95.3333332L28.6666668 118C28.6666668 120.308333 29.3750002 122.216667 30.8 123.733333 32.2166666 125.241667 33.9583334 126 36 126L40.6666668 126 40.6666668 138 36 138 36 138ZM114.116667 126 118.783333 126C120.833333 126 122.566667 125.241667 123.983333 123.733333 125.422746 122.178364 126.189515 120.117671 126.116667 118L126.116667 95.3333332C126.116667 88.8333332 128.116667 83.9499998 132.116667 80.6666666 133.9 79.2416666 135.9 78.35 138.116667 78 135.919156 77.6468047 133.851391 76.7277979 132.116667 75.3333332 128.116667 72.3999998 126.116667 67.5 126.116667 60.6666666L126.116667 38C126.189515 35.8823287 125.422746 33.8216361 123.983333 32.2666666 122.657018 30.7979128 120.762111 29.9719277 118.783333 30L114.116667 30 114.116667 18 118.783333 18C127.5 18 133.983333 19.775 138.25 23.3333332 142.608333 26.8833332 144.783333 31.7749998 144.783333 38L144.783333 60.6666666C144.783333 64.9333332 145.5 67.9083332 146.916667 69.6 148.433333 71.2 151.05 72 154.783333 72L154.783333 84C151.05 84 148.433333 84.8333334 146.916667 86.5333332 145.5 88.1333332 144.783333 91.0666666 144.783333 95.3333332L144.783333 118C144.783333 124.308333 142.616667 129.2 138.25 132.666667 133.983333 136.216667 127.5 138 118.783333 138L114.116667 138 114.116667 126 114.116667 126Z\"\n />\n </svg>\n ),\n buttonProps: { 'aria-label': 'Insert Code Block', title: 'Insert Code Block' },\n execute: (tate: TextState, api: TextAreaTextApi) => {\n // Adjust the selection to encompass the whole word if the caret is inside one\n const newSelectionRange = selectWord({ text: tate.text, selection: tate.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 api.replaceSelection(`${breaksBefore}\\`\\`\\`\\n${state1.selectedText}\\n\\`\\`\\`${breaksAfter}`);\n\n const selectionStart = state1.selection.start + breaksBeforeCount + 4;\n const selectionEnd = selectionStart + state1.selectedText.length;\n\n api.setSelectionRange({\n start: selectionStart,\n end: selectionEnd,\n });\n },\n};\n"
40
43
  ],
41
- "mappings": "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"
44
+ "mappings": "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"
42
45
  }
@@ -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": ";;;;;;;;;;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;;;;;AAKe,SAASA,QAAT,CAAkBC,KAAlB,EAAwC;EACrD,IAAQC,SAAR,GAA0CD,KAA1C,CAAQC,SAAR;EAAA,IAAmBC,SAAnB,GAA0CF,KAA1C,CAAmBE,QAAnB;EAAA,IAAgCC,KAAhC,0CAA0CH,KAA1C;;EACA,kBAUI,IAAAI,iBAAA,EAAWC,sBAAX,CAVJ;EAAA,IACEC,QADF,eACEA,QADF;EAAA,IAEEC,QAFF,eAEEA,QAFF;EAAA,IAGEC,UAHF,eAGEA,UAHF;EAAA,IAIEC,OAJF,eAIEA,OAJF;EAAA,IAKEC,eALF,eAKEA,eALF;EAAA,IAMEC,aANF,eAMEA,aANF;EAAA,IAOEC,OAPF,eAOEA,OAPF;EAAA,IAQEC,gBARF,eAQEA,gBARF;EAAA,IASEC,QATF,eASEA,QATF;;EAWA,IAAMC,OAAO,GAAGC,cAAA,CAAMC,MAAN,CAAkC,IAAlC,CAAhB;;EACA,IAAMC,UAAU,GAAGF,cAAA,CAAMC,MAAN,EAAnB;;EACA,IAAME,SAAS,GAAGH,cAAA,CAAMC,MAAN,CAAkC;IAAET,UAAU,EAAVA,UAAF;IAAcC,OAAO,EAAPA;EAAd,CAAlC,CAAlB;;EAEA,IAAAW,gBAAA,EAAU,YAAM;IACdD,SAAS,CAACE,OAAV,GAAoB;MAAEb,UAAU,EAAVA,UAAF;MAAcC,OAAO,EAAPA,OAAd;MAAuBC,eAAe,EAAfA;IAAvB,CAApB;EACD,CAFD,EAEG,CAACF,UAAD,EAAaC,OAAb,EAAsBC,eAAtB,CAFH;EAIA,IAAAU,gBAAA,EAAU,YAAM;IACd,IAAIL,OAAO,CAACM,OAAR,IAAmBP,QAAvB,EAAiC;MAC/B,IAAMQ,mBAAmB,GAAG,IAAIC,qCAAJ,CAAgCR,OAAO,CAACM,OAAxC,CAA5B;MACAH,UAAU,CAACG,OAAX,GAAqBC,mBAArB;MACAR,QAAQ,CAAC;QAAEU,QAAQ,EAAET,OAAO,CAACM,OAApB;QAA6BC,mBAAmB,EAAnBA;MAA7B,CAAD,CAAR;IACD,CALa,CAMd;;EACD,CAPD,EAOG,EAPH;;EASA,IAAMG,SAAS,GAAG,SAAZA,SAAY,CAACC,CAAD,EAAiE;IACjF,IAAAC,sBAAA,EAAcD,CAAd,EAAiBd,OAAjB,EAA0BC,gBAA1B;IACA,IAAAe,kBAAA,EAAUF,CAAV,6CAAkBnB,QAAQ,IAAI,EAA9B,oCAAuCI,aAAa,IAAI,EAAxD,IAA8DO,UAAU,CAACG,OAAzE,EAAkFP,QAAlF,EAA4FK,SAAS,CAACE,OAAtG;EACD,CAHD;;EAIA,IAAAD,gBAAA,EAAU,YAAM;IACd,IAAIL,OAAO,CAACM,OAAZ,EAAqB;MACnBN,OAAO,CAACM,OAAR,CAAgBQ,gBAAhB,CAAiC,SAAjC,EAA4CJ,SAA5C;IACD;;IACD,OAAO,YAAM;MACX,IAAIV,OAAO,CAACM,OAAZ,EAAqB;QACnB;QACAN,OAAO,CAACM,OAAR,CAAgBS,mBAAhB,CAAoC,SAApC,EAA+CL,SAA/C;MACD;IACF,CALD,CAJc,CAUd;EACD,CAXD,EAWG,EAXH;EAaA,oBACE;IACE,YAAY,EAAC,KADf;IAEE,WAAW,EAAC,KAFd;IAGE,cAAc,EAAC,KAHjB;IAIE,UAAU,EAAE;EAJd,GAKMtB,KALN;IAME,GAAG,EAAEY,OANP;IAOE,SAAS,YAAKd,SAAL,yBAA6BE,KAAK,CAAC4B,SAAN,GAAkB5B,KAAK,CAAC4B,SAAxB,GAAoC,EAAjE,CAPX;IAQE,KAAK,EAAEzB,QART;IASE,QAAQ,EAAE,kBAACoB,CAAD,EAAO;MACfZ,QAAQ,IAAIA,QAAQ,CAAC;QAAER,QAAQ,EAAEoB,CAAC,CAACM,MAAF,CAASC;MAArB,CAAD,CAApB;MACA/B,SAAQ,IAAIA,SAAQ,CAACwB,CAAD,CAApB;IACD;EAZH,GADF;AAgBD"
43
47
  }