@squiz/formatted-text-editor 1.67.0 → 1.67.1
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 +8 -0
- package/lib/utils/converters/remirrorNodeToSquizNode/remirrorNodeToSquizNode.js +4 -2
- package/lib/utils/converters/squizNodeToRemirrorNode/squizNodeToRemirrorNode.js +1 -1
- package/package.json +2 -2
- package/src/utils/converters/remirrorNodeToSquizNode/remirrorNodeToSquizNode.ts +7 -3
- package/src/utils/converters/squizNodeToRemirrorNode/squizNodeToRemirrorNode.ts +1 -1
package/CHANGELOG.md
CHANGED
@@ -121,7 +121,9 @@ const transformNode = (node) => {
|
|
121
121
|
* @return {FormattedNode}
|
122
122
|
*/
|
123
123
|
const wrapNodeIfNeeded = (node, wrappingNode, copyFont = true) => {
|
124
|
+
const wrappingNodeChildren = wrappingNode.children || [];
|
124
125
|
if (node.type === 'tag' && wrappingNode.type === 'tag' && (node.tag === 'span' || node.tag === wrappingNode.tag)) {
|
126
|
+
const nodeChildren = node.children || [];
|
125
127
|
// if the node we are wrapping with is a DOM node, and the node being wrapped is
|
126
128
|
// a plain looking DOM node merge the 2 nodes.
|
127
129
|
return {
|
@@ -141,13 +143,13 @@ const wrapNodeIfNeeded = (node, wrappingNode, copyFont = true) => {
|
|
141
143
|
...wrappingNode.font,
|
142
144
|
}
|
143
145
|
: {}),
|
144
|
-
children: [...
|
146
|
+
children: [...nodeChildren, ...wrappingNodeChildren],
|
145
147
|
};
|
146
148
|
}
|
147
149
|
// if the node we are wrapping or the wrapping nodes are not compatible merge them.
|
148
150
|
return {
|
149
151
|
...wrappingNode,
|
150
|
-
children: [node, ...
|
152
|
+
children: [node, ...wrappingNodeChildren],
|
151
153
|
};
|
152
154
|
};
|
153
155
|
const transformMark = (mark, node) => {
|
@@ -133,7 +133,7 @@ const unwrapNodeIfNeeded = (node) => {
|
|
133
133
|
const formatNode = (node) => {
|
134
134
|
const children = [];
|
135
135
|
if ('children' in node) {
|
136
|
-
node.children
|
136
|
+
node.children?.forEach((child) => {
|
137
137
|
children.push(...formatNode(child));
|
138
138
|
});
|
139
139
|
}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@squiz/formatted-text-editor",
|
3
|
-
"version": "1.67.
|
3
|
+
"version": "1.67.1",
|
4
4
|
"main": "lib/index.js",
|
5
5
|
"types": "lib/index.d.ts",
|
6
6
|
"private": false,
|
@@ -23,7 +23,7 @@
|
|
23
23
|
"@headlessui/react": "1.7.11",
|
24
24
|
"@mui/icons-material": "5.11.16",
|
25
25
|
"@remirror/react": "2.0.25",
|
26
|
-
"@squiz/dx-json-schema-lib": "^1.65.
|
26
|
+
"@squiz/dx-json-schema-lib": "^1.65.1",
|
27
27
|
"@squiz/resource-browser": "^1.66.3",
|
28
28
|
"clsx": "1.2.1",
|
29
29
|
"react-hook-form": "7.43.2",
|
@@ -13,7 +13,7 @@ type FontOptions = FormattedTextModels.v1.FormattedNodeFontProperties;
|
|
13
13
|
type FormattedText = FormattedTextModels.v1.FormattedText;
|
14
14
|
type FormattedNode = FormattedTextModels.v1.FormattedNodes;
|
15
15
|
type FormattedNodeFontProperties = FormattedTextModels.v1.FormattedNodeFontProperties;
|
16
|
-
type FormattedNodeWithChildren = Extract<FormattedNode, { children
|
16
|
+
type FormattedNodeWithChildren = Extract<FormattedNode, { children?: FormattedNode[] }>;
|
17
17
|
type RemirrorTextAlignment = Exclude<Remirror.Attributes['nodeTextAlignment'], undefined>;
|
18
18
|
type FormattedTextAlignment = FormattingOptions['alignment'];
|
19
19
|
|
@@ -164,7 +164,11 @@ const wrapNodeIfNeeded = (
|
|
164
164
|
wrappingNode: FormattedNodeWithChildren,
|
165
165
|
copyFont: boolean = true,
|
166
166
|
): FormattedNode => {
|
167
|
+
const wrappingNodeChildren = wrappingNode.children || [];
|
168
|
+
|
167
169
|
if (node.type === 'tag' && wrappingNode.type === 'tag' && (node.tag === 'span' || node.tag === wrappingNode.tag)) {
|
170
|
+
const nodeChildren = node.children || [];
|
171
|
+
|
168
172
|
// if the node we are wrapping with is a DOM node, and the node being wrapped is
|
169
173
|
// a plain looking DOM node merge the 2 nodes.
|
170
174
|
return {
|
@@ -186,14 +190,14 @@ const wrapNodeIfNeeded = (
|
|
186
190
|
}
|
187
191
|
: {},
|
188
192
|
),
|
189
|
-
children: [...
|
193
|
+
children: [...nodeChildren, ...wrappingNodeChildren],
|
190
194
|
};
|
191
195
|
}
|
192
196
|
|
193
197
|
// if the node we are wrapping or the wrapping nodes are not compatible merge them.
|
194
198
|
return {
|
195
199
|
...wrappingNode,
|
196
|
-
children: [node, ...
|
200
|
+
children: [node, ...wrappingNodeChildren],
|
197
201
|
};
|
198
202
|
};
|
199
203
|
|
@@ -146,7 +146,7 @@ const formatNode = (node: FormattedNodes): RemirrorJSON[] => {
|
|
146
146
|
const children: RemirrorJSON[] = [];
|
147
147
|
|
148
148
|
if ('children' in node) {
|
149
|
-
node.children
|
149
|
+
node.children?.forEach((child: FormattedNodes) => {
|
150
150
|
children.push(...formatNode(child));
|
151
151
|
});
|
152
152
|
}
|