@valbuild/shared 0.49.0 → 0.51.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/README.md +1 -1
- package/dist/declarations/src/internal/IValStore.d.ts +5 -0
- package/dist/declarations/src/internal/index.d.ts +1 -0
- package/dist/declarations/src/internal/richtext/conversion/index.d.ts +3 -2
- package/dist/declarations/src/internal/richtext/conversion/remirrorToRichTextSource.d.ts +5 -0
- package/dist/declarations/src/internal/richtext/conversion/remirrorTypes.d.ts +1889 -0
- package/dist/declarations/src/internal/richtext/conversion/richTextToRemirror.d.ts +3 -0
- package/dist/declarations/src/internal/server/types.d.ts +1 -1
- package/internal/dist/valbuild-shared-internal.cjs.dev.js +531 -350
- package/internal/dist/valbuild-shared-internal.cjs.prod.js +531 -350
- package/internal/dist/valbuild-shared-internal.esm.js +519 -345
- package/package.json +4 -4
- package/dist/declarations/src/internal/richtext/conversion/lexicalToRichTextSource.d.ts +0 -12
- package/dist/declarations/src/internal/richtext/conversion/richTextSourceToLexical.d.ts +0 -68
@@ -4,6 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
5
5
|
var core = require('@valbuild/core');
|
6
6
|
var marked = require('marked');
|
7
|
+
var zod = require('zod');
|
7
8
|
|
8
9
|
function _interopNamespace(e) {
|
9
10
|
if (e && e.__esModule) return e;
|
@@ -25,79 +26,24 @@ function _interopNamespace(e) {
|
|
25
26
|
|
26
27
|
var marked__namespace = /*#__PURE__*/_interopNamespace(marked);
|
27
28
|
|
28
|
-
function
|
29
|
-
if (
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
if (null != t) {
|
35
|
-
var e,
|
36
|
-
n,
|
37
|
-
i,
|
38
|
-
u,
|
39
|
-
a = [],
|
40
|
-
f = !0,
|
41
|
-
o = !1;
|
42
|
-
try {
|
43
|
-
if (i = (t = t.call(r)).next, 0 === l) {
|
44
|
-
if (Object(t) !== t) return;
|
45
|
-
f = !1;
|
46
|
-
} else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
|
47
|
-
} catch (r) {
|
48
|
-
o = !0, n = r;
|
49
|
-
} finally {
|
50
|
-
try {
|
51
|
-
if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;
|
52
|
-
} finally {
|
53
|
-
if (o) throw n;
|
54
|
-
}
|
55
|
-
}
|
56
|
-
return a;
|
57
|
-
}
|
58
|
-
}
|
59
|
-
|
60
|
-
function _arrayLikeToArray(arr, len) {
|
61
|
-
if (len == null || len > arr.length) len = arr.length;
|
62
|
-
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
63
|
-
return arr2;
|
64
|
-
}
|
65
|
-
|
66
|
-
function _unsupportedIterableToArray(o, minLen) {
|
67
|
-
if (!o) return;
|
68
|
-
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
69
|
-
var n = Object.prototype.toString.call(o).slice(8, -1);
|
70
|
-
if (n === "Object" && o.constructor) n = o.constructor.name;
|
71
|
-
if (n === "Map" || n === "Set") return Array.from(o);
|
72
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
73
|
-
}
|
74
|
-
|
75
|
-
function _nonIterableRest() {
|
76
|
-
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
77
|
-
}
|
78
|
-
|
79
|
-
function _slicedToArray(arr, i) {
|
80
|
-
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
81
|
-
}
|
82
|
-
|
83
|
-
function _toPrimitive(input, hint) {
|
84
|
-
if (typeof input !== "object" || input === null) return input;
|
85
|
-
var prim = input[Symbol.toPrimitive];
|
86
|
-
if (prim !== undefined) {
|
87
|
-
var res = prim.call(input, hint || "default");
|
88
|
-
if (typeof res !== "object") return res;
|
29
|
+
function toPrimitive(t, r) {
|
30
|
+
if ("object" != typeof t || !t) return t;
|
31
|
+
var e = t[Symbol.toPrimitive];
|
32
|
+
if (void 0 !== e) {
|
33
|
+
var i = e.call(t, r || "default");
|
34
|
+
if ("object" != typeof i) return i;
|
89
35
|
throw new TypeError("@@toPrimitive must return a primitive value.");
|
90
36
|
}
|
91
|
-
return (
|
37
|
+
return ("string" === r ? String : Number)(t);
|
92
38
|
}
|
93
39
|
|
94
|
-
function
|
95
|
-
var
|
96
|
-
return
|
40
|
+
function toPropertyKey(t) {
|
41
|
+
var i = toPrimitive(t, "string");
|
42
|
+
return "symbol" == typeof i ? i : String(i);
|
97
43
|
}
|
98
44
|
|
99
45
|
function _defineProperty(obj, key, value) {
|
100
|
-
key =
|
46
|
+
key = toPropertyKey(key);
|
101
47
|
if (key in obj) {
|
102
48
|
Object.defineProperty(obj, key, {
|
103
49
|
value: value,
|
@@ -111,6 +57,21 @@ function _defineProperty(obj, key, value) {
|
|
111
57
|
return obj;
|
112
58
|
}
|
113
59
|
|
60
|
+
function _arrayLikeToArray(arr, len) {
|
61
|
+
if (len == null || len > arr.length) len = arr.length;
|
62
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
63
|
+
return arr2;
|
64
|
+
}
|
65
|
+
|
66
|
+
function _unsupportedIterableToArray(o, minLen) {
|
67
|
+
if (!o) return;
|
68
|
+
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
69
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
70
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
71
|
+
if (n === "Map" || n === "Set") return Array.from(o);
|
72
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
73
|
+
}
|
74
|
+
|
114
75
|
function _createForOfIteratorHelper(o, allowArrayLike) {
|
115
76
|
var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
|
116
77
|
if (!it) {
|
@@ -179,6 +140,46 @@ function _toConsumableArray(arr) {
|
|
179
140
|
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
|
180
141
|
}
|
181
142
|
|
143
|
+
function _arrayWithHoles(arr) {
|
144
|
+
if (Array.isArray(arr)) return arr;
|
145
|
+
}
|
146
|
+
|
147
|
+
function _iterableToArrayLimit(r, l) {
|
148
|
+
var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
|
149
|
+
if (null != t) {
|
150
|
+
var e,
|
151
|
+
n,
|
152
|
+
i,
|
153
|
+
u,
|
154
|
+
a = [],
|
155
|
+
f = !0,
|
156
|
+
o = !1;
|
157
|
+
try {
|
158
|
+
if (i = (t = t.call(r)).next, 0 === l) {
|
159
|
+
if (Object(t) !== t) return;
|
160
|
+
f = !1;
|
161
|
+
} else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
|
162
|
+
} catch (r) {
|
163
|
+
o = !0, n = r;
|
164
|
+
} finally {
|
165
|
+
try {
|
166
|
+
if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;
|
167
|
+
} finally {
|
168
|
+
if (o) throw n;
|
169
|
+
}
|
170
|
+
}
|
171
|
+
return a;
|
172
|
+
}
|
173
|
+
}
|
174
|
+
|
175
|
+
function _nonIterableRest() {
|
176
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
177
|
+
}
|
178
|
+
|
179
|
+
function _slicedToArray(arr, i) {
|
180
|
+
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
181
|
+
}
|
182
|
+
|
182
183
|
var EXT_TO_MIME_TYPES = {
|
183
184
|
x3d: "application/vnd.hzn-3d-crossword",
|
184
185
|
"3gp": "video/3gpp",
|
@@ -901,16 +902,18 @@ function filenameToMimeType(filename) {
|
|
901
902
|
}
|
902
903
|
}
|
903
904
|
|
904
|
-
|
905
|
-
|
906
|
-
var markdownIRBlocks = node.
|
907
|
-
|
905
|
+
function remirrorToRichTextSource(node) {
|
906
|
+
var files = {};
|
907
|
+
var markdownIRBlocks = node.content.map(function (child) {
|
908
|
+
return createBlock(child, files);
|
909
|
+
});
|
910
|
+
return fromIRToRichTextSource(markdownIRBlocks, files);
|
908
911
|
}
|
909
|
-
function createBlock(node) {
|
912
|
+
function createBlock(node, files) {
|
910
913
|
if (node.type === "heading") {
|
911
|
-
var _node$
|
914
|
+
var _node$attrs, _node$content;
|
912
915
|
var headingTag = "";
|
913
|
-
var depth =
|
916
|
+
var depth = ((_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.level) || 1;
|
914
917
|
if (Number.isNaN(depth)) {
|
915
918
|
throw new Error("Invalid header depth");
|
916
919
|
}
|
@@ -920,10 +923,13 @@ function createBlock(node) {
|
|
920
923
|
var headingText = ["".concat(headingTag, " ")];
|
921
924
|
return {
|
922
925
|
type: "block",
|
923
|
-
children: headingText.concat.apply(headingText, _toConsumableArray(node.
|
926
|
+
children: headingText.concat.apply(headingText, _toConsumableArray(((_node$content = node.content) === null || _node$content === void 0 ? void 0 : _node$content.map(function (child) {
|
927
|
+
return transformLeafNode(child, files);
|
928
|
+
})) || []))
|
924
929
|
};
|
925
930
|
} else if (node.type === "paragraph") {
|
926
|
-
|
931
|
+
var _node$content2;
|
932
|
+
if (!node.content || ((_node$content2 = node.content) === null || _node$content2 === void 0 ? void 0 : _node$content2.length) === 0) {
|
927
933
|
return {
|
928
934
|
type: "block",
|
929
935
|
children: ["<br />"]
|
@@ -931,26 +937,26 @@ function createBlock(node) {
|
|
931
937
|
}
|
932
938
|
return {
|
933
939
|
type: "block",
|
934
|
-
children: node.
|
935
|
-
return transformLeafNode(child);
|
940
|
+
children: node.content.map(function (child) {
|
941
|
+
return transformLeafNode(child, files);
|
936
942
|
})
|
937
943
|
};
|
938
|
-
} else if (node.type === "
|
944
|
+
} else if (node.type === "bulletList" || node.type === "orderedList") {
|
945
|
+
var _node$content3;
|
939
946
|
return {
|
940
947
|
type: "block",
|
941
|
-
children: node.
|
942
|
-
return formatListItemNode(getListPrefix(node), child, 0, i === 0);
|
943
|
-
})
|
948
|
+
children: ((_node$content3 = node.content) === null || _node$content3 === void 0 ? void 0 : _node$content3.flatMap(function (child, i) {
|
949
|
+
return formatListItemNode(getListPrefix(node), child, 0, files, i === 0);
|
950
|
+
})) || []
|
944
951
|
};
|
945
952
|
} else {
|
946
953
|
var exhaustiveCheck = node;
|
947
954
|
throw new Error("Unhandled node type: ".concat("type" in exhaustiveCheck ? "exhaustiveCheck.type" : "unknown"));
|
948
955
|
}
|
949
956
|
}
|
950
|
-
function fromIRToRichTextSource(markdownIRBlocks) {
|
957
|
+
function fromIRToRichTextSource(markdownIRBlocks, files) {
|
951
958
|
var templateStrings = ["\n"];
|
952
959
|
var exprs = [];
|
953
|
-
var files = {};
|
954
960
|
for (var blockIdx = 0; blockIdx < markdownIRBlocks.length; blockIdx++) {
|
955
961
|
var block = markdownIRBlocks[blockIdx];
|
956
962
|
var _iterator = _createForOfIteratorHelper(block.children),
|
@@ -961,10 +967,10 @@ function fromIRToRichTextSource(markdownIRBlocks) {
|
|
961
967
|
if (typeof child === "string") {
|
962
968
|
templateStrings[templateStrings.length - 1] += child;
|
963
969
|
} else {
|
964
|
-
if (child.
|
965
|
-
exprs.push(
|
966
|
-
} else if (child.
|
967
|
-
exprs.push(
|
970
|
+
if (child._type === "file") {
|
971
|
+
exprs.push(child);
|
972
|
+
} else if (child._type === "link") {
|
973
|
+
exprs.push(child);
|
968
974
|
} else {
|
969
975
|
var exhaustiveCheck = child;
|
970
976
|
throw new Error("Unexpected node type: ".concat(JSON.stringify(exhaustiveCheck, null, 2)));
|
@@ -986,7 +992,17 @@ function fromIRToRichTextSource(markdownIRBlocks) {
|
|
986
992
|
return _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, core.VAL_EXTENSION, "richtext"), "templateStrings", templateStrings), "exprs", exprs), "files", files);
|
987
993
|
}
|
988
994
|
function formatText(node) {
|
989
|
-
var
|
995
|
+
var _node$marks;
|
996
|
+
var classes = ((_node$marks = node.marks) === null || _node$marks === void 0 ? void 0 : _node$marks.flatMap(function (mark) {
|
997
|
+
if (mark.type === "bold") {
|
998
|
+
return ["bold"];
|
999
|
+
} else if (mark.type === "italic") {
|
1000
|
+
return ["italic"];
|
1001
|
+
} else if (mark.type === "strike") {
|
1002
|
+
return ["line-through"];
|
1003
|
+
}
|
1004
|
+
return [];
|
1005
|
+
})) || [];
|
990
1006
|
var text = node.text.trimStart();
|
991
1007
|
var prefixWS = node.text.length - text.length;
|
992
1008
|
text = text.trimEnd();
|
@@ -1005,87 +1021,94 @@ function formatText(node) {
|
|
1005
1021
|
// text = splitIntoChunks(text);
|
1006
1022
|
return "".concat(" ".repeat(prefixWS)).concat(text).concat(" ".repeat(suffixWS));
|
1007
1023
|
}
|
1008
|
-
function transformLeafNode(node) {
|
1024
|
+
function transformLeafNode(node, files) {
|
1009
1025
|
if (node.type === "text") {
|
1026
|
+
var _node$marks2;
|
1027
|
+
var linkMark = (_node$marks2 = node.marks) === null || _node$marks2 === void 0 ? void 0 : _node$marks2.find(function (mark) {
|
1028
|
+
return mark.type === "link";
|
1029
|
+
});
|
1030
|
+
if ((linkMark === null || linkMark === void 0 ? void 0 : linkMark.type) === "link") {
|
1031
|
+
return {
|
1032
|
+
_type: "link",
|
1033
|
+
href: linkMark.attrs.href,
|
1034
|
+
children: [formatText(node)]
|
1035
|
+
};
|
1036
|
+
}
|
1010
1037
|
return formatText(node);
|
1011
|
-
} else if (node.type === "
|
1012
|
-
return "
|
1038
|
+
} else if (node.type === "hardBreak") {
|
1039
|
+
return "<br />";
|
1040
|
+
} else if (node.type === "image") {
|
1041
|
+
return fromRemirrorImageNode(node, files);
|
1013
1042
|
} else {
|
1014
|
-
|
1043
|
+
var exhaustiveCheck = node;
|
1044
|
+
throw new Error("Unexpected node type: ".concat(JSON.stringify(exhaustiveCheck)));
|
1015
1045
|
}
|
1016
1046
|
}
|
1017
|
-
function formatListItemNode(listPrefix, node, indent) {
|
1018
|
-
var _node$
|
1019
|
-
var isFirstTopLevelListItem = arguments.length >
|
1047
|
+
function formatListItemNode(listPrefix, node, indent, files) {
|
1048
|
+
var _node$content4, _node$content5;
|
1049
|
+
var isFirstTopLevelListItem = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
1020
1050
|
var newLine = isFirstTopLevelListItem ? "" : "\n";
|
1021
1051
|
var prefix = ["".concat(newLine).concat(" ".repeat(indent)).concat(listPrefix)];
|
1022
|
-
if (((_node$
|
1052
|
+
if (!(((_node$content4 = node.content) === null || _node$content4 === void 0 || (_node$content4 = _node$content4[0]) === null || _node$content4 === void 0 ? void 0 : _node$content4.type) === "bulletList" || ((_node$content5 = node.content) === null || _node$content5 === void 0 || (_node$content5 = _node$content5[0]) === null || _node$content5 === void 0 ? void 0 : _node$content5.type) === "orderedList")) {
|
1023
1053
|
prefix.push(" ");
|
1024
1054
|
}
|
1025
|
-
return prefix.concat(node.
|
1026
|
-
if (child.type === "
|
1027
|
-
return child.
|
1028
|
-
return formatListItemNode(getListPrefix(child), subChild, indent + 4);
|
1055
|
+
return prefix.concat((node.content || []).flatMap(function (child, i) {
|
1056
|
+
if (child.type === "bulletList" || child.type === "orderedList") {
|
1057
|
+
return (child.content || []).flatMap(function (subChild) {
|
1058
|
+
return formatListItemNode(getListPrefix(child), subChild, indent + 4, files);
|
1029
1059
|
});
|
1030
1060
|
} else {
|
1031
|
-
return
|
1061
|
+
return (child.content || []).flatMap(function (subChild) {
|
1062
|
+
var _child$content, _child$content2;
|
1063
|
+
var res = [];
|
1064
|
+
if ((_child$content = child.content) !== null && _child$content !== void 0 && _child$content.length && ((_child$content2 = child.content) === null || _child$content2 === void 0 ? void 0 : _child$content2.length) > 0 && i > 0) {
|
1065
|
+
res.push("<br />\n");
|
1066
|
+
}
|
1067
|
+
res.push(transformLeafNode(subChild, files));
|
1068
|
+
return res;
|
1069
|
+
});
|
1032
1070
|
}
|
1033
1071
|
}));
|
1034
1072
|
}
|
1035
1073
|
function getListPrefix(node) {
|
1036
|
-
if (node.
|
1074
|
+
if (node.type === "bulletList") {
|
1037
1075
|
return "-";
|
1038
|
-
} else if (node.
|
1076
|
+
} else if (node.type === "orderedList") {
|
1039
1077
|
return "1.";
|
1040
1078
|
} else {
|
1041
|
-
|
1079
|
+
var exhaustiveCheck = node;
|
1080
|
+
throw new Error("Unhandled list node: ".concat(JSON.stringify(exhaustiveCheck)));
|
1042
1081
|
}
|
1043
1082
|
}
|
1044
|
-
var FORMAT_MAPPING$1 = {
|
1045
|
-
bold: 1,
|
1046
|
-
// 0001
|
1047
|
-
italic: 2,
|
1048
|
-
// 0010
|
1049
|
-
"line-through": 4 // 0100
|
1050
|
-
// underline: 8, // 1000
|
1051
|
-
};
|
1052
|
-
|
1053
|
-
function fromLexicalFormat(format) {
|
1054
|
-
return Object.entries(FORMAT_MAPPING$1).flatMap(function (_ref2) {
|
1055
|
-
var _ref3 = _slicedToArray(_ref2, 2),
|
1056
|
-
key = _ref3[0],
|
1057
|
-
value = _ref3[1];
|
1058
|
-
if ((value & /* bitwise and */format) === value) {
|
1059
|
-
return [key];
|
1060
|
-
}
|
1061
|
-
return [];
|
1062
|
-
});
|
1063
|
-
}
|
1064
1083
|
var textEncoder = new TextEncoder();
|
1065
|
-
function
|
1066
|
-
if (node.src.startsWith("data:")) {
|
1067
|
-
var sha256 = core.Internal.getSHA256Hash(textEncoder.encode(node.src));
|
1068
|
-
var mimeType = getMimeType(node.src);
|
1084
|
+
function fromRemirrorImageNode(node, files) {
|
1085
|
+
if (node.attrs && node.attrs.src.startsWith("data:")) {
|
1086
|
+
var sha256 = core.Internal.getSHA256Hash(textEncoder.encode(node.attrs.src));
|
1087
|
+
var mimeType = getMimeType(node.attrs.src);
|
1069
1088
|
if (mimeType === undefined) {
|
1070
|
-
throw new Error("Could not detect Mime Type for image: ".concat(node.src));
|
1089
|
+
throw new Error("Could not detect Mime Type for image: ".concat(node.attrs.src));
|
1071
1090
|
}
|
1072
1091
|
var fileExt = mimeTypeToFileExt(mimeType);
|
1073
|
-
var
|
1074
|
-
|
1092
|
+
var fileName = node.attrs.fileName || "".concat(sha256, ".").concat(fileExt);
|
1093
|
+
var filePath = "/public/".concat(fileName);
|
1094
|
+
files[filePath] = node.attrs.src;
|
1075
1095
|
return _defineProperty(_defineProperty(_defineProperty({}, core.VAL_EXTENSION, "file"), core.FILE_REF_PROP, filePath), "metadata", {
|
1076
|
-
width: node.width
|
1077
|
-
height: node.height
|
1096
|
+
width: typeof node.attrs.width === "number" ? node.attrs.width : 0,
|
1097
|
+
height: typeof node.attrs.height === "number" ? node.attrs.height : 0,
|
1078
1098
|
sha256: sha256 || "",
|
1079
1099
|
mimeType: mimeType
|
1080
1100
|
});
|
1081
|
-
} else {
|
1082
|
-
var _sha = getParam("sha256", node.src);
|
1083
|
-
|
1084
|
-
|
1085
|
-
|
1101
|
+
} else if (node.attrs) {
|
1102
|
+
var _sha = getParam("sha256", node.attrs.src);
|
1103
|
+
var noParamsSrc = node.attrs.src.split("?")[0];
|
1104
|
+
return _defineProperty(_defineProperty(_defineProperty({}, core.VAL_EXTENSION, "file"), core.FILE_REF_PROP, "/public".concat(node.attrs.src.split("?")[0])), "metadata", {
|
1105
|
+
width: typeof node.attrs.width === "number" ? node.attrs.width : 0,
|
1106
|
+
height: typeof node.attrs.height === "number" ? node.attrs.height : 0,
|
1086
1107
|
sha256: _sha || "",
|
1087
|
-
mimeType:
|
1108
|
+
mimeType: noParamsSrc && filenameToMimeType(noParamsSrc) || ""
|
1088
1109
|
});
|
1110
|
+
} else {
|
1111
|
+
throw new Error("Invalid image node (no attrs): " + JSON.stringify(node));
|
1089
1112
|
}
|
1090
1113
|
}
|
1091
1114
|
function getParam(param, url) {
|
@@ -1100,196 +1123,6 @@ function getParam(param, url) {
|
|
1100
1123
|
}
|
1101
1124
|
return undefined;
|
1102
1125
|
}
|
1103
|
-
function fromLexicalLinkNode(node) {
|
1104
|
-
return _defineProperty(_defineProperty(_defineProperty({}, core.VAL_EXTENSION, "link"), "href", node.url), "children", node.children.map(formatText));
|
1105
|
-
}
|
1106
|
-
|
1107
|
-
function ownKeys(e, r) {
|
1108
|
-
var t = Object.keys(e);
|
1109
|
-
if (Object.getOwnPropertySymbols) {
|
1110
|
-
var o = Object.getOwnPropertySymbols(e);
|
1111
|
-
r && (o = o.filter(function (r) {
|
1112
|
-
return Object.getOwnPropertyDescriptor(e, r).enumerable;
|
1113
|
-
})), t.push.apply(t, o);
|
1114
|
-
}
|
1115
|
-
return t;
|
1116
|
-
}
|
1117
|
-
function _objectSpread2(e) {
|
1118
|
-
for (var r = 1; r < arguments.length; r++) {
|
1119
|
-
var t = null != arguments[r] ? arguments[r] : {};
|
1120
|
-
r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {
|
1121
|
-
_defineProperty(e, r, t[r]);
|
1122
|
-
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
|
1123
|
-
Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
|
1124
|
-
});
|
1125
|
-
}
|
1126
|
-
return e;
|
1127
|
-
}
|
1128
|
-
|
1129
|
-
/// Serialized Lexical Nodes:
|
1130
|
-
// TODO: replace with Lexical libs types - not currently exported?
|
1131
|
-
var COMMON_LEXICAL_PROPS = {
|
1132
|
-
version: 1,
|
1133
|
-
format: "",
|
1134
|
-
indent: 0,
|
1135
|
-
direction: null
|
1136
|
-
};
|
1137
|
-
function toLexicalNode(node) {
|
1138
|
-
var useBreakNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
1139
|
-
if (typeof node === "string") {
|
1140
|
-
return _objectSpread2(_objectSpread2({}, COMMON_LEXICAL_PROPS), {}, {
|
1141
|
-
type: "text",
|
1142
|
-
format: "",
|
1143
|
-
text: node
|
1144
|
-
});
|
1145
|
-
}
|
1146
|
-
if ("tag" in node) {
|
1147
|
-
switch (node.tag) {
|
1148
|
-
case "h1":
|
1149
|
-
return toLexicalHeadingNode(node);
|
1150
|
-
case "h2":
|
1151
|
-
return toLexicalHeadingNode(node);
|
1152
|
-
case "h3":
|
1153
|
-
return toLexicalHeadingNode(node);
|
1154
|
-
case "h4":
|
1155
|
-
return toLexicalHeadingNode(node);
|
1156
|
-
case "h5":
|
1157
|
-
return toLexicalHeadingNode(node);
|
1158
|
-
case "h6":
|
1159
|
-
return toLexicalHeadingNode(node);
|
1160
|
-
case "li":
|
1161
|
-
return toLexicalListItemNode(node);
|
1162
|
-
case "p":
|
1163
|
-
return toLexicalParagraphNode(node);
|
1164
|
-
case "ul":
|
1165
|
-
return toLexicalListNode(node);
|
1166
|
-
case "ol":
|
1167
|
-
return toLexicalListNode(node);
|
1168
|
-
case "span":
|
1169
|
-
return toLexicalTextNode(node);
|
1170
|
-
case "a":
|
1171
|
-
return toLexicalLinkNode(node);
|
1172
|
-
case "img":
|
1173
|
-
return toLexicalImageNode(node);
|
1174
|
-
case "br":
|
1175
|
-
if (useBreakNode) {
|
1176
|
-
return _objectSpread2(_objectSpread2({}, COMMON_LEXICAL_PROPS), {}, {
|
1177
|
-
type: "linebreak"
|
1178
|
-
});
|
1179
|
-
}
|
1180
|
-
return toLexicalPseudoLineBreakNode();
|
1181
|
-
default:
|
1182
|
-
throw Error("Unexpected node tag: " + JSON.stringify(node, null, 2));
|
1183
|
-
}
|
1184
|
-
} else {
|
1185
|
-
throw Error("Unexpected node: " + JSON.stringify(node, null, 2));
|
1186
|
-
}
|
1187
|
-
}
|
1188
|
-
function toLexicalImageNode(node) {
|
1189
|
-
var url = node.src;
|
1190
|
-
return _objectSpread2(_objectSpread2({}, COMMON_LEXICAL_PROPS), {}, {
|
1191
|
-
type: "image",
|
1192
|
-
src: url,
|
1193
|
-
width: node.width,
|
1194
|
-
height: node.height,
|
1195
|
-
mimeType: node.mimeType
|
1196
|
-
// TODO: altText
|
1197
|
-
});
|
1198
|
-
}
|
1199
|
-
|
1200
|
-
function toLexicalLinkNode(link) {
|
1201
|
-
return _objectSpread2(_objectSpread2({}, COMMON_LEXICAL_PROPS), {}, {
|
1202
|
-
type: "link",
|
1203
|
-
url: link.href,
|
1204
|
-
children: link.children.map(function (child) {
|
1205
|
-
return toLexicalNode(child);
|
1206
|
-
})
|
1207
|
-
});
|
1208
|
-
}
|
1209
|
-
function richTextSourceToLexical(richtext) {
|
1210
|
-
return _objectSpread2(_objectSpread2({}, COMMON_LEXICAL_PROPS), {}, {
|
1211
|
-
format: "",
|
1212
|
-
type: "root",
|
1213
|
-
children: richtext.children.map(function (child) {
|
1214
|
-
return toLexicalNode(child);
|
1215
|
-
})
|
1216
|
-
});
|
1217
|
-
}
|
1218
|
-
function toLexicalHeadingNode(heading) {
|
1219
|
-
return _objectSpread2(_objectSpread2({}, COMMON_LEXICAL_PROPS), {}, {
|
1220
|
-
type: "heading",
|
1221
|
-
tag: heading.tag,
|
1222
|
-
children: heading.children.map(function (child) {
|
1223
|
-
return toLexicalNode(child);
|
1224
|
-
})
|
1225
|
-
});
|
1226
|
-
}
|
1227
|
-
function toLexicalParagraphNode(paragraph) {
|
1228
|
-
return _objectSpread2(_objectSpread2({}, COMMON_LEXICAL_PROPS), {}, {
|
1229
|
-
type: "paragraph",
|
1230
|
-
children: paragraph.children.map(function (child) {
|
1231
|
-
return toLexicalNode(child, true);
|
1232
|
-
})
|
1233
|
-
});
|
1234
|
-
}
|
1235
|
-
|
1236
|
-
// Lexical does not support line breaks, so we convert them to empty paragraphs
|
1237
|
-
function toLexicalPseudoLineBreakNode() {
|
1238
|
-
return _objectSpread2(_objectSpread2({}, COMMON_LEXICAL_PROPS), {}, {
|
1239
|
-
type: "paragraph",
|
1240
|
-
children: []
|
1241
|
-
});
|
1242
|
-
}
|
1243
|
-
function toLexicalListItemNode(listItem) {
|
1244
|
-
return _objectSpread2(_objectSpread2({}, COMMON_LEXICAL_PROPS), {}, {
|
1245
|
-
type: "listitem",
|
1246
|
-
children: listItem.children.map(function (child) {
|
1247
|
-
return toLexicalNode(child, true);
|
1248
|
-
})
|
1249
|
-
});
|
1250
|
-
}
|
1251
|
-
function toLexicalListNode(list) {
|
1252
|
-
return _objectSpread2(_objectSpread2({}, COMMON_LEXICAL_PROPS), {}, {
|
1253
|
-
type: "list",
|
1254
|
-
listType: list.tag === "ol" ? "number" : "bullet",
|
1255
|
-
children: list.children.map(function (child) {
|
1256
|
-
return toLexicalNode(child);
|
1257
|
-
})
|
1258
|
-
}, list.dir ? {
|
1259
|
-
direction: list.dir
|
1260
|
-
} : {
|
1261
|
-
direction: null
|
1262
|
-
});
|
1263
|
-
}
|
1264
|
-
var FORMAT_MAPPING = {
|
1265
|
-
bold: 1,
|
1266
|
-
// 0001
|
1267
|
-
italic: 2,
|
1268
|
-
// 0010
|
1269
|
-
"line-through": 4 // 0100
|
1270
|
-
// underline: 8, // 1000
|
1271
|
-
};
|
1272
|
-
|
1273
|
-
function toLexicalFormat(classes) {
|
1274
|
-
return classes.reduce(function (prev, curr) {
|
1275
|
-
return prev | /* bitwise or */FORMAT_MAPPING[curr];
|
1276
|
-
}, 0);
|
1277
|
-
}
|
1278
|
-
function toLexicalTextNode(spanNode) {
|
1279
|
-
var child = spanNode.children[0];
|
1280
|
-
if (typeof child === "string") {
|
1281
|
-
return _objectSpread2(_objectSpread2({}, COMMON_LEXICAL_PROPS), {}, {
|
1282
|
-
type: "text",
|
1283
|
-
text: child,
|
1284
|
-
format: toLexicalFormat(spanNode.classes)
|
1285
|
-
});
|
1286
|
-
} else {
|
1287
|
-
// recurse the spans and merge their classes
|
1288
|
-
return toLexicalTextNode(_objectSpread2(_objectSpread2({}, child), {}, {
|
1289
|
-
classes: spanNode.classes.concat(child.classes)
|
1290
|
-
}));
|
1291
|
-
}
|
1292
|
-
}
|
1293
1126
|
|
1294
1127
|
var VAL_START_TAG_PREFIX = '<val value="';
|
1295
1128
|
var VAL_START_TAG_SUFFIX = '">';
|
@@ -1297,6 +1130,18 @@ var VAL_END_TAG = "</val>";
|
|
1297
1130
|
function parseTokens(tokens, sourceNodes, cursor) {
|
1298
1131
|
var insideList = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
1299
1132
|
var children = [];
|
1133
|
+
function merge(token, clazz) {
|
1134
|
+
var parsedTokens = parseTokens(token.tokens ? token.tokens : [], sourceNodes, 0);
|
1135
|
+
children.push({
|
1136
|
+
tag: "span",
|
1137
|
+
classes: [clazz].concat(parsedTokens.children.flatMap(function (child) {
|
1138
|
+
return typeof child === "string" ? [] : child.classes;
|
1139
|
+
})),
|
1140
|
+
children: parsedTokens.children.flatMap(function (child) {
|
1141
|
+
return typeof child === "string" ? child : child.children;
|
1142
|
+
})
|
1143
|
+
});
|
1144
|
+
}
|
1300
1145
|
var _loop = function _loop() {
|
1301
1146
|
var token = tokens[cursor];
|
1302
1147
|
if (token.type === "heading") {
|
@@ -1310,23 +1155,11 @@ function parseTokens(tokens, sourceNodes, cursor) {
|
|
1310
1155
|
children: parseTokens(token.tokens ? token.tokens : [], sourceNodes, 0).children
|
1311
1156
|
});
|
1312
1157
|
} else if (token.type === "strong") {
|
1313
|
-
|
1314
|
-
tag: "span",
|
1315
|
-
classes: ["bold"],
|
1316
|
-
children: parseTokens(token.tokens ? token.tokens : [], sourceNodes, 0).children
|
1317
|
-
});
|
1158
|
+
merge(token, "bold");
|
1318
1159
|
} else if (token.type === "em") {
|
1319
|
-
|
1320
|
-
tag: "span",
|
1321
|
-
classes: ["italic"],
|
1322
|
-
children: parseTokens(token.tokens ? token.tokens : [], sourceNodes, 0).children
|
1323
|
-
});
|
1160
|
+
merge(token, "italic");
|
1324
1161
|
} else if (token.type === "del") {
|
1325
|
-
|
1326
|
-
tag: "span",
|
1327
|
-
classes: ["line-through"],
|
1328
|
-
children: parseTokens(token.tokens ? token.tokens : [], sourceNodes, 0).children
|
1329
|
-
});
|
1162
|
+
merge(token, "line-through");
|
1330
1163
|
} else if (token.type === "text") {
|
1331
1164
|
if ("tokens" in token && Array.isArray(token.tokens)) {
|
1332
1165
|
children.push.apply(children, _toConsumableArray(parseTokens(token.tokens, sourceNodes, cursor, insideList).children));
|
@@ -1335,6 +1168,11 @@ function parseTokens(tokens, sourceNodes, cursor) {
|
|
1335
1168
|
var lines = token.raw.split("\n");
|
1336
1169
|
var tags = lines.flatMap(function (line, i) {
|
1337
1170
|
if (i === lines.length - 1) return [line];
|
1171
|
+
if (i === lines.length - 1 && line === "") return [];
|
1172
|
+
if (line === "") return {
|
1173
|
+
tag: "br",
|
1174
|
+
children: []
|
1175
|
+
};
|
1338
1176
|
return [line, {
|
1339
1177
|
tag: "br",
|
1340
1178
|
children: []
|
@@ -1404,10 +1242,16 @@ function parseTokens(tokens, sourceNodes, cursor) {
|
|
1404
1242
|
}
|
1405
1243
|
var br_html_regex = /<br\s*\/?>/gi; // matches <br>, <br/>, <br />; case insensitive
|
1406
1244
|
if (token.text.trim().match(br_html_regex)) {
|
1245
|
+
var _tokens;
|
1407
1246
|
children.push({
|
1408
1247
|
tag: "br",
|
1409
1248
|
children: []
|
1410
1249
|
});
|
1250
|
+
if (((_tokens = tokens[cursor + 1]) === null || _tokens === void 0 ? void 0 : _tokens.raw.trim()) === "") {
|
1251
|
+
// if next token is a new line or white-spaces, skip it
|
1252
|
+
// this typically means we have a <br> AND a new line, which, semantically, is just a <br>
|
1253
|
+
cursor++;
|
1254
|
+
}
|
1411
1255
|
}
|
1412
1256
|
} else if (token.type === "link") {
|
1413
1257
|
if (token.raw === token.href) {
|
@@ -1467,22 +1311,359 @@ function parseRichTextSource(_ref) {
|
|
1467
1311
|
return _defineProperty(_defineProperty({}, core.VAL_EXTENSION, "richtext"), "children", children);
|
1468
1312
|
}
|
1469
1313
|
|
1314
|
+
var RemirrorTextMark = zod.z.object({
|
1315
|
+
type: zod.z.union([zod.z.literal("bold"), zod.z.literal("strike"), zod.z.literal("italic")])
|
1316
|
+
});
|
1317
|
+
var RemirrorLinkMark = zod.z.object({
|
1318
|
+
type: zod.z.literal("link"),
|
1319
|
+
attrs: zod.z.object({
|
1320
|
+
href: zod.z.string(),
|
1321
|
+
target: zod.z.union([zod.z.literal("_blank"), zod.z["null"]()]),
|
1322
|
+
auto: zod.z["boolean"]()
|
1323
|
+
})
|
1324
|
+
});
|
1325
|
+
var RemirrorText = zod.z.intersection(zod.z.object({
|
1326
|
+
type: zod.z.literal("text"),
|
1327
|
+
text: zod.z.string()
|
1328
|
+
}), zod.z.object({
|
1329
|
+
marks: zod.z.array(zod.z.union([RemirrorTextMark, RemirrorLinkMark]))
|
1330
|
+
}).partial());
|
1331
|
+
var RemirrorBr = zod.z.intersection(zod.z.object({
|
1332
|
+
type: zod.z.literal("hardBreak")
|
1333
|
+
}), zod.z.object({
|
1334
|
+
marks: zod.z.array(RemirrorTextMark)
|
1335
|
+
}).partial());
|
1336
|
+
var RemirrorImage = zod.z.intersection(zod.z.object({
|
1337
|
+
type: zod.z.literal("image")
|
1338
|
+
}), zod.z.object({
|
1339
|
+
attrs: zod.z.intersection(zod.z.object({
|
1340
|
+
src: zod.z.string()
|
1341
|
+
}), zod.z.object({
|
1342
|
+
align: zod.z.union([zod.z.literal("center"), zod.z.literal("end"), zod.z.literal("justify"), zod.z.literal("left"), zod.z.literal("match-parent"), zod.z.literal("right"), zod.z.literal("start"), zod.z["null"]()]),
|
1343
|
+
alt: zod.z.union([zod.z.string(), zod.z["null"]()]),
|
1344
|
+
height: zod.z.union([zod.z.string(), zod.z.number(), zod.z["null"]()]),
|
1345
|
+
width: zod.z.union([zod.z.string(), zod.z.number(), zod.z["null"]()]),
|
1346
|
+
rotate: zod.z.union([zod.z.string(), zod.z["null"]()]),
|
1347
|
+
title: zod.z.union([zod.z.string(), zod.z["null"]()]),
|
1348
|
+
fileName: zod.z.union([zod.z.string(), zod.z["null"]()])
|
1349
|
+
}).partial())
|
1350
|
+
}).partial());
|
1351
|
+
var RemirrorHeading = zod.z.intersection(zod.z.object({
|
1352
|
+
type: zod.z.literal("heading")
|
1353
|
+
}), zod.z.object({
|
1354
|
+
attrs: zod.z.object({
|
1355
|
+
level: zod.z.number()
|
1356
|
+
}),
|
1357
|
+
content: zod.z.array(zod.z.union([RemirrorText, RemirrorBr]))
|
1358
|
+
}).partial());
|
1359
|
+
var RemirrorBulletList = zod.z.lazy(function () {
|
1360
|
+
return zod.z.intersection(zod.z.object({
|
1361
|
+
type: zod.z.literal("bulletList")
|
1362
|
+
}), zod.z.object({
|
1363
|
+
content: zod.z.array(RemirrorListItem)
|
1364
|
+
}).partial());
|
1365
|
+
});
|
1366
|
+
var RemirrorOrderedList = zod.z.lazy(function () {
|
1367
|
+
return zod.z.intersection(zod.z.object({
|
1368
|
+
type: zod.z.literal("orderedList")
|
1369
|
+
}), zod.z.object({
|
1370
|
+
content: zod.z.array(RemirrorListItem)
|
1371
|
+
}).partial());
|
1372
|
+
});
|
1373
|
+
var RemirrorListItem = zod.z.lazy(function () {
|
1374
|
+
return zod.z.intersection(zod.z.object({
|
1375
|
+
type: zod.z.literal("listItem")
|
1376
|
+
}), zod.z.object({
|
1377
|
+
content: zod.z.array(zod.z.union([RemirrorParagraph, RemirrorBulletList, RemirrorOrderedList]))
|
1378
|
+
}).partial());
|
1379
|
+
});
|
1380
|
+
var RemirrorParagraph = zod.z.intersection(zod.z.object({
|
1381
|
+
type: zod.z.literal("paragraph")
|
1382
|
+
}), zod.z.object({
|
1383
|
+
content: zod.z.array(zod.z.union([RemirrorText, RemirrorImage, RemirrorBr]))
|
1384
|
+
}).partial());
|
1385
|
+
var RemirrorJSON = zod.z.object({
|
1386
|
+
type: zod.z.literal("doc"),
|
1387
|
+
content: zod.z.array(zod.z.union([RemirrorParagraph, RemirrorHeading, RemirrorBulletList, RemirrorOrderedList]))
|
1388
|
+
});
|
1389
|
+
|
1390
|
+
function ownKeys(e, r) {
|
1391
|
+
var t = Object.keys(e);
|
1392
|
+
if (Object.getOwnPropertySymbols) {
|
1393
|
+
var o = Object.getOwnPropertySymbols(e);
|
1394
|
+
r && (o = o.filter(function (r) {
|
1395
|
+
return Object.getOwnPropertyDescriptor(e, r).enumerable;
|
1396
|
+
})), t.push.apply(t, o);
|
1397
|
+
}
|
1398
|
+
return t;
|
1399
|
+
}
|
1400
|
+
function _objectSpread2(e) {
|
1401
|
+
for (var r = 1; r < arguments.length; r++) {
|
1402
|
+
var t = null != arguments[r] ? arguments[r] : {};
|
1403
|
+
r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {
|
1404
|
+
_defineProperty(e, r, t[r]);
|
1405
|
+
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
|
1406
|
+
Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
|
1407
|
+
});
|
1408
|
+
}
|
1409
|
+
return e;
|
1410
|
+
}
|
1411
|
+
|
1412
|
+
function richTextToRemirror(richtext) {
|
1413
|
+
return {
|
1414
|
+
type: "doc",
|
1415
|
+
content: richtext.children.map(function (child) {
|
1416
|
+
return toRemirrorNode(child);
|
1417
|
+
})
|
1418
|
+
};
|
1419
|
+
}
|
1420
|
+
function toRemirrorNode(child) {
|
1421
|
+
switch (child.tag) {
|
1422
|
+
case "h1":
|
1423
|
+
return convertHeadingToRemirror(1, child.children);
|
1424
|
+
case "h2":
|
1425
|
+
return convertHeadingToRemirror(2, child.children);
|
1426
|
+
case "h3":
|
1427
|
+
return convertHeadingToRemirror(3, child.children);
|
1428
|
+
case "h4":
|
1429
|
+
return convertHeadingToRemirror(4, child.children);
|
1430
|
+
case "h5":
|
1431
|
+
return convertHeadingToRemirror(5, child.children);
|
1432
|
+
case "h6":
|
1433
|
+
return convertHeadingToRemirror(6, child.children);
|
1434
|
+
case "p":
|
1435
|
+
return convertParagraphToRemirror(child.children);
|
1436
|
+
case "ul":
|
1437
|
+
return convertUlToRemirror(child);
|
1438
|
+
case "ol":
|
1439
|
+
return convertOlToRemirror(child);
|
1440
|
+
case "br":
|
1441
|
+
return convertParagraphToRemirror([child]);
|
1442
|
+
default:
|
1443
|
+
{
|
1444
|
+
var _exhaustiveCheck = child;
|
1445
|
+
throw Error("Unexpected child node: " + JSON.stringify(_exhaustiveCheck));
|
1446
|
+
}
|
1447
|
+
}
|
1448
|
+
}
|
1449
|
+
function convertHeadingToRemirror(level, children) {
|
1450
|
+
return {
|
1451
|
+
type: "heading",
|
1452
|
+
attrs: {
|
1453
|
+
level: level
|
1454
|
+
},
|
1455
|
+
content: children.flatMap(convertStringOrSpanNodeToRemirror)
|
1456
|
+
};
|
1457
|
+
}
|
1458
|
+
function convertStringToRemirror(child) {
|
1459
|
+
return {
|
1460
|
+
type: "text",
|
1461
|
+
text: child
|
1462
|
+
};
|
1463
|
+
}
|
1464
|
+
function convertStringOrSpanNodeToRemirror(child) {
|
1465
|
+
if (typeof child === "string") {
|
1466
|
+
return [convertStringToRemirror(child)];
|
1467
|
+
}
|
1468
|
+
return convertSpanNodeToRemirror(child);
|
1469
|
+
}
|
1470
|
+
function convertSpanNodeToRemirror(spanNode) {
|
1471
|
+
if (spanNode.classes.length === 0 && spanNode.children.length === 1) {
|
1472
|
+
if (typeof spanNode.children[0] === "string") {
|
1473
|
+
return [convertStringToRemirror(spanNode.children[0])];
|
1474
|
+
} else {
|
1475
|
+
// TODO: replace with error logging and something more graceful?
|
1476
|
+
throw Error("Unexpected amount of children in span node: " + JSON.stringify(spanNode, null, 2));
|
1477
|
+
}
|
1478
|
+
}
|
1479
|
+
return spanNode.children.map(function (child) {
|
1480
|
+
return {
|
1481
|
+
type: "text",
|
1482
|
+
text: child,
|
1483
|
+
marks: spanNode.classes.map(function (className) {
|
1484
|
+
switch (className) {
|
1485
|
+
case "bold":
|
1486
|
+
return {
|
1487
|
+
type: "bold"
|
1488
|
+
};
|
1489
|
+
case "italic":
|
1490
|
+
return {
|
1491
|
+
type: "italic"
|
1492
|
+
};
|
1493
|
+
case "line-through":
|
1494
|
+
return {
|
1495
|
+
type: "strike"
|
1496
|
+
};
|
1497
|
+
default:
|
1498
|
+
{
|
1499
|
+
var _exhaustiveCheck = className;
|
1500
|
+
throw Error("Unexpected span class: " + _exhaustiveCheck);
|
1501
|
+
}
|
1502
|
+
}
|
1503
|
+
})
|
1504
|
+
};
|
1505
|
+
});
|
1506
|
+
}
|
1507
|
+
function convertParagraphToRemirror(children) {
|
1508
|
+
return {
|
1509
|
+
type: "paragraph",
|
1510
|
+
content: children.flatMap(function (child) {
|
1511
|
+
if (typeof child === "string") {
|
1512
|
+
return [convertStringToRemirror(child)];
|
1513
|
+
}
|
1514
|
+
switch (child.tag) {
|
1515
|
+
case "span":
|
1516
|
+
return convertSpanNodeToRemirror(child);
|
1517
|
+
case "a":
|
1518
|
+
return convertLinkNodeToRemirror(child);
|
1519
|
+
case "img":
|
1520
|
+
return [convertImageNodeToRemirror(child)];
|
1521
|
+
case "br":
|
1522
|
+
return [createRemirrorBr()];
|
1523
|
+
default:
|
1524
|
+
{
|
1525
|
+
var _exhaustiveCheck = child;
|
1526
|
+
throw Error("Unexpected paragraph child: " + JSON.stringify(_exhaustiveCheck));
|
1527
|
+
}
|
1528
|
+
}
|
1529
|
+
})
|
1530
|
+
};
|
1531
|
+
}
|
1532
|
+
function createRemirrorBr() {
|
1533
|
+
return {
|
1534
|
+
type: "hardBreak",
|
1535
|
+
marks: []
|
1536
|
+
};
|
1537
|
+
}
|
1538
|
+
function convertLinkNodeToRemirror(linkNode) {
|
1539
|
+
return linkNode.children.flatMap(convertStringOrSpanNodeToRemirror).map(function (remirrorText) {
|
1540
|
+
return _objectSpread2(_objectSpread2({}, remirrorText), {}, {
|
1541
|
+
marks: (remirrorText.marks || []).concat({
|
1542
|
+
type: "link",
|
1543
|
+
attrs: {
|
1544
|
+
href: linkNode.href,
|
1545
|
+
auto: false,
|
1546
|
+
target: null
|
1547
|
+
}
|
1548
|
+
})
|
1549
|
+
});
|
1550
|
+
});
|
1551
|
+
}
|
1552
|
+
function convertImageNodeToRemirror(imageNode) {
|
1553
|
+
return {
|
1554
|
+
type: "image",
|
1555
|
+
attrs: {
|
1556
|
+
height: imageNode.height,
|
1557
|
+
width: imageNode.width,
|
1558
|
+
src: imageNode.src // at time of writing we are not sure if src as href or data url works, also: how to keep mimeType etc?
|
1559
|
+
}
|
1560
|
+
};
|
1561
|
+
}
|
1562
|
+
function convertUlToRemirror(ulNode) {
|
1563
|
+
return {
|
1564
|
+
type: "bulletList",
|
1565
|
+
content: ulNode.children.map(convertListItemToRemirror)
|
1566
|
+
};
|
1567
|
+
}
|
1568
|
+
function convertOlToRemirror(olNode) {
|
1569
|
+
return {
|
1570
|
+
type: "orderedList",
|
1571
|
+
content: olNode.children.map(convertListItemToRemirror)
|
1572
|
+
};
|
1573
|
+
}
|
1574
|
+
function convertListItemToRemirror(liNode) {
|
1575
|
+
return {
|
1576
|
+
type: "listItem",
|
1577
|
+
content: convertListItemToRemirrorParagraph(liNode.children)
|
1578
|
+
};
|
1579
|
+
}
|
1580
|
+
function convertListItemToRemirrorParagraph(rtChildren) {
|
1581
|
+
var children = [];
|
1582
|
+
var _iterator = _createForOfIteratorHelper(rtChildren),
|
1583
|
+
_step;
|
1584
|
+
try {
|
1585
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
1586
|
+
var child = _step.value;
|
1587
|
+
var lastChild = children[children.length - 1];
|
1588
|
+
if (!lastChild) {
|
1589
|
+
lastChild = {
|
1590
|
+
type: "paragraph",
|
1591
|
+
content: []
|
1592
|
+
};
|
1593
|
+
children.push(lastChild);
|
1594
|
+
}
|
1595
|
+
var lastChildContent = lastChild.content;
|
1596
|
+
if (typeof child === "string") {
|
1597
|
+
lastChildContent.push(convertStringToRemirror(child));
|
1598
|
+
} else {
|
1599
|
+
switch (child.tag) {
|
1600
|
+
case "a":
|
1601
|
+
{
|
1602
|
+
lastChildContent.push.apply(lastChildContent, _toConsumableArray(convertLinkNodeToRemirror(child)));
|
1603
|
+
break;
|
1604
|
+
}
|
1605
|
+
case "br":
|
1606
|
+
{
|
1607
|
+
children.push({
|
1608
|
+
type: "paragraph",
|
1609
|
+
content: [] // create new paragraph
|
1610
|
+
});
|
1611
|
+
break;
|
1612
|
+
}
|
1613
|
+
case "span":
|
1614
|
+
{
|
1615
|
+
lastChildContent.push.apply(lastChildContent, _toConsumableArray(convertSpanNodeToRemirror(child)));
|
1616
|
+
break;
|
1617
|
+
}
|
1618
|
+
case "ol":
|
1619
|
+
{
|
1620
|
+
children.push(convertOlToRemirror(child));
|
1621
|
+
break;
|
1622
|
+
}
|
1623
|
+
case "ul":
|
1624
|
+
{
|
1625
|
+
children.push(convertUlToRemirror(child));
|
1626
|
+
break;
|
1627
|
+
}
|
1628
|
+
default:
|
1629
|
+
{
|
1630
|
+
var _exhaustiveCheck = child;
|
1631
|
+
throw Error("Unexpected list item child: " + JSON.stringify(_exhaustiveCheck));
|
1632
|
+
}
|
1633
|
+
}
|
1634
|
+
}
|
1635
|
+
}
|
1636
|
+
} catch (err) {
|
1637
|
+
_iterator.e(err);
|
1638
|
+
} finally {
|
1639
|
+
_iterator.f();
|
1640
|
+
}
|
1641
|
+
return children;
|
1642
|
+
}
|
1643
|
+
|
1470
1644
|
var VAL_SESSION_COOKIE = core.Internal.VAL_SESSION_COOKIE;
|
1471
1645
|
var VAL_STATE_COOKIE = core.Internal.VAL_STATE_COOKIE;
|
1472
1646
|
var VAL_ENABLE_COOKIE_NAME = core.Internal.VAL_ENABLE_COOKIE_NAME;
|
1473
1647
|
|
1474
|
-
exports.COMMON_LEXICAL_PROPS = COMMON_LEXICAL_PROPS;
|
1475
1648
|
exports.EXT_TO_MIME_TYPES = EXT_TO_MIME_TYPES;
|
1476
1649
|
exports.MIME_TYPES_TO_EXT = MIME_TYPES_TO_EXT;
|
1650
|
+
exports.RemirrorBr = RemirrorBr;
|
1651
|
+
exports.RemirrorBulletList = RemirrorBulletList;
|
1652
|
+
exports.RemirrorHeading = RemirrorHeading;
|
1653
|
+
exports.RemirrorImage = RemirrorImage;
|
1654
|
+
exports.RemirrorJSON = RemirrorJSON;
|
1655
|
+
exports.RemirrorLinkMark = RemirrorLinkMark;
|
1656
|
+
exports.RemirrorListItem = RemirrorListItem;
|
1657
|
+
exports.RemirrorOrderedList = RemirrorOrderedList;
|
1658
|
+
exports.RemirrorParagraph = RemirrorParagraph;
|
1659
|
+
exports.RemirrorText = RemirrorText;
|
1660
|
+
exports.RemirrorTextMark = RemirrorTextMark;
|
1477
1661
|
exports.VAL_ENABLE_COOKIE_NAME = VAL_ENABLE_COOKIE_NAME;
|
1478
1662
|
exports.VAL_SESSION_COOKIE = VAL_SESSION_COOKIE;
|
1479
1663
|
exports.VAL_STATE_COOKIE = VAL_STATE_COOKIE;
|
1480
1664
|
exports.filenameToMimeType = filenameToMimeType;
|
1481
|
-
exports.fromLexicalFormat = fromLexicalFormat;
|
1482
1665
|
exports.getMimeType = getMimeType;
|
1483
|
-
exports.lexicalToRichTextSource = lexicalToRichTextSource;
|
1484
1666
|
exports.mimeTypeToFileExt = mimeTypeToFileExt;
|
1485
1667
|
exports.parseRichTextSource = parseRichTextSource;
|
1486
|
-
exports.
|
1487
|
-
exports.
|
1488
|
-
exports.toLexicalNode = toLexicalNode;
|
1668
|
+
exports.remirrorToRichTextSource = remirrorToRichTextSource;
|
1669
|
+
exports.richTextToRemirror = richTextToRemirror;
|