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.
- package/CHANGELOG.md +820 -0
- package/LICENSE +22 -0
- package/README.md +9 -0
- package/dist/decap-cms-widget-markdown.js +9 -0
- package/dist/decap-cms-widget-markdown.js.LICENSE.txt +37 -0
- package/dist/decap-cms-widget-markdown.js.map +1 -0
- package/dist/esm/MarkdownControl/RawEditor.js +106 -0
- package/dist/esm/MarkdownControl/Toolbar.js +216 -0
- package/dist/esm/MarkdownControl/ToolbarButton.js +43 -0
- package/dist/esm/MarkdownControl/VisualEditor.js +268 -0
- package/dist/esm/MarkdownControl/components/Shortcode.js +78 -0
- package/dist/esm/MarkdownControl/components/VoidBlock.js +55 -0
- package/dist/esm/MarkdownControl/index.js +129 -0
- package/dist/esm/MarkdownControl/plugins/BreakToDefaultBlock.js +34 -0
- package/dist/esm/MarkdownControl/plugins/CloseBlock.js +36 -0
- package/dist/esm/MarkdownControl/plugins/CommandsAndQueries.js +188 -0
- package/dist/esm/MarkdownControl/plugins/ForceInsert.js +49 -0
- package/dist/esm/MarkdownControl/plugins/Hotkey.js +35 -0
- package/dist/esm/MarkdownControl/plugins/LineBreak.js +21 -0
- package/dist/esm/MarkdownControl/plugins/Link.js +56 -0
- package/dist/esm/MarkdownControl/plugins/blocks/defaultEmptyBlock.js +16 -0
- package/dist/esm/MarkdownControl/plugins/blocks/events/keyDown.js +47 -0
- package/dist/esm/MarkdownControl/plugins/blocks/events/keyDownBackspace.js +26 -0
- package/dist/esm/MarkdownControl/plugins/blocks/events/keyDownEnter.js +28 -0
- package/dist/esm/MarkdownControl/plugins/blocks/events/toggleBlock.js +46 -0
- package/dist/esm/MarkdownControl/plugins/blocks/locations/areCurrentAndPreviousBlocksOfType.js +20 -0
- package/dist/esm/MarkdownControl/plugins/blocks/locations/getListTypeAtCursor.js +16 -0
- package/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorAtEndOfParagraph.js +19 -0
- package/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorAtStartOfBlockType.js +19 -0
- package/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorAtStartOfNonEmptyHeading.js +20 -0
- package/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorInBlockType.js +20 -0
- package/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorInNonDefaultBlock.js +20 -0
- package/dist/esm/MarkdownControl/plugins/blocks/transforms/splitIntoParagraph.js +23 -0
- package/dist/esm/MarkdownControl/plugins/blocks/transforms/unwrapIfCursorAtStart.js +36 -0
- package/dist/esm/MarkdownControl/plugins/blocks/transforms/wrapListItemsInBlock.js +27 -0
- package/dist/esm/MarkdownControl/plugins/blocks/withBlocks.js +19 -0
- package/dist/esm/MarkdownControl/plugins/inlines/events/keyDown.js +39 -0
- package/dist/esm/MarkdownControl/plugins/inlines/events/keyDownShiftEnter.js +27 -0
- package/dist/esm/MarkdownControl/plugins/inlines/events/toggleLink.js +24 -0
- package/dist/esm/MarkdownControl/plugins/inlines/events/toggleMark.js +18 -0
- package/dist/esm/MarkdownControl/plugins/inlines/locations/isMarkActive.js +17 -0
- package/dist/esm/MarkdownControl/plugins/inlines/selectors/getActiveLink.js +15 -0
- package/dist/esm/MarkdownControl/plugins/inlines/transforms/unwrapLink.js +14 -0
- package/dist/esm/MarkdownControl/plugins/inlines/transforms/wrapLink.js +45 -0
- package/dist/esm/MarkdownControl/plugins/inlines/withInlines.js +23 -0
- package/dist/esm/MarkdownControl/plugins/lists/events/keyDown.js +38 -0
- package/dist/esm/MarkdownControl/plugins/lists/events/keyDownBackspace.js +29 -0
- package/dist/esm/MarkdownControl/plugins/lists/events/keyDownEnter.js +44 -0
- package/dist/esm/MarkdownControl/plugins/lists/events/keyDownShiftTab.js +32 -0
- package/dist/esm/MarkdownControl/plugins/lists/events/keyDownTab.js +57 -0
- package/dist/esm/MarkdownControl/plugins/lists/events/toggleListType.js +29 -0
- package/dist/esm/MarkdownControl/plugins/lists/locations/isCursorAtListItemStart.js +18 -0
- package/dist/esm/MarkdownControl/plugins/lists/locations/isCursorAtNoninitialParagraphStart.js +17 -0
- package/dist/esm/MarkdownControl/plugins/lists/locations/isCursorInItemContainingNestedList.js +14 -0
- package/dist/esm/MarkdownControl/plugins/lists/locations/isCursorInListItem.js +20 -0
- package/dist/esm/MarkdownControl/plugins/lists/locations/isSelectionWithinNoninitialListItem.js +18 -0
- package/dist/esm/MarkdownControl/plugins/lists/selectors/getListContainedInListItem.js +18 -0
- package/dist/esm/MarkdownControl/plugins/lists/selectors/getLowestAncestorList.js +15 -0
- package/dist/esm/MarkdownControl/plugins/lists/selectors/getLowestAncestorQuote.js +15 -0
- package/dist/esm/MarkdownControl/plugins/lists/transforms/changeListType.js +24 -0
- package/dist/esm/MarkdownControl/plugins/lists/transforms/convertParagraphToListItem.js +27 -0
- package/dist/esm/MarkdownControl/plugins/lists/transforms/liftFirstMatchedParent.js +20 -0
- package/dist/esm/MarkdownControl/plugins/lists/transforms/liftListItem.js +37 -0
- package/dist/esm/MarkdownControl/plugins/lists/transforms/mergeWithPreviousListItem.js +19 -0
- package/dist/esm/MarkdownControl/plugins/lists/transforms/moveListToListItem.js +18 -0
- package/dist/esm/MarkdownControl/plugins/lists/transforms/splitListItem.js +37 -0
- package/dist/esm/MarkdownControl/plugins/lists/transforms/splitToNestedList.js +37 -0
- package/dist/esm/MarkdownControl/plugins/lists/transforms/unwrapFirstMatchedParent.js +14 -0
- package/dist/esm/MarkdownControl/plugins/lists/transforms/unwrapSelectionFromList.js +25 -0
- package/dist/esm/MarkdownControl/plugins/lists/transforms/wrapFirstMatchedParent.js +14 -0
- package/dist/esm/MarkdownControl/plugins/lists/transforms/wrapSelectionInList.js +27 -0
- package/dist/esm/MarkdownControl/plugins/lists/withLists.js +67 -0
- package/dist/esm/MarkdownControl/plugins/matchers/lowestMatchedAncestor.js +13 -0
- package/dist/esm/MarkdownControl/plugins/matchers/matchLink.js +14 -0
- package/dist/esm/MarkdownControl/plugins/matchers/matchedAncestors.js +15 -0
- package/dist/esm/MarkdownControl/plugins/shortcodes/insertShortcode.js +35 -0
- package/dist/esm/MarkdownControl/plugins/shortcodes/locations/isCursorInEmptyParagraph.js +20 -0
- package/dist/esm/MarkdownControl/plugins/shortcodes/withShortcodes.js +30 -0
- package/dist/esm/MarkdownControl/plugins/util.js +18 -0
- package/dist/esm/MarkdownControl/renderers.js +326 -0
- package/dist/esm/MarkdownPreview.js +47 -0
- package/dist/esm/index.js +31 -0
- package/dist/esm/regexHelper.js +151 -0
- package/dist/esm/schema.js +35 -0
- package/dist/esm/serializers/index.js +233 -0
- package/dist/esm/serializers/rehypePaperEmoji.js +24 -0
- package/dist/esm/serializers/remarkAllowHtmlEntities.js +55 -0
- package/dist/esm/serializers/remarkAssertParents.js +89 -0
- package/dist/esm/serializers/remarkEscapeMarkdownEntities.js +271 -0
- package/dist/esm/serializers/remarkImagesToText.js +41 -0
- package/dist/esm/serializers/remarkPaddedLinks.js +127 -0
- package/dist/esm/serializers/remarkRehypeShortcodes.js +93 -0
- package/dist/esm/serializers/remarkShortcodes.js +123 -0
- package/dist/esm/serializers/remarkSlate.js +518 -0
- package/dist/esm/serializers/remarkSquashReferences.js +88 -0
- package/dist/esm/serializers/remarkStripTrailingBreaks.js +61 -0
- package/dist/esm/serializers/remarkWrapHtml.js +24 -0
- package/dist/esm/serializers/slateRemark.js +512 -0
- package/dist/esm/styles.js +18 -0
- package/dist/esm/types.js +10 -0
- package/package.json +64 -0
- package/src/MarkdownControl/RawEditor.js +100 -0
- package/src/MarkdownControl/Toolbar.js +278 -0
- package/src/MarkdownControl/ToolbarButton.js +48 -0
- package/src/MarkdownControl/VisualEditor.js +293 -0
- package/src/MarkdownControl/__tests__/VisualEditor.spec.js +56 -0
- package/src/MarkdownControl/__tests__/__snapshots__/parser.spec.js.snap +543 -0
- package/src/MarkdownControl/__tests__/parser.spec.js +668 -0
- package/src/MarkdownControl/components/Shortcode.js +74 -0
- package/src/MarkdownControl/components/VoidBlock.js +58 -0
- package/src/MarkdownControl/index.js +125 -0
- package/src/MarkdownControl/plugins/BreakToDefaultBlock.js +23 -0
- package/src/MarkdownControl/plugins/CloseBlock.js +25 -0
- package/src/MarkdownControl/plugins/CommandsAndQueries.js +156 -0
- package/src/MarkdownControl/plugins/ForceInsert.js +38 -0
- package/src/MarkdownControl/plugins/Hotkey.js +29 -0
- package/src/MarkdownControl/plugins/LineBreak.js +15 -0
- package/src/MarkdownControl/plugins/Link.js +40 -0
- package/src/MarkdownControl/plugins/blocks/defaultEmptyBlock.js +8 -0
- package/src/MarkdownControl/plugins/blocks/events/keyDown.js +47 -0
- package/src/MarkdownControl/plugins/blocks/events/keyDownBackspace.js +27 -0
- package/src/MarkdownControl/plugins/blocks/events/keyDownEnter.js +26 -0
- package/src/MarkdownControl/plugins/blocks/events/toggleBlock.js +39 -0
- package/src/MarkdownControl/plugins/blocks/locations/areCurrentAndPreviousBlocksOfType.js +15 -0
- package/src/MarkdownControl/plugins/blocks/locations/getListTypeAtCursor.js +11 -0
- package/src/MarkdownControl/plugins/blocks/locations/isCursorAtEndOfParagraph.js +14 -0
- package/src/MarkdownControl/plugins/blocks/locations/isCursorAtStartOfBlockType.js +14 -0
- package/src/MarkdownControl/plugins/blocks/locations/isCursorAtStartOfNonEmptyHeading.js +22 -0
- package/src/MarkdownControl/plugins/blocks/locations/isCursorInBlockType.js +27 -0
- package/src/MarkdownControl/plugins/blocks/locations/isCursorInNonDefaultBlock.js +17 -0
- package/src/MarkdownControl/plugins/blocks/transforms/splitIntoParagraph.js +13 -0
- package/src/MarkdownControl/plugins/blocks/transforms/unwrapIfCursorAtStart.js +30 -0
- package/src/MarkdownControl/plugins/blocks/transforms/wrapListItemsInBlock.js +11 -0
- package/src/MarkdownControl/plugins/blocks/withBlocks.js +15 -0
- package/src/MarkdownControl/plugins/inlines/events/keyDown.js +38 -0
- package/src/MarkdownControl/plugins/inlines/events/keyDownShiftEnter.js +28 -0
- package/src/MarkdownControl/plugins/inlines/events/toggleLink.js +17 -0
- package/src/MarkdownControl/plugins/inlines/events/toggleMark.js +13 -0
- package/src/MarkdownControl/plugins/inlines/locations/isMarkActive.js +11 -0
- package/src/MarkdownControl/plugins/inlines/selectors/getActiveLink.js +10 -0
- package/src/MarkdownControl/plugins/inlines/transforms/unwrapLink.js +9 -0
- package/src/MarkdownControl/plugins/inlines/transforms/wrapLink.js +30 -0
- package/src/MarkdownControl/plugins/inlines/withInlines.js +20 -0
- package/src/MarkdownControl/plugins/lists/events/keyDown.js +34 -0
- package/src/MarkdownControl/plugins/lists/events/keyDownBackspace.js +31 -0
- package/src/MarkdownControl/plugins/lists/events/keyDownEnter.js +39 -0
- package/src/MarkdownControl/plugins/lists/events/keyDownShiftTab.js +27 -0
- package/src/MarkdownControl/plugins/lists/events/keyDownTab.js +55 -0
- package/src/MarkdownControl/plugins/lists/events/toggleListType.js +23 -0
- package/src/MarkdownControl/plugins/lists/locations/isCursorAtListItemStart.js +13 -0
- package/src/MarkdownControl/plugins/lists/locations/isCursorAtNoninitialParagraphStart.js +11 -0
- package/src/MarkdownControl/plugins/lists/locations/isCursorInItemContainingNestedList.js +9 -0
- package/src/MarkdownControl/plugins/lists/locations/isCursorInListItem.js +21 -0
- package/src/MarkdownControl/plugins/lists/locations/isSelectionWithinNoninitialListItem.js +14 -0
- package/src/MarkdownControl/plugins/lists/selectors/getListContainedInListItem.js +12 -0
- package/src/MarkdownControl/plugins/lists/selectors/getLowestAncestorList.js +11 -0
- package/src/MarkdownControl/plugins/lists/selectors/getLowestAncestorQuote.js +11 -0
- package/src/MarkdownControl/plugins/lists/transforms/changeListType.js +16 -0
- package/src/MarkdownControl/plugins/lists/transforms/convertParagraphToListItem.js +19 -0
- package/src/MarkdownControl/plugins/lists/transforms/liftFirstMatchedParent.js +11 -0
- package/src/MarkdownControl/plugins/lists/transforms/liftListItem.js +30 -0
- package/src/MarkdownControl/plugins/lists/transforms/mergeWithPreviousListItem.js +13 -0
- package/src/MarkdownControl/plugins/lists/transforms/moveListToListItem.js +13 -0
- package/src/MarkdownControl/plugins/lists/transforms/splitListItem.js +33 -0
- package/src/MarkdownControl/plugins/lists/transforms/splitToNestedList.js +33 -0
- package/src/MarkdownControl/plugins/lists/transforms/unwrapFirstMatchedParent.js +9 -0
- package/src/MarkdownControl/plugins/lists/transforms/unwrapSelectionFromList.js +14 -0
- package/src/MarkdownControl/plugins/lists/transforms/wrapFirstMatchedParent.js +9 -0
- package/src/MarkdownControl/plugins/lists/transforms/wrapSelectionInList.js +17 -0
- package/src/MarkdownControl/plugins/lists/withLists.js +66 -0
- package/src/MarkdownControl/plugins/matchers/lowestMatchedAncestor.js +6 -0
- package/src/MarkdownControl/plugins/matchers/matchLink.js +9 -0
- package/src/MarkdownControl/plugins/matchers/matchedAncestors.js +18 -0
- package/src/MarkdownControl/plugins/shortcodes/insertShortcode.js +34 -0
- package/src/MarkdownControl/plugins/shortcodes/locations/isCursorInEmptyParagraph.js +17 -0
- package/src/MarkdownControl/plugins/shortcodes/withShortcodes.js +26 -0
- package/src/MarkdownControl/plugins/util.js +11 -0
- package/src/MarkdownControl/renderers.js +352 -0
- package/src/MarkdownPreview.js +27 -0
- package/src/__tests__/__snapshots__/renderer.spec.js.snap +239 -0
- package/src/__tests__/renderer.spec.js +261 -0
- package/src/index.js +16 -0
- package/src/regexHelper.js +137 -0
- package/src/schema.js +35 -0
- package/src/serializers/__tests__/__fixtures__/commonmarkExpected.json +625 -0
- package/src/serializers/__tests__/__fixtures__/duplicate_marks_github_issue_3280.md +1 -0
- package/src/serializers/__tests__/commonmark.spec.js +110 -0
- package/src/serializers/__tests__/index.spec.js +52 -0
- package/src/serializers/__tests__/remarkAllowHtmlEntities.spec.js +25 -0
- package/src/serializers/__tests__/remarkAssertParents.spec.js +171 -0
- package/src/serializers/__tests__/remarkEscapeMarkdownEntities.spec.js +84 -0
- package/src/serializers/__tests__/remarkPaddedLinks.spec.js +43 -0
- package/src/serializers/__tests__/remarkPlugins.spec.js +299 -0
- package/src/serializers/__tests__/remarkShortcodes.spec.js +106 -0
- package/src/serializers/__tests__/remarkSlate.spec.js +67 -0
- package/src/serializers/__tests__/remarkStripTrailingBreaks.spec.js +23 -0
- package/src/serializers/__tests__/slate.spec.js +300 -0
- package/src/serializers/index.js +226 -0
- package/src/serializers/rehypePaperEmoji.js +16 -0
- package/src/serializers/remarkAllowHtmlEntities.js +58 -0
- package/src/serializers/remarkAssertParents.js +83 -0
- package/src/serializers/remarkEscapeMarkdownEntities.js +269 -0
- package/src/serializers/remarkImagesToText.js +26 -0
- package/src/serializers/remarkPaddedLinks.js +120 -0
- package/src/serializers/remarkRehypeShortcodes.js +67 -0
- package/src/serializers/remarkShortcodes.js +106 -0
- package/src/serializers/remarkSlate.js +425 -0
- package/src/serializers/remarkSquashReferences.js +73 -0
- package/src/serializers/remarkStripTrailingBreaks.js +56 -0
- package/src/serializers/remarkWrapHtml.js +20 -0
- package/src/serializers/slateRemark.js +468 -0
- package/src/styles.js +13 -0
- package/src/types.js +3 -0
- package/test-helpers/h.js +32 -0
- 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;
|
package/dist/esm/MarkdownControl/plugins/lists/locations/isCursorAtNoninitialParagraphStart.js
ADDED
|
@@ -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;
|
package/dist/esm/MarkdownControl/plugins/lists/locations/isCursorInItemContainingNestedList.js
ADDED
|
@@ -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;
|