@@ -27,14 +27,14 @@ class EditorJSStyle implements InlineTool {
27
27
span . firstChild ?. nodeName !== '#text' ||
28
28
span . firstChild ?. textContent ?. slice ( 0 , 1 ) !== '\u200b'
29
29
) {
30
- span . prepend ( document . createTextNode ( '\u200b' ) ) ;
30
+ span . prepend ( '\u200b' ) ;
31
31
}
32
32
33
33
if (
34
34
span . lastChild ?. nodeName !== '#text' ||
35
35
span . lastChild ?. textContent ?. slice ( - 1 ) !== '\u200b'
36
36
) {
37
- span . append ( document . createTextNode ( '\u200b' ) ) ;
37
+ span . append ( '\u200b' ) ;
38
38
}
39
39
} ) ;
40
40
@@ -169,6 +169,7 @@ class EditorJSStyle implements InlineTool {
169
169
170
170
styleTextarea . value = span . getAttribute ( 'style' ) ?? '' ;
171
171
172
+ // To input line breaks
172
173
styleTextarea . addEventListener ( 'keydown' , ( event ) =>
173
174
event . stopPropagation ( )
174
175
) ;
@@ -216,7 +217,8 @@ class EditorJSStyle implements InlineTool {
216
217
. forEach ( ( element ) => {
217
218
EditorJSStyle . initializeSpan ( { span : element as HTMLSpanElement } ) ;
218
219
219
- element . appendChild ( document . createTextNode ( '' ) ) ;
220
+ // To dispatch mutation observer
221
+ element . append ( '' ) ;
220
222
} ) ;
221
223
222
224
mutationObserver . disconnect ( ) ;
@@ -237,10 +239,12 @@ class EditorJSStyle implements InlineTool {
237
239
238
240
EditorJSStyle . initializeSpan ( { span } ) ;
239
241
240
- span . append ( range . extractContents ( ) ) ;
242
+ span . append ( range . collapsed ? 'new style' : range . extractContents ( ) ) ;
241
243
242
- range . insertNode ( span ) ;
243
- this . api . selection . expandToTag ( span ) ;
244
+ setTimeout ( ( ) => {
245
+ range . insertNode ( span ) ;
246
+ this . api . selection . expandToTag ( span ) ;
247
+ } ) ;
244
248
}
245
249
}
246
250
0 commit comments