smartrte-react 0.1.3 → 0.1.4
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/dist/components/ClassicEditor.js +18 -13
- package/dist/standalone/editor.js +55 -55
- package/package.json +1 -1
|
@@ -108,9 +108,7 @@ export function ClassicEditor({ value, onChange, placeholder = "Type here…", m
|
|
|
108
108
|
range = document.createRange();
|
|
109
109
|
range.selectNodeContents(host);
|
|
110
110
|
range.collapse(false);
|
|
111
|
-
|
|
112
|
-
sel?.removeAllRanges();
|
|
113
|
-
sel?.addRange(range);
|
|
111
|
+
safeSelectRange(range);
|
|
114
112
|
}
|
|
115
113
|
const img = document.createElement("img");
|
|
116
114
|
img.src = src;
|
|
@@ -127,15 +125,26 @@ export function ClassicEditor({ value, onChange, placeholder = "Type here…", m
|
|
|
127
125
|
const r = document.createRange();
|
|
128
126
|
r.setStartAfter(img);
|
|
129
127
|
r.collapse(true);
|
|
130
|
-
|
|
131
|
-
s?.removeAllRanges();
|
|
132
|
-
s?.addRange(r);
|
|
128
|
+
safeSelectRange(r);
|
|
133
129
|
setSelectedImage(img);
|
|
134
130
|
scheduleImageOverlay();
|
|
135
131
|
handleInput();
|
|
136
132
|
}
|
|
137
133
|
catch { }
|
|
138
134
|
};
|
|
135
|
+
const safeSelectRange = (range) => {
|
|
136
|
+
try {
|
|
137
|
+
if (!range)
|
|
138
|
+
return;
|
|
139
|
+
const start = range.startContainer;
|
|
140
|
+
if (!start || !start.isConnected)
|
|
141
|
+
return;
|
|
142
|
+
const sel = window.getSelection();
|
|
143
|
+
sel?.removeAllRanges();
|
|
144
|
+
sel?.addRange(range);
|
|
145
|
+
}
|
|
146
|
+
catch { }
|
|
147
|
+
};
|
|
139
148
|
const insertFormulaAtSelection = (tex) => {
|
|
140
149
|
if (!tex)
|
|
141
150
|
return;
|
|
@@ -150,9 +159,7 @@ export function ClassicEditor({ value, onChange, placeholder = "Type here…", m
|
|
|
150
159
|
range = document.createRange();
|
|
151
160
|
range.selectNodeContents(host);
|
|
152
161
|
range.collapse(false);
|
|
153
|
-
|
|
154
|
-
sel?.removeAllRanges();
|
|
155
|
-
sel?.addRange(range);
|
|
162
|
+
safeSelectRange(range);
|
|
156
163
|
}
|
|
157
164
|
const span = document.createElement("span");
|
|
158
165
|
span.setAttribute("data-formula", tex);
|
|
@@ -176,9 +183,7 @@ export function ClassicEditor({ value, onChange, placeholder = "Type here…", m
|
|
|
176
183
|
const r = document.createRange();
|
|
177
184
|
r.setStartAfter(span);
|
|
178
185
|
r.collapse(true);
|
|
179
|
-
|
|
180
|
-
s?.removeAllRanges();
|
|
181
|
-
s?.addRange(r);
|
|
186
|
+
safeSelectRange(r);
|
|
182
187
|
handleInput();
|
|
183
188
|
}
|
|
184
189
|
catch { }
|
|
@@ -1003,7 +1008,7 @@ export function ClassicEditor({ value, onChange, placeholder = "Type here…", m
|
|
|
1003
1008
|
else {
|
|
1004
1009
|
setTableMenu(null);
|
|
1005
1010
|
}
|
|
1006
|
-
}
|
|
1011
|
+
} }), selectedImage && imageOverlay && (_jsxs("div", { style: {
|
|
1007
1012
|
position: "fixed",
|
|
1008
1013
|
left: imageOverlay.left,
|
|
1009
1014
|
top: imageOverlay.top,
|