decap-cms-widget-markdown 3.3.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 +6 -0
- package/dist/decap-cms-widget-markdown.js +6 -6
- 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 +1 -2
- package/dist/esm/MarkdownControl/Toolbar.js +43 -47
- package/dist/esm/MarkdownControl/VisualEditor.js +6 -8
- package/dist/esm/MarkdownControl/components/Shortcode.js +6 -11
- package/dist/esm/MarkdownControl/components/VoidBlock.js +1 -1
- package/dist/esm/MarkdownControl/index.js +34 -34
- package/dist/esm/MarkdownControl/plugins/CommandsAndQueries.js +8 -8
- package/dist/esm/MarkdownControl/plugins/inlines/events/toggleLink.js +1 -2
- package/dist/esm/MarkdownControl/plugins/lists/events/keyDownShiftTab.js +6 -9
- package/dist/esm/MarkdownControl/plugins/lists/events/keyDownTab.js +3 -7
- package/dist/esm/MarkdownControl/plugins/lists/transforms/liftFirstMatchedParent.js +4 -8
- package/dist/esm/MarkdownControl/plugins/lists/transforms/unwrapSelectionFromList.js +3 -7
- package/dist/esm/MarkdownControl/plugins/util.js +4 -4
- package/dist/esm/MarkdownControl/renderers.js +6 -11
- package/dist/esm/MarkdownPreview.js +11 -10
- package/dist/esm/index.js +4 -8
- package/dist/esm/regexHelper.js +4 -3
- package/dist/esm/serializers/index.js +2 -2
- package/dist/esm/serializers/remarkAssertParents.js +17 -20
- package/dist/esm/serializers/remarkEscapeMarkdownEntities.js +17 -17
- package/dist/esm/serializers/remarkImagesToText.js +3 -7
- package/dist/esm/serializers/remarkPaddedLinks.js +17 -21
- package/dist/esm/serializers/remarkRehypeShortcodes.js +10 -13
- package/dist/esm/serializers/remarkSlate.js +64 -55
- package/dist/esm/serializers/remarkSquashReferences.js +7 -11
- package/dist/esm/serializers/slateRemark.js +52 -52
- package/package.json +6 -6
- package/src/MarkdownControl/Toolbar.js +5 -0
- package/src/MarkdownControl/VisualEditor.js +1 -1
- package/src/MarkdownControl/components/Shortcode.js +1 -1
- package/src/MarkdownControl/index.js +5 -0
- package/src/MarkdownControl/plugins/CommandsAndQueries.js +3 -1
- 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,14 +1,9 @@
|
|
|
1
|
-
import _omit from "lodash/omit";
|
|
2
|
-
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; }
|
|
3
|
-
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; }
|
|
4
|
-
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; }
|
|
5
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
6
|
-
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); }
|
|
7
1
|
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
8
2
|
/* eslint-disable react/prop-types */
|
|
9
3
|
import React, { useState } from 'react';
|
|
10
4
|
import { css } from '@emotion/react';
|
|
11
5
|
import { fromJS } from 'immutable';
|
|
6
|
+
import omit from 'lodash/omit';
|
|
12
7
|
import { ReactEditor, useSlate } from 'slate-react';
|
|
13
8
|
import { Range, Transforms } from 'slate';
|
|
14
9
|
import { getEditorControl, getEditorComponents } from '../index';
|
|
@@ -18,8 +13,7 @@ var _ref = process.env.NODE_ENV === "production" ? {
|
|
|
18
13
|
styles: "margin-top:0;margin-bottom:16px;&:first-of-type{margin-top:0;};label:Shortcode;"
|
|
19
14
|
} : {
|
|
20
15
|
name: "1xfnuhy-Shortcode",
|
|
21
|
-
styles: "margin-top:0;margin-bottom:16px;&:first-of-type{margin-top:0;};label:Shortcode;",
|
|
22
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9NYXJrZG93bkNvbnRyb2wvY29tcG9uZW50cy9TaG9ydGNvZGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbURrQiIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvTWFya2Rvd25Db250cm9sL2NvbXBvbmVudHMvU2hvcnRjb2RlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvcHJvcC10eXBlcyAqL1xuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgZnJvbUpTIH0gZnJvbSAnaW1tdXRhYmxlJztcbmltcG9ydCB7IG9taXQgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgUmVhY3RFZGl0b3IsIHVzZVNsYXRlIH0gZnJvbSAnc2xhdGUtcmVhY3QnO1xuaW1wb3J0IHsgUmFuZ2UsIFRyYW5zZm9ybXMgfSBmcm9tICdzbGF0ZSc7XG5cbmltcG9ydCB7IGdldEVkaXRvckNvbnRyb2wsIGdldEVkaXRvckNvbXBvbmVudHMgfSBmcm9tICcuLi9pbmRleCc7XG5cbmZ1bmN0aW9uIFNob3J0Y29kZShwcm9wcykge1xuICBjb25zdCBlZGl0b3IgPSB1c2VTbGF0ZSgpO1xuICBjb25zdCB7IGVsZW1lbnQsIGRhdGFLZXkgPSAnc2hvcnRjb2RlRGF0YScsIGNoaWxkcmVuIH0gPSBwcm9wcztcbiAgY29uc3QgRWRpdG9yQ29udHJvbCA9IGdldEVkaXRvckNvbnRyb2woKTtcbiAgY29uc3QgcGx1Z2luID0gZ2V0RWRpdG9yQ29tcG9uZW50cygpLmdldChlbGVtZW50LmRhdGEuc2hvcnRjb2RlKTtcbiAgY29uc3QgZmllbGRLZXlzID0gWydpZCcsICdmcm9tQmxvY2snLCAndG9CbG9jaycsICd0b1ByZXZpZXcnLCAncGF0dGVybicsICdpY29uJ107XG5cbiAgY29uc3QgZmllbGQgPSBmcm9tSlMob21pdChwbHVnaW4sIGZpZWxkS2V5cykpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKGZyb21KUyhlbGVtZW50LmRhdGFbZGF0YUtleV0pKTtcblxuICBmdW5jdGlvbiBoYW5kbGVDaGFuZ2UoZmllbGROYW1lLCB2YWx1ZSwgbWV0YWRhdGEpIHtcbiAgICBjb25zdCBwYXRoID0gUmVhY3RFZGl0b3IuZmluZFBhdGgoZWRpdG9yLCBlbGVtZW50KTtcbiAgICBjb25zdCBuZXdQcm9wZXJ0aWVzID0ge1xuICAgICAgZGF0YToge1xuICAgICAgICAuLi5lbGVtZW50LmRhdGEsXG4gICAgICAgIFtkYXRhS2V5XTogdmFsdWUudG9KUygpLFxuICAgICAgICBtZXRhZGF0YSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBUcmFuc2Zvcm1zLnNldE5vZGVzKGVkaXRvciwgbmV3UHJvcGVydGllcywge1xuICAgICAgYXQ6IHBhdGgsXG4gICAgfSk7XG4gICAgc2V0VmFsdWUodmFsdWUpO1xuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlRm9jdXMoKSB7XG4gICAgY29uc3QgcGF0aCA9IFJlYWN0RWRpdG9yLmZpbmRQYXRoKGVkaXRvciwgZWxlbWVudCk7XG4gICAgVHJhbnNmb3Jtcy5zZWxlY3QoZWRpdG9yLCBwYXRoKTtcbiAgfVxuXG4gIGNvbnN0IHBhdGggPSBSZWFjdEVkaXRvci5maW5kUGF0aChlZGl0b3IsIGVsZW1lbnQpO1xuICBjb25zdCBpc1NlbGVjdGVkID1cbiAgICBlZGl0b3Iuc2VsZWN0aW9uICYmXG4gICAgcGF0aCAmJlxuICAgIFJhbmdlLmlzUmFuZ2UoZWRpdG9yLnNlbGVjdGlvbikgJiZcbiAgICBSYW5nZS5pbmNsdWRlcyhlZGl0b3Iuc2VsZWN0aW9uLCBwYXRoKTtcblxuICByZXR1cm4gKFxuICAgICFmaWVsZC5pc0VtcHR5KCkgJiYgKFxuICAgICAgPGRpdiBvbkNsaWNrPXtoYW5kbGVGb2N1c30gb25Gb2N1cz17aGFuZGxlRm9jdXN9PlxuICAgICAgICA8RWRpdG9yQ29udHJvbFxuICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG5cbiAgICAgICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgYH1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgZmllbGQ9e2ZpZWxkfVxuICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgaXNFZGl0b3JDb21wb25lbnQ9e3RydWV9XG4gICAgICAgICAgb25WYWxpZGF0ZU9iamVjdD17KCkgPT4ge319XG4gICAgICAgICAgaXNOZXdFZGl0b3JDb21wb25lbnQ9e2VsZW1lbnQuZGF0YS5zaG9ydGNvZGVOZXd9XG4gICAgICAgICAgaXNTZWxlY3RlZD17aXNTZWxlY3RlZH1cbiAgICAgICAgLz5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9kaXY+XG4gICAgKVxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBTaG9ydGNvZGU7XG4iXX0= */",
|
|
16
|
+
styles: "margin-top:0;margin-bottom:16px;&:first-of-type{margin-top:0;};label:Shortcode;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9NYXJrZG93bkNvbnRyb2wvY29tcG9uZW50cy9TaG9ydGNvZGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbURrQiIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvTWFya2Rvd25Db250cm9sL2NvbXBvbmVudHMvU2hvcnRjb2RlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvcHJvcC10eXBlcyAqL1xuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgZnJvbUpTIH0gZnJvbSAnaW1tdXRhYmxlJztcbmltcG9ydCBvbWl0IGZyb20gJ2xvZGFzaC9vbWl0JztcbmltcG9ydCB7IFJlYWN0RWRpdG9yLCB1c2VTbGF0ZSB9IGZyb20gJ3NsYXRlLXJlYWN0JztcbmltcG9ydCB7IFJhbmdlLCBUcmFuc2Zvcm1zIH0gZnJvbSAnc2xhdGUnO1xuXG5pbXBvcnQgeyBnZXRFZGl0b3JDb250cm9sLCBnZXRFZGl0b3JDb21wb25lbnRzIH0gZnJvbSAnLi4vaW5kZXgnO1xuXG5mdW5jdGlvbiBTaG9ydGNvZGUocHJvcHMpIHtcbiAgY29uc3QgZWRpdG9yID0gdXNlU2xhdGUoKTtcbiAgY29uc3QgeyBlbGVtZW50LCBkYXRhS2V5ID0gJ3Nob3J0Y29kZURhdGEnLCBjaGlsZHJlbiB9ID0gcHJvcHM7XG4gIGNvbnN0IEVkaXRvckNvbnRyb2wgPSBnZXRFZGl0b3JDb250cm9sKCk7XG4gIGNvbnN0IHBsdWdpbiA9IGdldEVkaXRvckNvbXBvbmVudHMoKS5nZXQoZWxlbWVudC5kYXRhLnNob3J0Y29kZSk7XG4gIGNvbnN0IGZpZWxkS2V5cyA9IFsnaWQnLCAnZnJvbUJsb2NrJywgJ3RvQmxvY2snLCAndG9QcmV2aWV3JywgJ3BhdHRlcm4nLCAnaWNvbiddO1xuXG4gIGNvbnN0IGZpZWxkID0gZnJvbUpTKG9taXQocGx1Z2luLCBmaWVsZEtleXMpKTtcbiAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VTdGF0ZShmcm9tSlMoZWxlbWVudC5kYXRhW2RhdGFLZXldKSk7XG5cbiAgZnVuY3Rpb24gaGFuZGxlQ2hhbmdlKGZpZWxkTmFtZSwgdmFsdWUsIG1ldGFkYXRhKSB7XG4gICAgY29uc3QgcGF0aCA9IFJlYWN0RWRpdG9yLmZpbmRQYXRoKGVkaXRvciwgZWxlbWVudCk7XG4gICAgY29uc3QgbmV3UHJvcGVydGllcyA9IHtcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgLi4uZWxlbWVudC5kYXRhLFxuICAgICAgICBbZGF0YUtleV06IHZhbHVlLnRvSlMoKSxcbiAgICAgICAgbWV0YWRhdGEsXG4gICAgICB9LFxuICAgIH07XG4gICAgVHJhbnNmb3Jtcy5zZXROb2RlcyhlZGl0b3IsIG5ld1Byb3BlcnRpZXMsIHtcbiAgICAgIGF0OiBwYXRoLFxuICAgIH0pO1xuICAgIHNldFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZUZvY3VzKCkge1xuICAgIGNvbnN0IHBhdGggPSBSZWFjdEVkaXRvci5maW5kUGF0aChlZGl0b3IsIGVsZW1lbnQpO1xuICAgIFRyYW5zZm9ybXMuc2VsZWN0KGVkaXRvciwgcGF0aCk7XG4gIH1cblxuICBjb25zdCBwYXRoID0gUmVhY3RFZGl0b3IuZmluZFBhdGgoZWRpdG9yLCBlbGVtZW50KTtcbiAgY29uc3QgaXNTZWxlY3RlZCA9XG4gICAgZWRpdG9yLnNlbGVjdGlvbiAmJlxuICAgIHBhdGggJiZcbiAgICBSYW5nZS5pc1JhbmdlKGVkaXRvci5zZWxlY3Rpb24pICYmXG4gICAgUmFuZ2UuaW5jbHVkZXMoZWRpdG9yLnNlbGVjdGlvbiwgcGF0aCk7XG5cbiAgcmV0dXJuIChcbiAgICAhZmllbGQuaXNFbXB0eSgpICYmIChcbiAgICAgIDxkaXYgb25DbGljaz17aGFuZGxlRm9jdXN9IG9uRm9jdXM9e2hhbmRsZUZvY3VzfT5cbiAgICAgICAgPEVkaXRvckNvbnRyb2xcbiAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuXG4gICAgICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIGB9XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgIGZpZWxkPXtmaWVsZH1cbiAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgIGlzRWRpdG9yQ29tcG9uZW50PXt0cnVlfVxuICAgICAgICAgIG9uVmFsaWRhdGVPYmplY3Q9eygpID0+IHt9fVxuICAgICAgICAgIGlzTmV3RWRpdG9yQ29tcG9uZW50PXtlbGVtZW50LmRhdGEuc2hvcnRjb2RlTmV3fVxuICAgICAgICAgIGlzU2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICAgIC8+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgU2hvcnRjb2RlO1xuIl19 */",
|
|
23
17
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
24
18
|
};
|
|
25
19
|
function Shortcode(props) {
|
|
@@ -32,15 +26,16 @@ function Shortcode(props) {
|
|
|
32
26
|
const EditorControl = getEditorControl();
|
|
33
27
|
const plugin = getEditorComponents().get(element.data.shortcode);
|
|
34
28
|
const fieldKeys = ['id', 'fromBlock', 'toBlock', 'toPreview', 'pattern', 'icon'];
|
|
35
|
-
const field = fromJS(
|
|
29
|
+
const field = fromJS(omit(plugin, fieldKeys));
|
|
36
30
|
const [value, setValue] = useState(fromJS(element.data[dataKey]));
|
|
37
31
|
function handleChange(fieldName, value, metadata) {
|
|
38
32
|
const path = ReactEditor.findPath(editor, element);
|
|
39
33
|
const newProperties = {
|
|
40
|
-
data:
|
|
34
|
+
data: {
|
|
35
|
+
...element.data,
|
|
41
36
|
[dataKey]: value.toJS(),
|
|
42
37
|
metadata
|
|
43
|
-
}
|
|
38
|
+
}
|
|
44
39
|
};
|
|
45
40
|
Transforms.setNodes(editor, newProperties, {
|
|
46
41
|
at: path
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
2
|
/* eslint-disable react/prop-types */
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { css } from '@emotion/react';
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
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; }
|
|
2
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
3
|
-
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); }
|
|
4
1
|
import React from 'react';
|
|
5
2
|
import PropTypes from 'prop-types';
|
|
6
3
|
import ImmutablePropTypes from 'react-immutable-proptypes';
|
|
@@ -22,31 +19,48 @@ export function getEditorComponents() {
|
|
|
22
19
|
return _getEditorComponents();
|
|
23
20
|
}
|
|
24
21
|
export default class MarkdownControl extends React.Component {
|
|
22
|
+
static propTypes = {
|
|
23
|
+
onChange: PropTypes.func.isRequired,
|
|
24
|
+
onAddAsset: PropTypes.func.isRequired,
|
|
25
|
+
getAsset: PropTypes.func.isRequired,
|
|
26
|
+
classNameWrapper: PropTypes.string.isRequired,
|
|
27
|
+
editorControl: PropTypes.elementType.isRequired,
|
|
28
|
+
value: PropTypes.string,
|
|
29
|
+
field: ImmutablePropTypes.map.isRequired,
|
|
30
|
+
getEditorComponents: PropTypes.func,
|
|
31
|
+
t: PropTypes.func.isRequired
|
|
32
|
+
};
|
|
33
|
+
static defaultProps = {
|
|
34
|
+
value: ''
|
|
35
|
+
};
|
|
25
36
|
constructor(props) {
|
|
26
|
-
var _localStorage$getItem;
|
|
27
37
|
super(props);
|
|
28
|
-
_defineProperty(this, "handleMode", mode => {
|
|
29
|
-
this.setState({
|
|
30
|
-
mode,
|
|
31
|
-
pendingFocus: true
|
|
32
|
-
});
|
|
33
|
-
localStorage.setItem(MODE_STORAGE_KEY, mode);
|
|
34
|
-
});
|
|
35
|
-
_defineProperty(this, "processRef", ref => this.ref = ref);
|
|
36
|
-
_defineProperty(this, "setFocusReceived", () => {
|
|
37
|
-
this.setState({
|
|
38
|
-
pendingFocus: false
|
|
39
|
-
});
|
|
40
|
-
});
|
|
41
|
-
_defineProperty(this, "getAllowedModes", () => this.props.field.get('modes', List(['rich_text', 'raw'])).toArray());
|
|
42
38
|
editorControl = props.editorControl;
|
|
43
|
-
const preferredMode =
|
|
39
|
+
const preferredMode = localStorage.getItem(MODE_STORAGE_KEY) ?? 'rich_text';
|
|
44
40
|
_getEditorComponents = props.getEditorComponents;
|
|
45
41
|
this.state = {
|
|
46
42
|
mode: this.getAllowedModes().indexOf(preferredMode) !== -1 ? preferredMode : this.getAllowedModes()[0],
|
|
47
43
|
pendingFocus: false
|
|
48
44
|
};
|
|
49
45
|
}
|
|
46
|
+
componentDidMount() {
|
|
47
|
+
// Manually validate PropTypes - React 19 breaking change
|
|
48
|
+
PropTypes.checkPropTypes(MarkdownControl.propTypes, this.props, 'prop', 'MarkdownControl');
|
|
49
|
+
}
|
|
50
|
+
handleMode = mode => {
|
|
51
|
+
this.setState({
|
|
52
|
+
mode,
|
|
53
|
+
pendingFocus: true
|
|
54
|
+
});
|
|
55
|
+
localStorage.setItem(MODE_STORAGE_KEY, mode);
|
|
56
|
+
};
|
|
57
|
+
processRef = ref => this.ref = ref;
|
|
58
|
+
setFocusReceived = () => {
|
|
59
|
+
this.setState({
|
|
60
|
+
pendingFocus: false
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
getAllowedModes = () => this.props.field.get('modes', List(['rich_text', 'raw'])).toArray();
|
|
50
64
|
focus() {
|
|
51
65
|
this.setState({
|
|
52
66
|
pendingFocus: true
|
|
@@ -107,18 +121,4 @@ export default class MarkdownControl extends React.Component {
|
|
|
107
121
|
}));
|
|
108
122
|
return mode === 'rich_text' ? visualEditor : rawEditor;
|
|
109
123
|
}
|
|
110
|
-
}
|
|
111
|
-
_defineProperty(MarkdownControl, "propTypes", {
|
|
112
|
-
onChange: PropTypes.func.isRequired,
|
|
113
|
-
onAddAsset: PropTypes.func.isRequired,
|
|
114
|
-
getAsset: PropTypes.func.isRequired,
|
|
115
|
-
classNameWrapper: PropTypes.string.isRequired,
|
|
116
|
-
editorControl: PropTypes.elementType.isRequired,
|
|
117
|
-
value: PropTypes.string,
|
|
118
|
-
field: ImmutablePropTypes.map.isRequired,
|
|
119
|
-
getEditorComponents: PropTypes.func,
|
|
120
|
-
t: PropTypes.func.isRequired
|
|
121
|
-
});
|
|
122
|
-
_defineProperty(MarkdownControl, "defaultProps", {
|
|
123
|
-
value: ''
|
|
124
|
-
});
|
|
124
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import isArray from 'lodash/isArray';
|
|
2
|
+
import tail from 'lodash/tail';
|
|
3
|
+
import castArray from 'lodash/castArray';
|
|
4
4
|
function CommandsAndQueries({
|
|
5
5
|
defaultType
|
|
6
6
|
}) {
|
|
@@ -34,7 +34,7 @@ function CommandsAndQueries({
|
|
|
34
34
|
return doc.getCommonAncestor(startBlock.key, endBlock.key);
|
|
35
35
|
},
|
|
36
36
|
getClosestType(editor, node, type) {
|
|
37
|
-
const types =
|
|
37
|
+
const types = castArray(type);
|
|
38
38
|
return editor.value.document.getClosest(node.key, n => types.includes(n.type));
|
|
39
39
|
},
|
|
40
40
|
getBlockContainer(editor, node) {
|
|
@@ -53,7 +53,7 @@ function CommandsAndQueries({
|
|
|
53
53
|
return editor.getBlockContainer(target);
|
|
54
54
|
},
|
|
55
55
|
isSelected(editor, nodes) {
|
|
56
|
-
return
|
|
56
|
+
return castArray(nodes).every(node => {
|
|
57
57
|
return editor.value.document.isInRange(node.key, editor.value.selection);
|
|
58
58
|
});
|
|
59
59
|
},
|
|
@@ -61,11 +61,11 @@ function CommandsAndQueries({
|
|
|
61
61
|
return editor.value.document.getParent(node.key).nodes.first().key === node.key;
|
|
62
62
|
},
|
|
63
63
|
areSiblings(editor, nodes) {
|
|
64
|
-
if (!
|
|
64
|
+
if (!isArray(nodes) || nodes.length < 2) {
|
|
65
65
|
return true;
|
|
66
66
|
}
|
|
67
67
|
const parent = editor.value.document.getParent(nodes[0].key);
|
|
68
|
-
return
|
|
68
|
+
return tail(nodes).every(node => {
|
|
69
69
|
return editor.value.document.getParent(node.key).key === parent.key;
|
|
70
70
|
});
|
|
71
71
|
},
|
|
@@ -125,7 +125,7 @@ function CommandsAndQueries({
|
|
|
125
125
|
*/
|
|
126
126
|
const parent = document.getParent(lowestNodeKey);
|
|
127
127
|
const grandparent = document.getParent(parent.key);
|
|
128
|
-
return parent.type === 'list-item' &&
|
|
128
|
+
return parent.type === 'list-item' && grandparent?.type === listType;
|
|
129
129
|
});
|
|
130
130
|
}
|
|
131
131
|
},
|
|
@@ -2,9 +2,8 @@ import getActiveLink from '../selectors/getActiveLink';
|
|
|
2
2
|
import unwrapLink from '../transforms/unwrapLink';
|
|
3
3
|
import wrapLink from '../transforms/wrapLink';
|
|
4
4
|
function toggleLink(editor, promptText) {
|
|
5
|
-
var _activeLink$, _activeLink$$data;
|
|
6
5
|
const activeLink = getActiveLink(editor);
|
|
7
|
-
const activeUrl = activeLink ?
|
|
6
|
+
const activeUrl = activeLink ? activeLink[0]?.data?.url : '';
|
|
8
7
|
const url = window.prompt(promptText, activeUrl);
|
|
9
8
|
if (url == null) return;
|
|
10
9
|
if (url === '') {
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
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; }
|
|
2
|
-
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; }
|
|
3
|
-
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; }
|
|
4
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
5
|
-
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); }
|
|
6
1
|
import { Editor, Transforms } from 'slate';
|
|
7
2
|
import lowestMatchedAncestor from '../../matchers/lowestMatchedAncestor';
|
|
8
3
|
import matchedAncestors from '../../matchers/matchedAncestors';
|
|
@@ -12,12 +7,14 @@ function keyDownShiftTab(editor) {
|
|
|
12
7
|
return;
|
|
13
8
|
}
|
|
14
9
|
Editor.withoutNormalizing(editor, () => {
|
|
15
|
-
Transforms.liftNodes(editor,
|
|
10
|
+
Transforms.liftNodes(editor, {
|
|
11
|
+
...lowestMatchedAncestor(editor, 'list-item'),
|
|
16
12
|
split: true
|
|
17
|
-
})
|
|
18
|
-
Transforms.liftNodes(editor,
|
|
13
|
+
});
|
|
14
|
+
Transforms.liftNodes(editor, {
|
|
15
|
+
...lowestMatchedAncestor(editor, 'list-item'),
|
|
19
16
|
split: true
|
|
20
|
-
})
|
|
17
|
+
});
|
|
21
18
|
});
|
|
22
19
|
Editor.normalize(editor);
|
|
23
20
|
}
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
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; }
|
|
2
|
-
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; }
|
|
3
|
-
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; }
|
|
4
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
5
|
-
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); }
|
|
6
1
|
import { Editor, Transforms } from 'slate';
|
|
7
2
|
import isSelectionWithinNoninitialListItem from '../locations/isSelectionWithinNoninitialListItem';
|
|
8
3
|
import lowestMatchedAncestor from '../../matchers/lowestMatchedAncestor';
|
|
@@ -31,9 +26,10 @@ function keyDownTab(editor) {
|
|
|
31
26
|
// wrap selected list items into a new bulleted list
|
|
32
27
|
Transforms.wrapNodes(editor, {
|
|
33
28
|
type: 'bulleted-list'
|
|
34
|
-
},
|
|
29
|
+
}, {
|
|
30
|
+
...lowestMatchedAncestor(editor, 'list-item'),
|
|
35
31
|
at
|
|
36
|
-
})
|
|
32
|
+
});
|
|
37
33
|
|
|
38
34
|
// get the new bulleted list position
|
|
39
35
|
const [, newListPath] = Editor.above(editor, lowestMatchedAncestor(editor, 'list'));
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
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; }
|
|
2
|
-
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; }
|
|
3
|
-
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; }
|
|
4
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
5
|
-
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); }
|
|
6
1
|
import { Transforms } from 'slate';
|
|
7
2
|
function liftFirstMatchedParent(editor, format, options) {
|
|
8
|
-
Transforms.liftNodes(editor,
|
|
3
|
+
Transforms.liftNodes(editor, {
|
|
9
4
|
match: n => n.type === format || format === 'paragraph' && `${n.type}`.startsWith('heading'),
|
|
10
|
-
mode: 'lowest'
|
|
11
|
-
|
|
5
|
+
mode: 'lowest',
|
|
6
|
+
...options
|
|
7
|
+
});
|
|
12
8
|
}
|
|
13
9
|
export default liftFirstMatchedParent;
|
|
@@ -1,15 +1,11 @@
|
|
|
1
|
-
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; }
|
|
2
|
-
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; }
|
|
3
|
-
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; }
|
|
4
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
5
|
-
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); }
|
|
6
1
|
import { Editor, Transforms } from 'slate';
|
|
7
2
|
import lowestMatchedAncestor from '../../matchers/lowestMatchedAncestor';
|
|
8
3
|
function unwrapSelectionFromList(editor) {
|
|
9
4
|
Editor.withoutNormalizing(editor, () => {
|
|
10
|
-
Transforms.unwrapNodes(editor,
|
|
5
|
+
Transforms.unwrapNodes(editor, {
|
|
6
|
+
...lowestMatchedAncestor(editor, 'list'),
|
|
11
7
|
split: true
|
|
12
|
-
})
|
|
8
|
+
});
|
|
13
9
|
Transforms.unwrapNodes(editor, lowestMatchedAncestor(editor, 'list-item'));
|
|
14
10
|
});
|
|
15
11
|
Editor.normalize(editor);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import castArray from 'lodash/castArray';
|
|
2
|
+
import isArray from 'lodash/isArray';
|
|
3
3
|
export function assertType(nodes, type) {
|
|
4
|
-
const nodesArray =
|
|
5
|
-
const validate =
|
|
4
|
+
const nodesArray = castArray(nodes);
|
|
5
|
+
const validate = isArray(type) ? node => type.includes(node.type) : node => type === node.type;
|
|
6
6
|
const invalidNode = nodesArray.find(node => !validate(node));
|
|
7
7
|
if (invalidNode) {
|
|
8
8
|
throw Error(`Expected node of type "${type}", received "${invalidNode.type}".`);
|