@cocreate/text 1.6.3 → 1.6.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/CHANGELOG.md +7 -0
- package/package.json +1 -1
- package/src/index.js +16 -22
package/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
## [1.6.4](https://github.com/CoCreate-app/CoCreate-text/compare/v1.6.3...v1.6.4) (2021-09-18)
|
2
|
+
|
3
|
+
|
4
|
+
### Bug Fixes
|
5
|
+
|
6
|
+
* dispatch Event with content, start, end ([3433e01](https://github.com/CoCreate-app/CoCreate-text/commit/3433e01f0c7011a2f94c0a3a129510617450b4fc))
|
7
|
+
|
1
8
|
## [1.6.3](https://github.com/CoCreate-app/CoCreate-text/compare/v1.6.2...v1.6.3) (2021-09-16)
|
2
9
|
|
3
10
|
|
package/package.json
CHANGED
package/src/index.js
CHANGED
@@ -109,6 +109,7 @@ function _keydown (event) {
|
|
109
109
|
sendPosition(element);
|
110
110
|
const { start, end } = getSelections(element);
|
111
111
|
if(event.key == "Backspace" || event.key == "Tab" || event.key == "Enter") {
|
112
|
+
// eventObj = {event, detail: {value: event.key, start, end}};
|
112
113
|
eventObj = event;
|
113
114
|
if(start != end) {
|
114
115
|
deleteText(element, start, end);
|
@@ -134,6 +135,7 @@ function _keypress (event) {
|
|
134
135
|
deleteText(element, start, end);
|
135
136
|
}
|
136
137
|
eventObj = event;
|
138
|
+
// eventObj = {event, detail: {value: event.key, start, end}};
|
137
139
|
insertText(element, event.key, start);
|
138
140
|
event.preventDefault();
|
139
141
|
}
|
@@ -231,12 +233,12 @@ function _crdtUpdateListener () {
|
|
231
233
|
if(element === document.activeElement) {
|
232
234
|
sendPosition(element);
|
233
235
|
}
|
234
|
-
|
236
|
+
updateElement(element, info);
|
235
237
|
});
|
236
238
|
});
|
237
239
|
}
|
238
240
|
|
239
|
-
function
|
241
|
+
function updateElement (element, info) {
|
240
242
|
element.crudSetted = true;
|
241
243
|
|
242
244
|
var pos = 0;
|
@@ -303,22 +305,26 @@ function _updateElementText (element, content, start, end) {
|
|
303
305
|
sendPosition(element);
|
304
306
|
}
|
305
307
|
|
306
|
-
_dispatchInputEvent(element);
|
308
|
+
_dispatchInputEvent(element, content, start, end);
|
307
309
|
}
|
308
310
|
|
309
|
-
function _dispatchInputEvent(element) {
|
311
|
+
function _dispatchInputEvent(element, content, start, end) {
|
310
312
|
if(eventObj) {
|
313
|
+
let detail = {value: content, start, end};
|
311
314
|
let event = new CustomEvent(eventObj.type, { bubbles: true });
|
312
315
|
Object.defineProperty(event, 'stopCCText', { writable: false, value: true });
|
313
|
-
Object.defineProperty(event, 'target', { writable: false, value:
|
316
|
+
Object.defineProperty(event, 'target', { writable: false, value: element });
|
317
|
+
Object.defineProperty(event, 'detail', { writable: false, value: detail });
|
314
318
|
element.dispatchEvent(event);
|
315
319
|
|
316
320
|
let inputEvent = new CustomEvent('input', { bubbles: true });
|
317
|
-
Object.defineProperty(inputEvent, 'target', { writable: false, value:
|
321
|
+
Object.defineProperty(inputEvent, 'target', { writable: false, value: element });
|
322
|
+
Object.defineProperty(inputEvent, 'detail', { writable: false, value: detail });
|
318
323
|
element.dispatchEvent(inputEvent);
|
319
324
|
|
320
325
|
let textChange = new CustomEvent('textChange', { bubbles: true });
|
321
|
-
Object.defineProperty(textChange, 'target', { writable: false, value:
|
326
|
+
Object.defineProperty(textChange, 'target', { writable: false, value: element });
|
327
|
+
Object.defineProperty(textChange, 'detail', { writable: false, value: detail });
|
322
328
|
element.dispatchEvent(textChange);
|
323
329
|
eventObj = null;
|
324
330
|
}
|
@@ -390,22 +396,10 @@ const contenteditable = {
|
|
390
396
|
}
|
391
397
|
}
|
392
398
|
setSelection(element, prev_start, prev_end);
|
393
|
-
_dispatchInputEvent(element);
|
394
|
-
return { start: prev_start, end: prev_end };
|
399
|
+
_dispatchInputEvent(element, content, start, end);
|
395
400
|
},
|
396
401
|
|
397
|
-
|
398
|
-
// if (document.activeElement !== element) return;
|
399
|
-
|
400
|
-
// var selection = document.getSelection();
|
401
|
-
// var range = this._cloneRangeByPosition(element, start, end);
|
402
|
-
// selection.removeAllRanges();
|
403
|
-
// selection.addRange(range);
|
404
|
-
|
405
|
-
// sendPosition(element);
|
406
|
-
// _dispatchInputEvent(element);
|
407
|
-
// },
|
408
|
-
|
402
|
+
|
409
403
|
_cloneRangeByPosition: function(element, start, end, range) {
|
410
404
|
if (!range) {
|
411
405
|
range = document.createRange();
|
@@ -467,4 +461,4 @@ observer.init({
|
|
467
461
|
}
|
468
462
|
});
|
469
463
|
|
470
|
-
export default {initElements, initElement, getSelections, hasSelection, insertText, deleteText};
|
464
|
+
export default {initElements, initElement, getSelections, hasSelection, insertText, deleteText, updateElement};
|