decap-cms-widget-markdown 3.2.0 → 3.4.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 +16 -0
- package/dist/decap-cms-widget-markdown.js +5 -5
- package/dist/decap-cms-widget-markdown.js.LICENSE.txt +5 -5
- package/dist/decap-cms-widget-markdown.js.map +1 -1
- package/dist/esm/MarkdownControl/RawEditor.js +36 -44
- package/dist/esm/MarkdownControl/Toolbar.js +75 -86
- package/dist/esm/MarkdownControl/ToolbarButton.js +16 -23
- package/dist/esm/MarkdownControl/VisualEditor.js +87 -96
- package/dist/esm/MarkdownControl/components/Shortcode.js +28 -40
- package/dist/esm/MarkdownControl/components/VoidBlock.js +18 -23
- package/dist/esm/MarkdownControl/index.js +54 -59
- package/dist/esm/MarkdownControl/plugins/BreakToDefaultBlock.js +3 -10
- package/dist/esm/MarkdownControl/plugins/CloseBlock.js +3 -10
- package/dist/esm/MarkdownControl/plugins/CommandsAndQueries.js +9 -16
- package/dist/esm/MarkdownControl/plugins/ForceInsert.js +1 -7
- package/dist/esm/MarkdownControl/plugins/Hotkey.js +4 -11
- package/dist/esm/MarkdownControl/plugins/LineBreak.js +3 -10
- package/dist/esm/MarkdownControl/plugins/Link.js +1 -7
- package/dist/esm/MarkdownControl/plugins/blocks/defaultEmptyBlock.js +1 -7
- package/dist/esm/MarkdownControl/plugins/blocks/events/keyDown.js +18 -25
- package/dist/esm/MarkdownControl/plugins/blocks/events/keyDownBackspace.js +11 -18
- package/dist/esm/MarkdownControl/plugins/blocks/events/keyDownEnter.js +9 -16
- package/dist/esm/MarkdownControl/plugins/blocks/events/toggleBlock.js +11 -18
- package/dist/esm/MarkdownControl/plugins/blocks/locations/areCurrentAndPreviousBlocksOfType.js +5 -12
- package/dist/esm/MarkdownControl/plugins/blocks/locations/getListTypeAtCursor.js +4 -11
- package/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorAtEndOfParagraph.js +5 -12
- package/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorAtStartOfBlockType.js +5 -12
- package/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorAtStartOfNonEmptyHeading.js +5 -11
- package/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorCollapsedAfterSoftBreak.js +4 -10
- package/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorInBlockType.js +4 -10
- package/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorInNonDefaultBlock.js +5 -11
- package/dist/esm/MarkdownControl/plugins/blocks/transforms/splitIntoParagraph.js +6 -12
- package/dist/esm/MarkdownControl/plugins/blocks/transforms/unwrapIfCursorAtStart.js +12 -19
- package/dist/esm/MarkdownControl/plugins/blocks/transforms/wrapListItemsInBlock.js +7 -13
- package/dist/esm/MarkdownControl/plugins/blocks/withBlocks.js +5 -12
- package/dist/esm/MarkdownControl/plugins/html/withHtml.js +29 -14
- package/dist/esm/MarkdownControl/plugins/inlines/events/keyDown.js +11 -18
- package/dist/esm/MarkdownControl/plugins/inlines/events/keyDownShiftEnter.js +5 -11
- package/dist/esm/MarkdownControl/plugins/inlines/events/toggleLink.js +8 -16
- package/dist/esm/MarkdownControl/plugins/inlines/events/toggleMark.js +6 -13
- package/dist/esm/MarkdownControl/plugins/inlines/locations/isMarkActive.js +3 -9
- package/dist/esm/MarkdownControl/plugins/inlines/selectors/getActiveLink.js +4 -11
- package/dist/esm/MarkdownControl/plugins/inlines/transforms/unwrapLink.js +4 -11
- package/dist/esm/MarkdownControl/plugins/inlines/transforms/wrapLink.js +11 -18
- package/dist/esm/MarkdownControl/plugins/inlines/withInlines.js +3 -10
- package/dist/esm/MarkdownControl/plugins/lists/events/keyDown.js +14 -21
- package/dist/esm/MarkdownControl/plugins/lists/events/keyDownBackspace.js +11 -18
- package/dist/esm/MarkdownControl/plugins/lists/events/keyDownEnter.js +18 -25
- package/dist/esm/MarkdownControl/plugins/lists/events/keyDownShiftTab.js +13 -23
- package/dist/esm/MarkdownControl/plugins/lists/events/keyDownTab.js +15 -26
- package/dist/esm/MarkdownControl/plugins/lists/events/toggleListType.js +11 -18
- package/dist/esm/MarkdownControl/plugins/lists/locations/isCursorAtListItemStart.js +3 -9
- package/dist/esm/MarkdownControl/plugins/lists/locations/isCursorAtNoninitialParagraphStart.js +3 -9
- package/dist/esm/MarkdownControl/plugins/lists/locations/isCursorInItemContainingNestedList.js +3 -10
- package/dist/esm/MarkdownControl/plugins/lists/locations/isCursorInListItem.js +4 -10
- package/dist/esm/MarkdownControl/plugins/lists/locations/isSelectionWithinNoninitialListItem.js +4 -10
- package/dist/esm/MarkdownControl/plugins/lists/selectors/getListContainedInListItem.js +5 -12
- package/dist/esm/MarkdownControl/plugins/lists/selectors/getLowestAncestorList.js +4 -11
- package/dist/esm/MarkdownControl/plugins/lists/selectors/getLowestAncestorQuote.js +4 -11
- package/dist/esm/MarkdownControl/plugins/lists/transforms/changeListType.js +8 -15
- package/dist/esm/MarkdownControl/plugins/lists/transforms/convertParagraphToListItem.js +8 -15
- package/dist/esm/MarkdownControl/plugins/lists/transforms/liftFirstMatchedParent.js +6 -16
- package/dist/esm/MarkdownControl/plugins/lists/transforms/liftListItem.js +13 -20
- package/dist/esm/MarkdownControl/plugins/lists/transforms/mergeWithPreviousListItem.js +6 -13
- package/dist/esm/MarkdownControl/plugins/lists/transforms/moveListToListItem.js +3 -9
- package/dist/esm/MarkdownControl/plugins/lists/transforms/splitListItem.js +12 -19
- package/dist/esm/MarkdownControl/plugins/lists/transforms/splitToNestedList.js +11 -18
- package/dist/esm/MarkdownControl/plugins/lists/transforms/unwrapFirstMatchedParent.js +4 -11
- package/dist/esm/MarkdownControl/plugins/lists/transforms/unwrapSelectionFromList.js +9 -20
- package/dist/esm/MarkdownControl/plugins/lists/transforms/wrapFirstMatchedParent.js +4 -11
- package/dist/esm/MarkdownControl/plugins/lists/transforms/wrapSelectionInList.js +8 -15
- package/dist/esm/MarkdownControl/plugins/lists/withLists.js +19 -26
- package/dist/esm/MarkdownControl/plugins/matchers/lowestMatchedAncestor.js +3 -10
- package/dist/esm/MarkdownControl/plugins/matchers/matchLink.js +3 -9
- package/dist/esm/MarkdownControl/plugins/matchers/matchedAncestors.js +3 -9
- package/dist/esm/MarkdownControl/plugins/shortcodes/insertShortcode.js +6 -13
- package/dist/esm/MarkdownControl/plugins/shortcodes/locations/isCursorInEmptyParagraph.js +5 -11
- package/dist/esm/MarkdownControl/plugins/shortcodes/withShortcodes.js +5 -12
- package/dist/esm/MarkdownControl/plugins/util.js +5 -12
- package/dist/esm/MarkdownControl/renderers.js +90 -102
- package/dist/esm/MarkdownPreview.js +21 -27
- package/dist/esm/index.js +13 -24
- package/dist/esm/regexHelper.js +6 -14
- package/dist/esm/schema.js +1 -7
- package/dist/esm/serializers/index.js +46 -57
- package/dist/esm/serializers/rehypePaperEmoji.js +1 -7
- package/dist/esm/serializers/remarkAllowHtmlEntities.js +1 -7
- package/dist/esm/serializers/remarkAssertParents.js +20 -29
- package/dist/esm/serializers/remarkEscapeMarkdownEntities.js +22 -28
- package/dist/esm/serializers/remarkImagesToText.js +4 -14
- package/dist/esm/serializers/remarkPaddedLinks.js +22 -32
- package/dist/esm/serializers/remarkRehypeShortcodes.js +17 -26
- package/dist/esm/serializers/remarkShortcodes.js +3 -11
- package/dist/esm/serializers/remarkSlate.js +65 -64
- package/dist/esm/serializers/remarkSquashReferences.js +15 -25
- package/dist/esm/serializers/remarkStripTrailingBreaks.js +3 -9
- package/dist/esm/serializers/remarkWrapHtml.js +3 -9
- package/dist/esm/serializers/slateRemark.js +69 -75
- package/dist/esm/styles.js +5 -12
- package/dist/esm/types.js +2 -8
- package/package.json +6 -6
- package/src/MarkdownControl/RawEditor.js +2 -1
- package/src/MarkdownControl/Toolbar.js +5 -0
- package/src/MarkdownControl/VisualEditor.js +3 -2
- package/src/MarkdownControl/components/Shortcode.js +1 -1
- package/src/MarkdownControl/index.js +9 -0
- package/src/MarkdownControl/plugins/CommandsAndQueries.js +3 -1
- package/src/MarkdownControl/plugins/html/withHtml.js +19 -0
- package/src/MarkdownControl/plugins/util.js +2 -1
- package/src/MarkdownPreview.js +5 -0
- package/src/__tests__/renderer.spec.js +84 -117
- package/src/regexHelper.js +1 -1
- package/src/serializers/__tests__/commonmark.spec.js +1 -1
- package/src/serializers/__tests__/slate.spec.js +1 -1
- package/src/serializers/index.js +1 -1
- package/src/serializers/remarkAssertParents.js +4 -1
- package/src/serializers/remarkEscapeMarkdownEntities.js +4 -1
- package/src/serializers/remarkPaddedLinks.js +7 -1
- package/src/serializers/remarkRehypeShortcodes.js +2 -1
- package/src/serializers/remarkSlate.js +6 -1
- package/src/serializers/remarkSquashReferences.js +2 -1
- package/src/serializers/slateRemark.js +6 -1
- package/src/__tests__/__snapshots__/renderer.spec.js.snap +0 -239
|
@@ -1,26 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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 }; }
|
|
1
|
+
import { Range, Transforms } from 'slate';
|
|
2
|
+
import getActiveLink from '../selectors/getActiveLink';
|
|
3
|
+
import matchLink from '../../matchers/matchLink';
|
|
11
4
|
function wrapLink(editor, url) {
|
|
12
|
-
if ((
|
|
13
|
-
|
|
5
|
+
if (getActiveLink(editor)) {
|
|
6
|
+
Transforms.setNodes(editor, {
|
|
14
7
|
data: {
|
|
15
8
|
url
|
|
16
9
|
}
|
|
17
|
-
}, (
|
|
10
|
+
}, matchLink());
|
|
18
11
|
return;
|
|
19
12
|
}
|
|
20
13
|
const {
|
|
21
14
|
selection
|
|
22
15
|
} = editor;
|
|
23
|
-
const isCollapsed = selection &&
|
|
16
|
+
const isCollapsed = selection && Range.isCollapsed(selection);
|
|
24
17
|
const link = {
|
|
25
18
|
type: 'link',
|
|
26
19
|
data: {
|
|
@@ -31,14 +24,14 @@ function wrapLink(editor, url) {
|
|
|
31
24
|
}] : []
|
|
32
25
|
};
|
|
33
26
|
if (isCollapsed) {
|
|
34
|
-
|
|
27
|
+
Transforms.insertNodes(editor, link);
|
|
35
28
|
} else {
|
|
36
|
-
|
|
29
|
+
Transforms.wrapNodes(editor, link, {
|
|
37
30
|
split: true
|
|
38
31
|
});
|
|
39
|
-
|
|
32
|
+
Transforms.collapse(editor, {
|
|
40
33
|
edge: 'end'
|
|
41
34
|
});
|
|
42
35
|
}
|
|
43
36
|
}
|
|
44
|
-
|
|
37
|
+
export default wrapLink;
|
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
|
|
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 }; }
|
|
1
|
+
import keyDown from './events/keyDown';
|
|
9
2
|
function withInlines(editor) {
|
|
10
3
|
const {
|
|
11
4
|
isInline,
|
|
@@ -16,7 +9,7 @@ function withInlines(editor) {
|
|
|
16
9
|
if (editor.keyDownHandlers === undefined) {
|
|
17
10
|
editor.keyDownHandlers = [];
|
|
18
11
|
}
|
|
19
|
-
editor.keyDownHandlers.push((event, editor) => (
|
|
12
|
+
editor.keyDownHandlers.push((event, editor) => keyDown(event, editor));
|
|
20
13
|
return editor;
|
|
21
14
|
}
|
|
22
|
-
|
|
15
|
+
export default withInlines;
|
|
@@ -1,37 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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 }; }
|
|
1
|
+
import isHotkey from 'is-hotkey';
|
|
2
|
+
import keyDownEnter from './keyDownEnter';
|
|
3
|
+
import keyDownTab from './keyDownTab';
|
|
4
|
+
import keyDownShiftTab from './keyDownShiftTab';
|
|
5
|
+
import keyDownBackspace from './keyDownBackspace';
|
|
13
6
|
function keyDown(event, editor) {
|
|
14
7
|
if (!editor.isListItem()) return;
|
|
15
|
-
if ((
|
|
8
|
+
if (isHotkey('enter', event)) {
|
|
16
9
|
event.preventDefault();
|
|
17
|
-
(
|
|
10
|
+
keyDownEnter(editor);
|
|
18
11
|
return false;
|
|
19
12
|
}
|
|
20
|
-
if ((
|
|
21
|
-
const eventIntercepted = (
|
|
13
|
+
if (isHotkey('backspace', event)) {
|
|
14
|
+
const eventIntercepted = keyDownBackspace(editor);
|
|
22
15
|
if (eventIntercepted === false) {
|
|
23
16
|
event.preventDefault();
|
|
24
17
|
return false;
|
|
25
18
|
}
|
|
26
19
|
return;
|
|
27
20
|
}
|
|
28
|
-
if ((
|
|
21
|
+
if (isHotkey('tab', event)) {
|
|
29
22
|
event.preventDefault();
|
|
30
|
-
return (
|
|
23
|
+
return keyDownTab(editor);
|
|
31
24
|
}
|
|
32
|
-
if ((
|
|
25
|
+
if (isHotkey('shift+tab', event)) {
|
|
33
26
|
event.preventDefault();
|
|
34
|
-
return (
|
|
27
|
+
return keyDownShiftTab(editor);
|
|
35
28
|
}
|
|
36
29
|
}
|
|
37
|
-
|
|
30
|
+
export default keyDown;
|
|
@@ -1,28 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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 }; }
|
|
1
|
+
import { Range } from 'slate';
|
|
2
|
+
import isCursorInListItem from '../locations/isCursorInListItem';
|
|
3
|
+
import isSelectionWithinNoninitialListItem from '../locations/isSelectionWithinNoninitialListItem';
|
|
4
|
+
import unwrapSelectionFromList from '../transforms/unwrapSelectionFromList';
|
|
5
|
+
import mergeWithPreviousListItem from '../transforms/mergeWithPreviousListItem';
|
|
6
|
+
import isCursorAtNoninitialParagraphStart from '../locations/isCursorAtNoninitialParagraphStart';
|
|
14
7
|
function keyDownBackspace(editor) {
|
|
15
8
|
if (!editor.selection) return;
|
|
16
9
|
|
|
17
10
|
// 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 (!
|
|
11
|
+
if (!Range.isCollapsed(editor.selection) || editor.selection.anchor.offset !== 0 || !isCursorInListItem(editor, true) || isCursorAtNoninitialParagraphStart(editor)) {
|
|
19
12
|
return;
|
|
20
13
|
}
|
|
21
|
-
if ((
|
|
22
|
-
(
|
|
14
|
+
if (isSelectionWithinNoninitialListItem(editor)) {
|
|
15
|
+
mergeWithPreviousListItem(editor);
|
|
23
16
|
} else {
|
|
24
|
-
(
|
|
17
|
+
unwrapSelectionFromList(editor);
|
|
25
18
|
}
|
|
26
19
|
return false;
|
|
27
20
|
}
|
|
28
|
-
|
|
21
|
+
export default keyDownBackspace;
|
|
@@ -1,43 +1,36 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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 }; }
|
|
1
|
+
import { Range, Transforms } from 'slate';
|
|
2
|
+
import splitListItem from '../transforms/splitListItem';
|
|
3
|
+
import isCursorAtListItemStart from '../locations/isCursorAtListItemStart';
|
|
4
|
+
import liftListItem from '../transforms/liftListItem';
|
|
5
|
+
import convertParagraphToListItem from '../transforms/convertParagraphToListItem';
|
|
6
|
+
import isCursorAtNoninitialParagraphStart from '../locations/isCursorAtNoninitialParagraphStart';
|
|
7
|
+
import splitToNestedList from '../transforms/splitToNestedList';
|
|
8
|
+
import getListContainedInListItem from '../selectors/getListContainedInListItem';
|
|
16
9
|
function keyDownEnter(editor) {
|
|
17
10
|
if (!editor.selection) return;
|
|
18
11
|
|
|
19
12
|
// Pressing enter will delete current selection in any case
|
|
20
|
-
if (
|
|
21
|
-
|
|
13
|
+
if (Range.isExpanded(editor.selection)) {
|
|
14
|
+
Transforms.delete(editor);
|
|
22
15
|
}
|
|
23
16
|
|
|
24
17
|
// if edge of selection is in the beginning of the first text node in list-item
|
|
25
|
-
if ((
|
|
26
|
-
return (
|
|
18
|
+
if (isCursorAtListItemStart(editor)) {
|
|
19
|
+
return liftListItem(editor);
|
|
27
20
|
}
|
|
28
21
|
|
|
29
22
|
// if list has a nested list, insert new item to the beginning of the nested list
|
|
30
|
-
const nestedList = (
|
|
23
|
+
const nestedList = getListContainedInListItem(editor);
|
|
31
24
|
if (!!nestedList && `${nestedList[0].type}`.endsWith('-list')) {
|
|
32
|
-
return (
|
|
25
|
+
return splitToNestedList(editor, nestedList[0].type);
|
|
33
26
|
}
|
|
34
27
|
|
|
35
28
|
// if a paragraph in a list and has previous siblings, convert it to a list item
|
|
36
|
-
if ((
|
|
37
|
-
return (
|
|
29
|
+
if (isCursorAtNoninitialParagraphStart(editor)) {
|
|
30
|
+
return convertParagraphToListItem(editor);
|
|
38
31
|
}
|
|
39
32
|
|
|
40
33
|
// otherwise create a new list item
|
|
41
|
-
(
|
|
34
|
+
splitListItem(editor);
|
|
42
35
|
}
|
|
43
|
-
|
|
36
|
+
export default keyDownEnter;
|
|
@@ -1,31 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
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(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
15
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
1
|
+
import { Editor, Transforms } from 'slate';
|
|
2
|
+
import lowestMatchedAncestor from '../../matchers/lowestMatchedAncestor';
|
|
3
|
+
import matchedAncestors from '../../matchers/matchedAncestors';
|
|
16
4
|
function keyDownShiftTab(editor) {
|
|
17
5
|
if (!editor.selection) return;
|
|
18
|
-
if (Array.from(
|
|
6
|
+
if (Array.from(Editor.nodes(editor, matchedAncestors(editor, 'list'))).length < 2) {
|
|
19
7
|
return;
|
|
20
8
|
}
|
|
21
|
-
|
|
22
|
-
|
|
9
|
+
Editor.withoutNormalizing(editor, () => {
|
|
10
|
+
Transforms.liftNodes(editor, {
|
|
11
|
+
...lowestMatchedAncestor(editor, 'list-item'),
|
|
23
12
|
split: true
|
|
24
|
-
})
|
|
25
|
-
|
|
13
|
+
});
|
|
14
|
+
Transforms.liftNodes(editor, {
|
|
15
|
+
...lowestMatchedAncestor(editor, 'list-item'),
|
|
26
16
|
split: true
|
|
27
|
-
})
|
|
17
|
+
});
|
|
28
18
|
});
|
|
29
|
-
|
|
19
|
+
Editor.normalize(editor);
|
|
30
20
|
}
|
|
31
|
-
|
|
21
|
+
export default keyDownShiftTab;
|
|
@@ -1,22 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
13
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
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(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
16
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
1
|
+
import { Editor, Transforms } from 'slate';
|
|
2
|
+
import isSelectionWithinNoninitialListItem from '../locations/isSelectionWithinNoninitialListItem';
|
|
3
|
+
import lowestMatchedAncestor from '../../matchers/lowestMatchedAncestor';
|
|
4
|
+
import moveListToListItem from '../transforms/moveListToListItem';
|
|
17
5
|
function keyDownTab(editor) {
|
|
18
6
|
if (!editor.selection) return;
|
|
19
|
-
if (!(
|
|
7
|
+
if (!isSelectionWithinNoninitialListItem(editor)) return;
|
|
20
8
|
|
|
21
9
|
// 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
10
|
const {
|
|
@@ -34,23 +22,24 @@ function keyDownTab(editor) {
|
|
|
34
22
|
path: [...focus.path.slice(0, pathLength - 2), 0, 0]
|
|
35
23
|
}
|
|
36
24
|
};
|
|
37
|
-
|
|
25
|
+
Editor.withoutNormalizing(editor, () => {
|
|
38
26
|
// wrap selected list items into a new bulleted list
|
|
39
|
-
|
|
27
|
+
Transforms.wrapNodes(editor, {
|
|
40
28
|
type: 'bulleted-list'
|
|
41
|
-
},
|
|
29
|
+
}, {
|
|
30
|
+
...lowestMatchedAncestor(editor, 'list-item'),
|
|
42
31
|
at
|
|
43
|
-
})
|
|
32
|
+
});
|
|
44
33
|
|
|
45
34
|
// get the new bulleted list position
|
|
46
|
-
const [, newListPath] =
|
|
35
|
+
const [, newListPath] = Editor.above(editor, lowestMatchedAncestor(editor, 'list'));
|
|
47
36
|
|
|
48
37
|
// get the new parent node (previous list item)
|
|
49
|
-
const parentNode =
|
|
38
|
+
const parentNode = Editor.previous(editor, {
|
|
50
39
|
at: newListPath
|
|
51
40
|
});
|
|
52
|
-
(
|
|
41
|
+
moveListToListItem(editor, newListPath, parentNode);
|
|
53
42
|
});
|
|
54
|
-
|
|
43
|
+
Editor.normalize(editor);
|
|
55
44
|
}
|
|
56
|
-
|
|
45
|
+
export default keyDownTab;
|
|
@@ -1,28 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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 }; }
|
|
1
|
+
import isCursorInListItem from '../locations/isCursorInListItem';
|
|
2
|
+
import getLowestAncestorList from '../selectors/getLowestAncestorList';
|
|
3
|
+
import wrapSelectionInList from '../transforms/wrapSelectionInList';
|
|
4
|
+
import changeListType from '../transforms/changeListType';
|
|
5
|
+
import unwrapSelectionFromList from '../transforms/unwrapSelectionFromList';
|
|
13
6
|
function toggleListType(editor, type) {
|
|
14
7
|
// list being active means that we are in a paragraph or heading whose parent is a list
|
|
15
8
|
// if no list is active, wrap selection in a new list of the given type
|
|
16
|
-
if (!(
|
|
17
|
-
return (
|
|
9
|
+
if (!isCursorInListItem(editor)) {
|
|
10
|
+
return wrapSelectionInList(editor, type);
|
|
18
11
|
}
|
|
19
12
|
// if a list is active but the type doesn't match, change selection to the given list type
|
|
20
|
-
const currentList = (
|
|
13
|
+
const currentList = getLowestAncestorList(editor);
|
|
21
14
|
if (currentList && currentList[0].type !== type) {
|
|
22
|
-
return (
|
|
15
|
+
return changeListType(editor, type);
|
|
23
16
|
}
|
|
24
17
|
|
|
25
18
|
// if a list is active and the type matches, unwrap selection from the list
|
|
26
|
-
return (
|
|
19
|
+
return unwrapSelectionFromList(editor);
|
|
27
20
|
}
|
|
28
|
-
|
|
21
|
+
export default toggleListType;
|
|
@@ -1,17 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _slate = require("slate");
|
|
1
|
+
import { Range } from 'slate';
|
|
8
2
|
function isCursorAtListItemStart(editor) {
|
|
9
3
|
if (!editor.selection) return false;
|
|
10
4
|
const {
|
|
11
5
|
offset,
|
|
12
6
|
path
|
|
13
|
-
} =
|
|
7
|
+
} = Range.start(editor.selection);
|
|
14
8
|
// todo: this will break when there are marks inside list items, use Edior.isStart on first block parent instead (see isCursorAtEndOfParagraph)
|
|
15
9
|
return offset === 0 && path.length >= 2 && path[path.length - 1] === 0 && path[path.length - 2] === 0;
|
|
16
10
|
}
|
|
17
|
-
|
|
11
|
+
export default isCursorAtListItemStart;
|
package/dist/esm/MarkdownControl/plugins/lists/locations/isCursorAtNoninitialParagraphStart.js
CHANGED
|
@@ -1,16 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _slate = require("slate");
|
|
1
|
+
import { Range } from 'slate';
|
|
8
2
|
function isCursorAtNoninitialParagraphStart(editor) {
|
|
9
3
|
if (!editor.selection) return false;
|
|
10
4
|
const {
|
|
11
5
|
offset,
|
|
12
6
|
path
|
|
13
|
-
} =
|
|
7
|
+
} = Range.start(editor.selection);
|
|
14
8
|
return offset == 0 && path.length > 2 && path[path.length - 2] > 0;
|
|
15
9
|
}
|
|
16
|
-
|
|
10
|
+
export default isCursorAtNoninitialParagraphStart;
|
package/dist/esm/MarkdownControl/plugins/lists/locations/isCursorInItemContainingNestedList.js
CHANGED
|
@@ -1,13 +1,6 @@
|
|
|
1
|
-
|
|
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 }; }
|
|
1
|
+
import getListContainedInListItem from '../selectors/getListContainedInListItem';
|
|
9
2
|
function isCursorInItemContainingNestedList(editor) {
|
|
10
|
-
const nestedList = (
|
|
3
|
+
const nestedList = getListContainedInListItem(editor);
|
|
11
4
|
return !!nestedList && `${nestedList[0].type}`.endsWith('-list');
|
|
12
5
|
}
|
|
13
|
-
|
|
6
|
+
export default isCursorInItemContainingNestedList;
|
|
@@ -1,19 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _slate = require("slate");
|
|
1
|
+
import { Editor, Element } from 'slate';
|
|
8
2
|
function isCursorInListItem(editor, immediate) {
|
|
9
3
|
const {
|
|
10
4
|
selection
|
|
11
5
|
} = editor;
|
|
12
6
|
if (!selection) return false;
|
|
13
|
-
const [match] = Array.from(
|
|
14
|
-
match: n =>
|
|
7
|
+
const [match] = Array.from(Editor.nodes(editor, {
|
|
8
|
+
match: n => Element.isElement(n) && Editor.isBlock(editor, n) && n.type !== 'paragraph' && (immediate || !`${n.type}`.startsWith('heading-')),
|
|
15
9
|
mode: 'lowest'
|
|
16
10
|
}));
|
|
17
11
|
return !!match && match[0].type === 'list-item';
|
|
18
12
|
}
|
|
19
|
-
|
|
13
|
+
export default isCursorInListItem;
|
package/dist/esm/MarkdownControl/plugins/lists/locations/isSelectionWithinNoninitialListItem.js
CHANGED
|
@@ -1,17 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _slate = require("slate");
|
|
1
|
+
import { Editor, Range } from 'slate';
|
|
8
2
|
function isSelectionWithinNoninitialListItem(editor) {
|
|
9
3
|
if (!editor.selection) return false;
|
|
10
|
-
const [, path] =
|
|
4
|
+
const [, path] = Editor.above(editor, {
|
|
11
5
|
match: n => n.type === 'list-item',
|
|
12
6
|
mode: 'lowest',
|
|
13
|
-
at:
|
|
7
|
+
at: Range.start(editor.selection)
|
|
14
8
|
});
|
|
15
9
|
if (path && path.length > 0 && path[path.length - 1] > 0) return true;
|
|
16
10
|
}
|
|
17
|
-
|
|
11
|
+
export default isSelectionWithinNoninitialListItem;
|
|
@@ -1,17 +1,10 @@
|
|
|
1
|
-
|
|
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 }; }
|
|
1
|
+
import { Editor } from 'slate';
|
|
2
|
+
import lowestMatchedAncestor from '../../matchers/lowestMatchedAncestor';
|
|
10
3
|
function getListContainedInListItem(editor) {
|
|
11
4
|
if (!editor.selection) return false;
|
|
12
|
-
const [, paragraphPath] =
|
|
13
|
-
return
|
|
5
|
+
const [, paragraphPath] = Editor.above(editor, lowestMatchedAncestor(editor, 'paragraph'));
|
|
6
|
+
return Editor.next(editor, {
|
|
14
7
|
at: paragraphPath
|
|
15
8
|
});
|
|
16
9
|
}
|
|
17
|
-
|
|
10
|
+
export default getListContainedInListItem;
|
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
|
|
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 }; }
|
|
1
|
+
import { Editor } from 'slate';
|
|
2
|
+
import lowestMatchedAncestor from '../../matchers/lowestMatchedAncestor';
|
|
10
3
|
function getLowestAncestorList(editor) {
|
|
11
4
|
if (!editor.selection) return false;
|
|
12
|
-
return
|
|
5
|
+
return Editor.above(editor, lowestMatchedAncestor(editor, 'list'));
|
|
13
6
|
}
|
|
14
|
-
|
|
7
|
+
export default getLowestAncestorList;
|
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
|
|
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 }; }
|
|
1
|
+
import { Editor } from 'slate';
|
|
2
|
+
import lowestMatchedAncestor from '../../matchers/lowestMatchedAncestor';
|
|
10
3
|
function getLowestAncestorQuote(editor) {
|
|
11
4
|
if (!editor.selection) return false;
|
|
12
|
-
return
|
|
5
|
+
return Editor.above(editor, lowestMatchedAncestor(editor, 'quote'));
|
|
13
6
|
}
|
|
14
|
-
|
|
7
|
+
export default getLowestAncestorQuote;
|
|
@@ -1,23 +1,16 @@
|
|
|
1
|
-
|
|
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 }; }
|
|
1
|
+
import { Editor, Transforms } from 'slate';
|
|
2
|
+
import lowestMatchedAncestor from '../../matchers/lowestMatchedAncestor';
|
|
10
3
|
function changeListType(editor, type) {
|
|
11
|
-
|
|
4
|
+
Editor.withoutNormalizing(editor, () => {
|
|
12
5
|
// wrap selected list items into new type
|
|
13
|
-
|
|
6
|
+
Transforms.wrapNodes(editor, {
|
|
14
7
|
type
|
|
15
|
-
}, (
|
|
8
|
+
}, lowestMatchedAncestor(editor, 'list-item'));
|
|
16
9
|
// lift the new list of the current list, split if necessary
|
|
17
|
-
|
|
10
|
+
Transforms.liftNodes(editor, lowestMatchedAncestor(editor, type));
|
|
18
11
|
});
|
|
19
|
-
|
|
12
|
+
Editor.normalize(editor, {
|
|
20
13
|
force: true
|
|
21
14
|
});
|
|
22
15
|
}
|
|
23
|
-
|
|
16
|
+
export default changeListType;
|
|
@@ -1,26 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _slate = require("slate");
|
|
8
|
-
var _liftFirstMatchedParent = _interopRequireDefault(require("./liftFirstMatchedParent"));
|
|
9
|
-
var _wrapFirstMatchedParent = _interopRequireDefault(require("./wrapFirstMatchedParent"));
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
1
|
+
import { Editor } from 'slate';
|
|
2
|
+
import liftFirstMatchedParent from './liftFirstMatchedParent';
|
|
3
|
+
import wrapFirstMatchedParent from './wrapFirstMatchedParent';
|
|
11
4
|
function convertParagraphToListItem(editor) {
|
|
12
|
-
|
|
5
|
+
Editor.withoutNormalizing(editor, () => {
|
|
13
6
|
// wrap the paragraph in a list item
|
|
14
|
-
(
|
|
7
|
+
wrapFirstMatchedParent(editor, 'paragraph', {
|
|
15
8
|
type: 'list-item'
|
|
16
9
|
});
|
|
17
10
|
// lift the new list-item of the current list-item, split if necessary
|
|
18
|
-
(
|
|
11
|
+
liftFirstMatchedParent(editor, 'list-item', {
|
|
19
12
|
split: true
|
|
20
13
|
});
|
|
21
14
|
});
|
|
22
|
-
|
|
15
|
+
Editor.normalize(editor, {
|
|
23
16
|
force: true
|
|
24
17
|
});
|
|
25
18
|
}
|
|
26
|
-
|
|
19
|
+
export default convertParagraphToListItem;
|