@cocreate/text 1.13.0 → 1.13.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 CHANGED
@@ -1,3 +1,10 @@
1
+ ## [1.13.1](https://github.com/CoCreate-app/CoCreate-text/compare/v1.13.0...v1.13.1) (2021-11-28)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * replace click and keyup event with selectionchange event ([515da39](https://github.com/CoCreate-app/CoCreate-text/commit/515da39a62af4e350aa2a7857aa48b87c822a5dd))
7
+
1
8
  # [1.13.0](https://github.com/CoCreate-app/CoCreate-text/compare/v1.12.32...v1.13.0) (2021-11-28)
2
9
 
3
10
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cocreate/text",
3
- "version": "1.13.0",
3
+ "version": "1.13.1",
4
4
  "description": "A simple text component in vanilla javascript. Easily configured using HTML5 attributes and/or JavaScript API.",
5
5
  "keywords": [
6
6
  "text",
package/src/index.js CHANGED
@@ -16,6 +16,11 @@ function init() {
16
16
  let elements = document.querySelectorAll(selectors);
17
17
  initElements(elements);
18
18
  _crdtUpdateListener();
19
+ document.addEventListener('selectionchange', (e) => {
20
+ let element = document.activeElement;
21
+ sendPosition(element)
22
+ console.log(element)
23
+ });
19
24
  }
20
25
 
21
26
  function initElements (elements) {
@@ -32,10 +37,16 @@ function initElement (element) {
32
37
  if(!collection || !document_id || !name) return;
33
38
 
34
39
  if (!isCrdt) {
35
- if (element.tagName == 'IFRAME')
40
+ if (element.tagName == 'IFRAME'){
36
41
  _addEventListeners(element.contentDocument.documentElement);
37
- else
38
- _addEventListeners(element);
42
+ let Document = element.contentDocument
43
+ Document.addEventListener('selectionchange', (e) => {
44
+ let element = Document.activeElement;
45
+ sendPosition(element)
46
+ }); }
47
+ else{
48
+ _addEventListeners(element);
49
+ }
39
50
  }
40
51
  element.setAttribute('crdt', 'true');
41
52
  element.crdt = {init: true};
@@ -65,9 +76,7 @@ function initElement (element) {
65
76
  }
66
77
 
67
78
  export function _addEventListeners (element) {
68
- element.addEventListener('click', _click);
69
79
  element.addEventListener('blur', _blur);
70
- element.addEventListener('keyup', _keyup);
71
80
  element.addEventListener('cut', _cut);
72
81
  element.addEventListener('paste', _paste);
73
82
  element.addEventListener('keydown', _keydown);
@@ -75,11 +84,6 @@ export function _addEventListeners (element) {
75
84
  element.addEventListener('input', _input);
76
85
  }
77
86
 
78
- function _click (event) {
79
- let element = event.currentTarget;
80
- sendPosition(element);
81
- }
82
-
83
87
  function _blur (event) {
84
88
  let element = event.currentTarget;
85
89
  const { collection, document_id, name } = crud.getAttr(element);
@@ -88,11 +92,6 @@ function _blur (event) {
88
92
  cursors.sendPosition({collection, document_id, name, start, end});
89
93
  }
90
94
 
91
- function _keyup (event) {
92
- let element = event.currentTarget;
93
- sendPosition(element);
94
- }
95
-
96
95
  function _cut (event) {
97
96
  let element = event.currentTarget;
98
97
  const { start, end, range } = getSelection(element);
@@ -167,6 +166,7 @@ function _beforeinput (event) {
167
166
  event.preventDefault();
168
167
  }
169
168
  }
169
+
170
170
  function _input (event) {
171
171
  if(event.stopCCText) return;
172
172
  if (event.data) {
@@ -175,9 +175,7 @@ function _input (event) {
175
175
  }
176
176
 
177
177
  function _removeEventListeners (element) {
178
- element.removeEventListener('click', _click);
179
178
  element.removeEventListener('blur', _blur);
180
- element.removeEventListener('keyup', _keyup);
181
179
  element.removeEventListener('cut', _cut);
182
180
  element.removeEventListener('paste', _paste);
183
181
  element.removeEventListener('keydown', _keydown);