decap-cms-widget-markdown 2.16.0-beta.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 (215) hide show
  1. package/CHANGELOG.md +820 -0
  2. package/LICENSE +22 -0
  3. package/README.md +9 -0
  4. package/dist/decap-cms-widget-markdown.js +9 -0
  5. package/dist/decap-cms-widget-markdown.js.LICENSE.txt +37 -0
  6. package/dist/decap-cms-widget-markdown.js.map +1 -0
  7. package/dist/esm/MarkdownControl/RawEditor.js +106 -0
  8. package/dist/esm/MarkdownControl/Toolbar.js +216 -0
  9. package/dist/esm/MarkdownControl/ToolbarButton.js +43 -0
  10. package/dist/esm/MarkdownControl/VisualEditor.js +268 -0
  11. package/dist/esm/MarkdownControl/components/Shortcode.js +78 -0
  12. package/dist/esm/MarkdownControl/components/VoidBlock.js +55 -0
  13. package/dist/esm/MarkdownControl/index.js +129 -0
  14. package/dist/esm/MarkdownControl/plugins/BreakToDefaultBlock.js +34 -0
  15. package/dist/esm/MarkdownControl/plugins/CloseBlock.js +36 -0
  16. package/dist/esm/MarkdownControl/plugins/CommandsAndQueries.js +188 -0
  17. package/dist/esm/MarkdownControl/plugins/ForceInsert.js +49 -0
  18. package/dist/esm/MarkdownControl/plugins/Hotkey.js +35 -0
  19. package/dist/esm/MarkdownControl/plugins/LineBreak.js +21 -0
  20. package/dist/esm/MarkdownControl/plugins/Link.js +56 -0
  21. package/dist/esm/MarkdownControl/plugins/blocks/defaultEmptyBlock.js +16 -0
  22. package/dist/esm/MarkdownControl/plugins/blocks/events/keyDown.js +47 -0
  23. package/dist/esm/MarkdownControl/plugins/blocks/events/keyDownBackspace.js +26 -0
  24. package/dist/esm/MarkdownControl/plugins/blocks/events/keyDownEnter.js +28 -0
  25. package/dist/esm/MarkdownControl/plugins/blocks/events/toggleBlock.js +46 -0
  26. package/dist/esm/MarkdownControl/plugins/blocks/locations/areCurrentAndPreviousBlocksOfType.js +20 -0
  27. package/dist/esm/MarkdownControl/plugins/blocks/locations/getListTypeAtCursor.js +16 -0
  28. package/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorAtEndOfParagraph.js +19 -0
  29. package/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorAtStartOfBlockType.js +19 -0
  30. package/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorAtStartOfNonEmptyHeading.js +20 -0
  31. package/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorInBlockType.js +20 -0
  32. package/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorInNonDefaultBlock.js +20 -0
  33. package/dist/esm/MarkdownControl/plugins/blocks/transforms/splitIntoParagraph.js +23 -0
  34. package/dist/esm/MarkdownControl/plugins/blocks/transforms/unwrapIfCursorAtStart.js +36 -0
  35. package/dist/esm/MarkdownControl/plugins/blocks/transforms/wrapListItemsInBlock.js +27 -0
  36. package/dist/esm/MarkdownControl/plugins/blocks/withBlocks.js +19 -0
  37. package/dist/esm/MarkdownControl/plugins/inlines/events/keyDown.js +39 -0
  38. package/dist/esm/MarkdownControl/plugins/inlines/events/keyDownShiftEnter.js +27 -0
  39. package/dist/esm/MarkdownControl/plugins/inlines/events/toggleLink.js +24 -0
  40. package/dist/esm/MarkdownControl/plugins/inlines/events/toggleMark.js +18 -0
  41. package/dist/esm/MarkdownControl/plugins/inlines/locations/isMarkActive.js +17 -0
  42. package/dist/esm/MarkdownControl/plugins/inlines/selectors/getActiveLink.js +15 -0
  43. package/dist/esm/MarkdownControl/plugins/inlines/transforms/unwrapLink.js +14 -0
  44. package/dist/esm/MarkdownControl/plugins/inlines/transforms/wrapLink.js +45 -0
  45. package/dist/esm/MarkdownControl/plugins/inlines/withInlines.js +23 -0
  46. package/dist/esm/MarkdownControl/plugins/lists/events/keyDown.js +38 -0
  47. package/dist/esm/MarkdownControl/plugins/lists/events/keyDownBackspace.js +29 -0
  48. package/dist/esm/MarkdownControl/plugins/lists/events/keyDownEnter.js +44 -0
  49. package/dist/esm/MarkdownControl/plugins/lists/events/keyDownShiftTab.js +32 -0
  50. package/dist/esm/MarkdownControl/plugins/lists/events/keyDownTab.js +57 -0
  51. package/dist/esm/MarkdownControl/plugins/lists/events/toggleListType.js +29 -0
  52. package/dist/esm/MarkdownControl/plugins/lists/locations/isCursorAtListItemStart.js +18 -0
  53. package/dist/esm/MarkdownControl/plugins/lists/locations/isCursorAtNoninitialParagraphStart.js +17 -0
  54. package/dist/esm/MarkdownControl/plugins/lists/locations/isCursorInItemContainingNestedList.js +14 -0
  55. package/dist/esm/MarkdownControl/plugins/lists/locations/isCursorInListItem.js +20 -0
  56. package/dist/esm/MarkdownControl/plugins/lists/locations/isSelectionWithinNoninitialListItem.js +18 -0
  57. package/dist/esm/MarkdownControl/plugins/lists/selectors/getListContainedInListItem.js +18 -0
  58. package/dist/esm/MarkdownControl/plugins/lists/selectors/getLowestAncestorList.js +15 -0
  59. package/dist/esm/MarkdownControl/plugins/lists/selectors/getLowestAncestorQuote.js +15 -0
  60. package/dist/esm/MarkdownControl/plugins/lists/transforms/changeListType.js +24 -0
  61. package/dist/esm/MarkdownControl/plugins/lists/transforms/convertParagraphToListItem.js +27 -0
  62. package/dist/esm/MarkdownControl/plugins/lists/transforms/liftFirstMatchedParent.js +20 -0
  63. package/dist/esm/MarkdownControl/plugins/lists/transforms/liftListItem.js +37 -0
  64. package/dist/esm/MarkdownControl/plugins/lists/transforms/mergeWithPreviousListItem.js +19 -0
  65. package/dist/esm/MarkdownControl/plugins/lists/transforms/moveListToListItem.js +18 -0
  66. package/dist/esm/MarkdownControl/plugins/lists/transforms/splitListItem.js +37 -0
  67. package/dist/esm/MarkdownControl/plugins/lists/transforms/splitToNestedList.js +37 -0
  68. package/dist/esm/MarkdownControl/plugins/lists/transforms/unwrapFirstMatchedParent.js +14 -0
  69. package/dist/esm/MarkdownControl/plugins/lists/transforms/unwrapSelectionFromList.js +25 -0
  70. package/dist/esm/MarkdownControl/plugins/lists/transforms/wrapFirstMatchedParent.js +14 -0
  71. package/dist/esm/MarkdownControl/plugins/lists/transforms/wrapSelectionInList.js +27 -0
  72. package/dist/esm/MarkdownControl/plugins/lists/withLists.js +67 -0
  73. package/dist/esm/MarkdownControl/plugins/matchers/lowestMatchedAncestor.js +13 -0
  74. package/dist/esm/MarkdownControl/plugins/matchers/matchLink.js +14 -0
  75. package/dist/esm/MarkdownControl/plugins/matchers/matchedAncestors.js +15 -0
  76. package/dist/esm/MarkdownControl/plugins/shortcodes/insertShortcode.js +35 -0
  77. package/dist/esm/MarkdownControl/plugins/shortcodes/locations/isCursorInEmptyParagraph.js +20 -0
  78. package/dist/esm/MarkdownControl/plugins/shortcodes/withShortcodes.js +30 -0
  79. package/dist/esm/MarkdownControl/plugins/util.js +18 -0
  80. package/dist/esm/MarkdownControl/renderers.js +326 -0
  81. package/dist/esm/MarkdownPreview.js +47 -0
  82. package/dist/esm/index.js +31 -0
  83. package/dist/esm/regexHelper.js +151 -0
  84. package/dist/esm/schema.js +35 -0
  85. package/dist/esm/serializers/index.js +233 -0
  86. package/dist/esm/serializers/rehypePaperEmoji.js +24 -0
  87. package/dist/esm/serializers/remarkAllowHtmlEntities.js +55 -0
  88. package/dist/esm/serializers/remarkAssertParents.js +89 -0
  89. package/dist/esm/serializers/remarkEscapeMarkdownEntities.js +271 -0
  90. package/dist/esm/serializers/remarkImagesToText.js +41 -0
  91. package/dist/esm/serializers/remarkPaddedLinks.js +127 -0
  92. package/dist/esm/serializers/remarkRehypeShortcodes.js +93 -0
  93. package/dist/esm/serializers/remarkShortcodes.js +123 -0
  94. package/dist/esm/serializers/remarkSlate.js +518 -0
  95. package/dist/esm/serializers/remarkSquashReferences.js +88 -0
  96. package/dist/esm/serializers/remarkStripTrailingBreaks.js +61 -0
  97. package/dist/esm/serializers/remarkWrapHtml.js +24 -0
  98. package/dist/esm/serializers/slateRemark.js +512 -0
  99. package/dist/esm/styles.js +18 -0
  100. package/dist/esm/types.js +10 -0
  101. package/package.json +64 -0
  102. package/src/MarkdownControl/RawEditor.js +100 -0
  103. package/src/MarkdownControl/Toolbar.js +278 -0
  104. package/src/MarkdownControl/ToolbarButton.js +48 -0
  105. package/src/MarkdownControl/VisualEditor.js +293 -0
  106. package/src/MarkdownControl/__tests__/VisualEditor.spec.js +56 -0
  107. package/src/MarkdownControl/__tests__/__snapshots__/parser.spec.js.snap +543 -0
  108. package/src/MarkdownControl/__tests__/parser.spec.js +668 -0
  109. package/src/MarkdownControl/components/Shortcode.js +74 -0
  110. package/src/MarkdownControl/components/VoidBlock.js +58 -0
  111. package/src/MarkdownControl/index.js +125 -0
  112. package/src/MarkdownControl/plugins/BreakToDefaultBlock.js +23 -0
  113. package/src/MarkdownControl/plugins/CloseBlock.js +25 -0
  114. package/src/MarkdownControl/plugins/CommandsAndQueries.js +156 -0
  115. package/src/MarkdownControl/plugins/ForceInsert.js +38 -0
  116. package/src/MarkdownControl/plugins/Hotkey.js +29 -0
  117. package/src/MarkdownControl/plugins/LineBreak.js +15 -0
  118. package/src/MarkdownControl/plugins/Link.js +40 -0
  119. package/src/MarkdownControl/plugins/blocks/defaultEmptyBlock.js +8 -0
  120. package/src/MarkdownControl/plugins/blocks/events/keyDown.js +47 -0
  121. package/src/MarkdownControl/plugins/blocks/events/keyDownBackspace.js +27 -0
  122. package/src/MarkdownControl/plugins/blocks/events/keyDownEnter.js +26 -0
  123. package/src/MarkdownControl/plugins/blocks/events/toggleBlock.js +39 -0
  124. package/src/MarkdownControl/plugins/blocks/locations/areCurrentAndPreviousBlocksOfType.js +15 -0
  125. package/src/MarkdownControl/plugins/blocks/locations/getListTypeAtCursor.js +11 -0
  126. package/src/MarkdownControl/plugins/blocks/locations/isCursorAtEndOfParagraph.js +14 -0
  127. package/src/MarkdownControl/plugins/blocks/locations/isCursorAtStartOfBlockType.js +14 -0
  128. package/src/MarkdownControl/plugins/blocks/locations/isCursorAtStartOfNonEmptyHeading.js +22 -0
  129. package/src/MarkdownControl/plugins/blocks/locations/isCursorInBlockType.js +27 -0
  130. package/src/MarkdownControl/plugins/blocks/locations/isCursorInNonDefaultBlock.js +17 -0
  131. package/src/MarkdownControl/plugins/blocks/transforms/splitIntoParagraph.js +13 -0
  132. package/src/MarkdownControl/plugins/blocks/transforms/unwrapIfCursorAtStart.js +30 -0
  133. package/src/MarkdownControl/plugins/blocks/transforms/wrapListItemsInBlock.js +11 -0
  134. package/src/MarkdownControl/plugins/blocks/withBlocks.js +15 -0
  135. package/src/MarkdownControl/plugins/inlines/events/keyDown.js +38 -0
  136. package/src/MarkdownControl/plugins/inlines/events/keyDownShiftEnter.js +28 -0
  137. package/src/MarkdownControl/plugins/inlines/events/toggleLink.js +17 -0
  138. package/src/MarkdownControl/plugins/inlines/events/toggleMark.js +13 -0
  139. package/src/MarkdownControl/plugins/inlines/locations/isMarkActive.js +11 -0
  140. package/src/MarkdownControl/plugins/inlines/selectors/getActiveLink.js +10 -0
  141. package/src/MarkdownControl/plugins/inlines/transforms/unwrapLink.js +9 -0
  142. package/src/MarkdownControl/plugins/inlines/transforms/wrapLink.js +30 -0
  143. package/src/MarkdownControl/plugins/inlines/withInlines.js +20 -0
  144. package/src/MarkdownControl/plugins/lists/events/keyDown.js +34 -0
  145. package/src/MarkdownControl/plugins/lists/events/keyDownBackspace.js +31 -0
  146. package/src/MarkdownControl/plugins/lists/events/keyDownEnter.js +39 -0
  147. package/src/MarkdownControl/plugins/lists/events/keyDownShiftTab.js +27 -0
  148. package/src/MarkdownControl/plugins/lists/events/keyDownTab.js +55 -0
  149. package/src/MarkdownControl/plugins/lists/events/toggleListType.js +23 -0
  150. package/src/MarkdownControl/plugins/lists/locations/isCursorAtListItemStart.js +13 -0
  151. package/src/MarkdownControl/plugins/lists/locations/isCursorAtNoninitialParagraphStart.js +11 -0
  152. package/src/MarkdownControl/plugins/lists/locations/isCursorInItemContainingNestedList.js +9 -0
  153. package/src/MarkdownControl/plugins/lists/locations/isCursorInListItem.js +21 -0
  154. package/src/MarkdownControl/plugins/lists/locations/isSelectionWithinNoninitialListItem.js +14 -0
  155. package/src/MarkdownControl/plugins/lists/selectors/getListContainedInListItem.js +12 -0
  156. package/src/MarkdownControl/plugins/lists/selectors/getLowestAncestorList.js +11 -0
  157. package/src/MarkdownControl/plugins/lists/selectors/getLowestAncestorQuote.js +11 -0
  158. package/src/MarkdownControl/plugins/lists/transforms/changeListType.js +16 -0
  159. package/src/MarkdownControl/plugins/lists/transforms/convertParagraphToListItem.js +19 -0
  160. package/src/MarkdownControl/plugins/lists/transforms/liftFirstMatchedParent.js +11 -0
  161. package/src/MarkdownControl/plugins/lists/transforms/liftListItem.js +30 -0
  162. package/src/MarkdownControl/plugins/lists/transforms/mergeWithPreviousListItem.js +13 -0
  163. package/src/MarkdownControl/plugins/lists/transforms/moveListToListItem.js +13 -0
  164. package/src/MarkdownControl/plugins/lists/transforms/splitListItem.js +33 -0
  165. package/src/MarkdownControl/plugins/lists/transforms/splitToNestedList.js +33 -0
  166. package/src/MarkdownControl/plugins/lists/transforms/unwrapFirstMatchedParent.js +9 -0
  167. package/src/MarkdownControl/plugins/lists/transforms/unwrapSelectionFromList.js +14 -0
  168. package/src/MarkdownControl/plugins/lists/transforms/wrapFirstMatchedParent.js +9 -0
  169. package/src/MarkdownControl/plugins/lists/transforms/wrapSelectionInList.js +17 -0
  170. package/src/MarkdownControl/plugins/lists/withLists.js +66 -0
  171. package/src/MarkdownControl/plugins/matchers/lowestMatchedAncestor.js +6 -0
  172. package/src/MarkdownControl/plugins/matchers/matchLink.js +9 -0
  173. package/src/MarkdownControl/plugins/matchers/matchedAncestors.js +18 -0
  174. package/src/MarkdownControl/plugins/shortcodes/insertShortcode.js +34 -0
  175. package/src/MarkdownControl/plugins/shortcodes/locations/isCursorInEmptyParagraph.js +17 -0
  176. package/src/MarkdownControl/plugins/shortcodes/withShortcodes.js +26 -0
  177. package/src/MarkdownControl/plugins/util.js +11 -0
  178. package/src/MarkdownControl/renderers.js +352 -0
  179. package/src/MarkdownPreview.js +27 -0
  180. package/src/__tests__/__snapshots__/renderer.spec.js.snap +239 -0
  181. package/src/__tests__/renderer.spec.js +261 -0
  182. package/src/index.js +16 -0
  183. package/src/regexHelper.js +137 -0
  184. package/src/schema.js +35 -0
  185. package/src/serializers/__tests__/__fixtures__/commonmarkExpected.json +625 -0
  186. package/src/serializers/__tests__/__fixtures__/duplicate_marks_github_issue_3280.md +1 -0
  187. package/src/serializers/__tests__/commonmark.spec.js +110 -0
  188. package/src/serializers/__tests__/index.spec.js +52 -0
  189. package/src/serializers/__tests__/remarkAllowHtmlEntities.spec.js +25 -0
  190. package/src/serializers/__tests__/remarkAssertParents.spec.js +171 -0
  191. package/src/serializers/__tests__/remarkEscapeMarkdownEntities.spec.js +84 -0
  192. package/src/serializers/__tests__/remarkPaddedLinks.spec.js +43 -0
  193. package/src/serializers/__tests__/remarkPlugins.spec.js +299 -0
  194. package/src/serializers/__tests__/remarkShortcodes.spec.js +106 -0
  195. package/src/serializers/__tests__/remarkSlate.spec.js +67 -0
  196. package/src/serializers/__tests__/remarkStripTrailingBreaks.spec.js +23 -0
  197. package/src/serializers/__tests__/slate.spec.js +300 -0
  198. package/src/serializers/index.js +226 -0
  199. package/src/serializers/rehypePaperEmoji.js +16 -0
  200. package/src/serializers/remarkAllowHtmlEntities.js +58 -0
  201. package/src/serializers/remarkAssertParents.js +83 -0
  202. package/src/serializers/remarkEscapeMarkdownEntities.js +269 -0
  203. package/src/serializers/remarkImagesToText.js +26 -0
  204. package/src/serializers/remarkPaddedLinks.js +120 -0
  205. package/src/serializers/remarkRehypeShortcodes.js +67 -0
  206. package/src/serializers/remarkShortcodes.js +106 -0
  207. package/src/serializers/remarkSlate.js +425 -0
  208. package/src/serializers/remarkSquashReferences.js +73 -0
  209. package/src/serializers/remarkStripTrailingBreaks.js +56 -0
  210. package/src/serializers/remarkWrapHtml.js +20 -0
  211. package/src/serializers/slateRemark.js +468 -0
  212. package/src/styles.js +13 -0
  213. package/src/types.js +3 -0
  214. package/test-helpers/h.js +32 -0
  215. package/webpack.config.js +3 -0
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _slate = require("slate");
8
+ function splitIntoParagraph(editor) {
9
+ _slate.Editor.withoutNormalizing(editor, () => {
10
+ _slate.Transforms.splitNodes(editor, {
11
+ always: true
12
+ });
13
+ _slate.Transforms.setNodes(editor, {
14
+ type: 'paragraph'
15
+ });
16
+ });
17
+ _slate.Editor.normalize(editor, {
18
+ force: true
19
+ });
20
+ return true;
21
+ }
22
+ var _default = splitIntoParagraph;
23
+ exports.default = _default;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _slate = require("slate");
8
+ var _lowestMatchedAncestor = _interopRequireDefault(require("../../matchers/lowestMatchedAncestor"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ function unwrapIfCursorAtStart(editor, mergeWithPrevious = false) {
11
+ if (editor.selection.anchor.offset !== 0) return false;
12
+ const node = _slate.Editor.above(editor, (0, _lowestMatchedAncestor.default)(editor, 'non-default'));
13
+ if (node[1].length == 0) return false;
14
+ const isHeading = `${node[0].type}`.startsWith('heading-');
15
+ if (isHeading) {
16
+ _slate.Transforms.setNodes(editor, {
17
+ type: 'paragraph'
18
+ });
19
+ return false;
20
+ }
21
+ _slate.Editor.withoutNormalizing(editor, () => {
22
+ _slate.Transforms.unwrapNodes(editor, {
23
+ match: n => n.type === node[0].type,
24
+ split: true
25
+ });
26
+ if (mergeWithPrevious) {
27
+ _slate.Transforms.mergeNodes(editor);
28
+ }
29
+ });
30
+ _slate.Editor.normalize(editor, {
31
+ force: true
32
+ });
33
+ return true;
34
+ }
35
+ var _default = unwrapIfCursorAtStart;
36
+ exports.default = _default;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _slate = require("slate");
8
+ function wrapListItemsInBlock(editor, blockType, listType) {
9
+ _slate.Editor.withoutNormalizing(editor, () => {
10
+ _slate.Transforms.wrapNodes(editor, {
11
+ type: listType
12
+ });
13
+ _slate.Transforms.wrapNodes(editor, {
14
+ type: blockType
15
+ }, {
16
+ match: n => n.type === listType
17
+ });
18
+ _slate.Transforms.liftNodes(editor, {
19
+ match: n => n.type === blockType
20
+ });
21
+ });
22
+ _slate.Editor.normalize(editor, {
23
+ force: true
24
+ });
25
+ }
26
+ var _default = wrapListItemsInBlock;
27
+ exports.default = _default;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _keyDown = _interopRequireDefault(require("./events/keyDown"));
8
+ var _toggleBlock = _interopRequireDefault(require("./events/toggleBlock"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ function withBlocks(editor) {
11
+ if (editor.keyDownHandlers === undefined) {
12
+ editor.keyDownHandlers = [];
13
+ }
14
+ editor.keyDownHandlers.push((event, editor) => (0, _keyDown.default)(event, editor));
15
+ editor.toggleBlock = type => (0, _toggleBlock.default)(editor, type);
16
+ return editor;
17
+ }
18
+ var _default = withBlocks;
19
+ exports.default = _default;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _isHotkey = _interopRequireDefault(require("is-hotkey"));
8
+ var _toggleMark = _interopRequireDefault(require("./toggleMark"));
9
+ var _keyDownShiftEnter = _interopRequireDefault(require("./keyDownShiftEnter"));
10
+ var _toggleLink = _interopRequireDefault(require("./toggleLink"));
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ const MARK_HOTKEYS = {
13
+ 'mod+b': 'bold',
14
+ 'mod+i': 'italic',
15
+ 'mod+u': 'underline',
16
+ 'mod+`': 'code',
17
+ 'mod+shift+s': 'delete',
18
+ 'mod+shift+c': 'code'
19
+ };
20
+ function keyDown(event, editor) {
21
+ if (!editor.selection) return;
22
+ for (const hotkey in MARK_HOTKEYS) {
23
+ if ((0, _isHotkey.default)(hotkey, event)) {
24
+ (0, _toggleMark.default)(editor, MARK_HOTKEYS[hotkey]);
25
+ event.preventDefault();
26
+ return false;
27
+ }
28
+ }
29
+ if ((0, _isHotkey.default)('mod+k', event)) {
30
+ event.preventDefault();
31
+ return (0, _toggleLink.default)(editor);
32
+ }
33
+ if ((0, _isHotkey.default)('shift+enter', event)) {
34
+ event.preventDefault();
35
+ return (0, _keyDownShiftEnter.default)(editor);
36
+ }
37
+ }
38
+ var _default = keyDown;
39
+ exports.default = _default;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _slate = require("slate");
8
+ function keyDownShiftEnter(editor) {
9
+ if (!editor.selection) return;
10
+ const focus = {
11
+ path: [...editor.selection.focus.path.slice(0, -1), editor.selection.focus.path[editor.selection.focus.path.length - 1] + 2],
12
+ offset: 0
13
+ };
14
+ _slate.Transforms.insertNodes(editor, {
15
+ type: 'break',
16
+ children: [{
17
+ text: ''
18
+ }]
19
+ });
20
+ _slate.Editor.normalize(editor, {
21
+ force: true
22
+ });
23
+ _slate.Transforms.select(editor, focus);
24
+ return false;
25
+ }
26
+ var _default = keyDownShiftEnter;
27
+ exports.default = _default;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _getActiveLink = _interopRequireDefault(require("../selectors/getActiveLink"));
8
+ var _unwrapLink = _interopRequireDefault(require("../transforms/unwrapLink"));
9
+ var _wrapLink = _interopRequireDefault(require("../transforms/wrapLink"));
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ function toggleLink(editor, promptText) {
12
+ var _activeLink$, _activeLink$$data;
13
+ const activeLink = (0, _getActiveLink.default)(editor);
14
+ const activeUrl = activeLink ? (_activeLink$ = activeLink[0]) === null || _activeLink$ === void 0 ? void 0 : (_activeLink$$data = _activeLink$.data) === null || _activeLink$$data === void 0 ? void 0 : _activeLink$$data.url : '';
15
+ const url = window.prompt(promptText, activeUrl);
16
+ if (url == null) return;
17
+ if (url === '') {
18
+ (0, _unwrapLink.default)(editor);
19
+ return;
20
+ }
21
+ (0, _wrapLink.default)(editor, url);
22
+ }
23
+ var _default = toggleLink;
24
+ exports.default = _default;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _slate = require("slate");
8
+ var _isMarkActive = _interopRequireDefault(require("../locations/isMarkActive"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ function toggleMark(editor, format) {
11
+ if ((0, _isMarkActive.default)(editor, format)) {
12
+ _slate.Editor.removeMark(editor, format);
13
+ } else {
14
+ _slate.Editor.addMark(editor, format, true);
15
+ }
16
+ }
17
+ var _default = toggleMark;
18
+ exports.default = _default;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _slate = require("slate");
8
+ function isMarkActive(editor, format) {
9
+ const {
10
+ selection
11
+ } = editor;
12
+ if (!selection) return false;
13
+ const marks = _slate.Editor.marks(editor);
14
+ return marks ? marks[format] === true : false;
15
+ }
16
+ var _default = isMarkActive;
17
+ exports.default = _default;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _slate = require("slate");
8
+ var _matchLink = _interopRequireDefault(require("../../matchers/matchLink"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ function getActiveLink(editor) {
11
+ const [link] = _slate.Editor.nodes(editor, (0, _matchLink.default)(editor));
12
+ return link;
13
+ }
14
+ var _default = getActiveLink;
15
+ exports.default = _default;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _slate = require("slate");
8
+ var _matchLink = _interopRequireDefault(require("../../matchers/matchLink"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ function unwrapLink(editor) {
11
+ _slate.Transforms.unwrapNodes(editor, (0, _matchLink.default)());
12
+ }
13
+ var _default = unwrapLink;
14
+ exports.default = _default;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _slate = require("slate");
8
+ var _getActiveLink = _interopRequireDefault(require("../selectors/getActiveLink"));
9
+ var _matchLink = _interopRequireDefault(require("../../matchers/matchLink"));
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ function wrapLink(editor, url) {
12
+ if ((0, _getActiveLink.default)(editor)) {
13
+ _slate.Transforms.setNodes(editor, {
14
+ data: {
15
+ url
16
+ }
17
+ }, (0, _matchLink.default)());
18
+ return;
19
+ }
20
+ const {
21
+ selection
22
+ } = editor;
23
+ const isCollapsed = selection && _slate.Range.isCollapsed(selection);
24
+ const link = {
25
+ type: 'link',
26
+ data: {
27
+ url
28
+ },
29
+ children: isCollapsed ? [{
30
+ text: url
31
+ }] : []
32
+ };
33
+ if (isCollapsed) {
34
+ _slate.Transforms.insertNodes(editor, link);
35
+ } else {
36
+ _slate.Transforms.wrapNodes(editor, link, {
37
+ split: true
38
+ });
39
+ _slate.Transforms.collapse(editor, {
40
+ edge: 'end'
41
+ });
42
+ }
43
+ }
44
+ var _default = wrapLink;
45
+ exports.default = _default;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _keyDown = _interopRequireDefault(require("./events/keyDown"));
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ function withInlines(editor) {
10
+ const {
11
+ isInline,
12
+ isVoid
13
+ } = editor;
14
+ editor.isInline = element => ['link', 'button', 'break', 'image'].includes(element.type) || isInline(element);
15
+ editor.isVoid = element => ['break', 'image', 'thematic-break'].includes(element.type) || isVoid(element);
16
+ if (editor.keyDownHandlers === undefined) {
17
+ editor.keyDownHandlers = [];
18
+ }
19
+ editor.keyDownHandlers.push((event, editor) => (0, _keyDown.default)(event, editor));
20
+ return editor;
21
+ }
22
+ var _default = withInlines;
23
+ exports.default = _default;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _isHotkey = _interopRequireDefault(require("is-hotkey"));
8
+ var _keyDownEnter = _interopRequireDefault(require("./keyDownEnter"));
9
+ var _keyDownTab = _interopRequireDefault(require("./keyDownTab"));
10
+ var _keyDownShiftTab = _interopRequireDefault(require("./keyDownShiftTab"));
11
+ var _keyDownBackspace = _interopRequireDefault(require("./keyDownBackspace"));
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+ function keyDown(event, editor) {
14
+ if (!editor.isListItem()) return;
15
+ if ((0, _isHotkey.default)('enter', event)) {
16
+ event.preventDefault();
17
+ (0, _keyDownEnter.default)(editor);
18
+ return false;
19
+ }
20
+ if ((0, _isHotkey.default)('backspace', event)) {
21
+ const eventIntercepted = (0, _keyDownBackspace.default)(editor);
22
+ if (eventIntercepted === false) {
23
+ event.preventDefault();
24
+ return false;
25
+ }
26
+ return;
27
+ }
28
+ if ((0, _isHotkey.default)('tab', event)) {
29
+ event.preventDefault();
30
+ return (0, _keyDownTab.default)(editor);
31
+ }
32
+ if ((0, _isHotkey.default)('shift+tab', event)) {
33
+ event.preventDefault();
34
+ return (0, _keyDownShiftTab.default)(editor);
35
+ }
36
+ }
37
+ var _default = keyDown;
38
+ exports.default = _default;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _slate = require("slate");
8
+ var _isCursorInListItem = _interopRequireDefault(require("../locations/isCursorInListItem"));
9
+ var _isSelectionWithinNoninitialListItem = _interopRequireDefault(require("../locations/isSelectionWithinNoninitialListItem"));
10
+ var _unwrapSelectionFromList = _interopRequireDefault(require("../transforms/unwrapSelectionFromList"));
11
+ var _mergeWithPreviousListItem = _interopRequireDefault(require("../transforms/mergeWithPreviousListItem"));
12
+ var _isCursorAtNoninitialParagraphStart = _interopRequireDefault(require("../locations/isCursorAtNoninitialParagraphStart"));
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ function keyDownBackspace(editor) {
15
+ if (!editor.selection) return;
16
+
17
+ // ignore if selection is expanded, cursor is not at the beginning or not immediately in a list item, or cursor is at the beginning of a non-initial paragraph
18
+ if (!_slate.Range.isCollapsed(editor.selection) || editor.selection.anchor.offset !== 0 || !(0, _isCursorInListItem.default)(editor, true) || (0, _isCursorAtNoninitialParagraphStart.default)(editor)) {
19
+ return;
20
+ }
21
+ if ((0, _isSelectionWithinNoninitialListItem.default)(editor)) {
22
+ (0, _mergeWithPreviousListItem.default)(editor);
23
+ } else {
24
+ (0, _unwrapSelectionFromList.default)(editor);
25
+ }
26
+ return false;
27
+ }
28
+ var _default = keyDownBackspace;
29
+ exports.default = _default;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _slate = require("slate");
8
+ var _splitListItem = _interopRequireDefault(require("../transforms/splitListItem"));
9
+ var _isCursorAtListItemStart = _interopRequireDefault(require("../locations/isCursorAtListItemStart"));
10
+ var _liftListItem = _interopRequireDefault(require("../transforms/liftListItem"));
11
+ var _convertParagraphToListItem = _interopRequireDefault(require("../transforms/convertParagraphToListItem"));
12
+ var _isCursorAtNoninitialParagraphStart = _interopRequireDefault(require("../locations/isCursorAtNoninitialParagraphStart"));
13
+ var _splitToNestedList = _interopRequireDefault(require("../transforms/splitToNestedList"));
14
+ var _getListContainedInListItem = _interopRequireDefault(require("../selectors/getListContainedInListItem"));
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
+ function keyDownEnter(editor) {
17
+ if (!editor.selection) return;
18
+
19
+ // Pressing enter will delete current selection in any case
20
+ if (_slate.Range.isExpanded(editor.selection)) {
21
+ _slate.Transforms.delete(editor);
22
+ }
23
+
24
+ // if edge of selection is in the begining of the first text node in list-item
25
+ if ((0, _isCursorAtListItemStart.default)(editor)) {
26
+ return (0, _liftListItem.default)(editor);
27
+ }
28
+
29
+ // if list has a nested list, insert new item to the beginning of the nested list
30
+ const nestedList = (0, _getListContainedInListItem.default)(editor);
31
+ if (!!nestedList && `${nestedList[0].type}`.endsWith('-list')) {
32
+ return (0, _splitToNestedList.default)(editor, nestedList[0].type);
33
+ }
34
+
35
+ // if a paragraph in a list and has previous siblings, convert it to a list item
36
+ if ((0, _isCursorAtNoninitialParagraphStart.default)(editor)) {
37
+ return (0, _convertParagraphToListItem.default)(editor);
38
+ }
39
+
40
+ // otherwise create a new list item
41
+ (0, _splitListItem.default)(editor);
42
+ }
43
+ var _default = keyDownEnter;
44
+ exports.default = _default;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _slate = require("slate");
8
+ var _lowestMatchedAncestor = _interopRequireDefault(require("../../matchers/lowestMatchedAncestor"));
9
+ var _matchedAncestors = _interopRequireDefault(require("../../matchers/matchedAncestors"));
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
12
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
13
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
14
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
15
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
16
+ function keyDownShiftTab(editor) {
17
+ if (!editor.selection) return;
18
+ if (Array.from(_slate.Editor.nodes(editor, (0, _matchedAncestors.default)(editor, 'list'))).length < 2) {
19
+ return;
20
+ }
21
+ _slate.Editor.withoutNormalizing(editor, () => {
22
+ _slate.Transforms.liftNodes(editor, _objectSpread(_objectSpread({}, (0, _lowestMatchedAncestor.default)(editor, 'list-item')), {}, {
23
+ split: true
24
+ }));
25
+ _slate.Transforms.liftNodes(editor, _objectSpread(_objectSpread({}, (0, _lowestMatchedAncestor.default)(editor, 'list-item')), {}, {
26
+ split: true
27
+ }));
28
+ });
29
+ _slate.Editor.normalize(editor);
30
+ }
31
+ var _default = keyDownShiftTab;
32
+ exports.default = _default;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _slate = require("slate");
8
+ var _isSelectionWithinNoninitialListItem = _interopRequireDefault(require("../locations/isSelectionWithinNoninitialListItem"));
9
+ var _lowestMatchedAncestor = _interopRequireDefault(require("../../matchers/lowestMatchedAncestor"));
10
+ var _moveListToListItem = _interopRequireDefault(require("../transforms/moveListToListItem"));
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
16
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
17
+ function keyDownTab(editor) {
18
+ if (!editor.selection) return;
19
+ if (!(0, _isSelectionWithinNoninitialListItem.default)(editor)) return;
20
+
21
+ // In a case where one edge of the range is within a nested list item, we need to even the selection to the outer most level
22
+ const {
23
+ focus,
24
+ anchor
25
+ } = editor.selection;
26
+ const pathLength = focus.path.length > anchor.path.length ? anchor.path.length : focus.path.length;
27
+ const at = {
28
+ anchor: {
29
+ offset: 0,
30
+ path: [...anchor.path.slice(0, pathLength - 2), 0, 0]
31
+ },
32
+ focus: {
33
+ offset: 0,
34
+ path: [...focus.path.slice(0, pathLength - 2), 0, 0]
35
+ }
36
+ };
37
+ _slate.Editor.withoutNormalizing(editor, () => {
38
+ // wrap selected list items into a new bulleted list
39
+ _slate.Transforms.wrapNodes(editor, {
40
+ type: 'bulleted-list'
41
+ }, _objectSpread(_objectSpread({}, (0, _lowestMatchedAncestor.default)(editor, 'list-item')), {}, {
42
+ at
43
+ }));
44
+
45
+ // get the new bulleted list position
46
+ const [, newListPath] = _slate.Editor.above(editor, (0, _lowestMatchedAncestor.default)(editor, 'list'));
47
+
48
+ // get the new parent node (previous list item)
49
+ const parentNode = _slate.Editor.previous(editor, {
50
+ at: newListPath
51
+ });
52
+ (0, _moveListToListItem.default)(editor, newListPath, parentNode);
53
+ });
54
+ _slate.Editor.normalize(editor);
55
+ }
56
+ var _default = keyDownTab;
57
+ exports.default = _default;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _isCursorInListItem = _interopRequireDefault(require("../locations/isCursorInListItem"));
8
+ var _getLowestAncestorList = _interopRequireDefault(require("../selectors/getLowestAncestorList"));
9
+ var _wrapSelectionInList = _interopRequireDefault(require("../transforms/wrapSelectionInList"));
10
+ var _changeListType = _interopRequireDefault(require("../transforms/changeListType"));
11
+ var _unwrapSelectionFromList = _interopRequireDefault(require("../transforms/unwrapSelectionFromList"));
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+ function toggleListType(editor, type) {
14
+ // list being active means that we are in a paragraph or heading whose parent is a list
15
+ // if no list is active, wrap selection in a new list of the given type
16
+ if (!(0, _isCursorInListItem.default)(editor)) {
17
+ return (0, _wrapSelectionInList.default)(editor, type);
18
+ }
19
+ // if a list is active but the type doesn't match, change selection to the given list type
20
+ const currentList = (0, _getLowestAncestorList.default)(editor);
21
+ if (currentList && currentList[0].type !== type) {
22
+ return (0, _changeListType.default)(editor, type);
23
+ }
24
+
25
+ // if a list is active and the type matches, unwrap selection from the list
26
+ return (0, _unwrapSelectionFromList.default)(editor);
27
+ }
28
+ var _default = toggleListType;
29
+ exports.default = _default;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _slate = require("slate");
8
+ function isCursorAtListItemStart(editor) {
9
+ if (!editor.selection) return false;
10
+ const {
11
+ offset,
12
+ path
13
+ } = _slate.Range.start(editor.selection);
14
+ // todo: this will break when there are marks inside list items, use Edior.isStart on first block parent instead (see isCursorAtEndOfParagraph)
15
+ return offset === 0 && path.length >= 2 && path[path.length - 1] === 0 && path[path.length - 2] === 0;
16
+ }
17
+ var _default = isCursorAtListItemStart;
18
+ exports.default = _default;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _slate = require("slate");
8
+ function isCursorAtNoninitialParagraphStart(editor) {
9
+ if (!editor.selection) return false;
10
+ const {
11
+ offset,
12
+ path
13
+ } = _slate.Range.start(editor.selection);
14
+ return offset == 0 && path.length > 2 && path[path.length - 2] > 0;
15
+ }
16
+ var _default = isCursorAtNoninitialParagraphStart;
17
+ exports.default = _default;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _getListContainedInListItem = _interopRequireDefault(require("../selectors/getListContainedInListItem"));
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ function isCursorInItemContainingNestedList(editor) {
10
+ const nestedList = (0, _getListContainedInListItem.default)(editor);
11
+ return !!nestedList && `${nestedList[0].type}`.endsWith('-list');
12
+ }
13
+ var _default = isCursorInItemContainingNestedList;
14
+ exports.default = _default;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _slate = require("slate");
8
+ function isCursorInListItem(editor, immediate) {
9
+ const {
10
+ selection
11
+ } = editor;
12
+ if (!selection) return false;
13
+ const [match] = Array.from(_slate.Editor.nodes(editor, {
14
+ match: n => _slate.Element.isElement(n) && _slate.Editor.isBlock(editor, n) && n.type !== 'paragraph' && (immediate || !`${n.type}`.startsWith('heading-')),
15
+ mode: 'lowest'
16
+ }));
17
+ return !!match && match[0].type === 'list-item';
18
+ }
19
+ var _default = isCursorInListItem;
20
+ exports.default = _default;