easy-richtextarea 4.0.35 → 4.0.36
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/example.js +93 -1562
- package/lib/browser.js +1 -37
- package/lib/main.js +4 -45
- package/lib/mixins/event.js +11 -10
- package/lib/richTextarea.js +31 -155
- package/lib/selection.js +7 -146
- package/package.json +1 -3
- package/src/browser.js +0 -11
- package/src/main.js +0 -12
- package/src/mixins/event.js +3 -4
- package/src/richTextarea.js +22 -235
- package/src/selection.js +4 -154
- package/lib/constants.js +0 -22
- package/lib/contentCompare.js +0 -34
- package/lib/eventTypes.js +0 -49
- package/lib/keyCodes.js +0 -13
- package/lib/operation/delete.js +0 -290
- package/lib/operation/empty.js +0 -116
- package/lib/operation/insert.js +0 -245
- package/lib/operations/fromJSON.js +0 -40
- package/lib/operations/generate.js +0 -42
- package/lib/operations/toJSON.js +0 -17
- package/lib/transform/content.js +0 -19
- package/lib/transform/operations.js +0 -31
- package/lib/transform/selection.js +0 -19
- package/lib/types.js +0 -34
- package/lib/undoBuffer.js +0 -145
- package/src/constants.js +0 -4
- package/src/contentCompare.js +0 -34
- package/src/eventTypes.js +0 -15
- package/src/keyCodes.js +0 -3
- package/src/operation/delete.js +0 -285
- package/src/operation/empty.js +0 -76
- package/src/operation/insert.js +0 -221
- package/src/operations/fromJSON.js +0 -34
- package/src/operations/generate.js +0 -46
- package/src/operations/toJSON.js +0 -5
- package/src/transform/content.js +0 -11
- package/src/transform/operations.js +0 -57
- package/src/transform/selection.js +0 -11
- package/src/types.js +0 -11
- package/src/undoBuffer.js +0 -119
- package/test/content/transform.js +0 -57
- package/test/helpers.js +0 -91
- package/test/operation/delete.js +0 -390
- package/test/operation/empty.js +0 -101
- package/test/operation/insert.js +0 -306
- package/test/operations/generate.js +0 -78
- package/test/operations/transform.js +0 -69
package/lib/selection.js
CHANGED
|
@@ -8,7 +8,6 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return Selection;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
var _selection = /*#__PURE__*/ _interopRequireDefault(require("./transform/selection"));
|
|
12
11
|
function _classCallCheck(instance, Constructor) {
|
|
13
12
|
if (!(instance instanceof Constructor)) {
|
|
14
13
|
throw new TypeError("Cannot call a class as a function");
|
|
@@ -28,11 +27,6 @@ function _createClass(Constructor, protoProps, staticProps) {
|
|
|
28
27
|
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
29
28
|
return Constructor;
|
|
30
29
|
}
|
|
31
|
-
function _interopRequireDefault(obj) {
|
|
32
|
-
return obj && obj.__esModule ? obj : {
|
|
33
|
-
default: obj
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
30
|
var Selection = /*#__PURE__*/ function() {
|
|
37
31
|
function Selection(startPosition, endPosition) {
|
|
38
32
|
_classCallCheck(this, Selection);
|
|
@@ -53,31 +47,15 @@ var Selection = /*#__PURE__*/ function() {
|
|
|
53
47
|
}
|
|
54
48
|
},
|
|
55
49
|
{
|
|
56
|
-
key: "
|
|
57
|
-
value: function
|
|
58
|
-
|
|
59
|
-
return empty;
|
|
60
|
-
}
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
key: "getLength",
|
|
64
|
-
value: function getLength() {
|
|
65
|
-
var length = this.endPosition - this.startPosition;
|
|
66
|
-
return length;
|
|
50
|
+
key: "setStartPosition",
|
|
51
|
+
value: function setStartPosition(startPosition) {
|
|
52
|
+
this.startPosition = startPosition;
|
|
67
53
|
}
|
|
68
54
|
},
|
|
69
55
|
{
|
|
70
|
-
key: "
|
|
71
|
-
value: function
|
|
72
|
-
|
|
73
|
-
var startPosition = selection.getStartPosition();
|
|
74
|
-
if (this.startPosition > startPosition) {
|
|
75
|
-
result = +1;
|
|
76
|
-
}
|
|
77
|
-
if (this.startPosition < startPosition) {
|
|
78
|
-
result = -1;
|
|
79
|
-
}
|
|
80
|
-
return result;
|
|
56
|
+
key: "setEndPosition",
|
|
57
|
+
value: function setEndPosition(endPosition) {
|
|
58
|
+
this.endPosition = endPosition;
|
|
81
59
|
}
|
|
82
60
|
},
|
|
83
61
|
{
|
|
@@ -90,110 +68,8 @@ var Selection = /*#__PURE__*/ function() {
|
|
|
90
68
|
}
|
|
91
69
|
return equalTo;
|
|
92
70
|
}
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
key: "isOverlappedBy",
|
|
96
|
-
value: function isOverlappedBy(selection) {
|
|
97
|
-
var startPosition = selection.getStartPosition(), endPosition = selection.getEndPosition(), overlappedBy = startPosition <= this.endPosition && endPosition >= this.startPosition;
|
|
98
|
-
return overlappedBy;
|
|
99
|
-
}
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
key: "setStartPosition",
|
|
103
|
-
value: function setStartPosition(startPosition) {
|
|
104
|
-
this.startPosition = startPosition;
|
|
105
|
-
}
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
key: "setEndPosition",
|
|
109
|
-
value: function setEndPosition(endPosition) {
|
|
110
|
-
this.endPosition = endPosition;
|
|
111
|
-
}
|
|
112
|
-
},
|
|
113
|
-
{
|
|
114
|
-
key: "startPositionShifted",
|
|
115
|
-
value: function startPositionShifted(startOffset) {
|
|
116
|
-
var startPosition = this.startPosition + startOffset, endPosition = this.endPosition, selection = new Selection(startPosition, endPosition);
|
|
117
|
-
return selection;
|
|
118
|
-
}
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
key: "endPositionShifted",
|
|
122
|
-
value: function endPositionShifted(endOffset) {
|
|
123
|
-
var startPosition = this.startPosition, endPosition = this.endPosition + endOffset, selection = new Selection(startPosition, endPosition);
|
|
124
|
-
return selection;
|
|
125
|
-
}
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
key: "emptiedToStart",
|
|
129
|
-
value: function emptiedToStart() {
|
|
130
|
-
var startPosition = this.startPosition, endPosition = startPosition, selection = new Selection(startPosition, endPosition);
|
|
131
|
-
return selection;
|
|
132
|
-
}
|
|
133
|
-
},
|
|
134
|
-
{
|
|
135
|
-
key: "emptiedToEnd",
|
|
136
|
-
value: function emptiedToEnd() {
|
|
137
|
-
var endPosition = this.endPosition, startPosition = endPosition, selection = new Selection(startPosition, endPosition);
|
|
138
|
-
return selection;
|
|
139
|
-
}
|
|
140
|
-
},
|
|
141
|
-
{
|
|
142
|
-
key: "transformed",
|
|
143
|
-
value: function transformed(operations) {
|
|
144
|
-
var selection = this, transformedSelection = (0, _selection.default)(selection, operations);
|
|
145
|
-
return transformedSelection;
|
|
146
|
-
}
|
|
147
|
-
},
|
|
148
|
-
{
|
|
149
|
-
key: "mergedWith",
|
|
150
|
-
value: function mergedWith(selection) {
|
|
151
|
-
var startPosition = selection.getStartPosition(), endPosition = selection.getEndPosition();
|
|
152
|
-
startPosition = Math.min(startPosition, this.startPosition); ///
|
|
153
|
-
endPosition = Math.max(endPosition, this.endPosition); ///
|
|
154
|
-
selection = new Selection(startPosition, endPosition); ///
|
|
155
|
-
return selection;
|
|
156
|
-
}
|
|
157
|
-
},
|
|
158
|
-
{
|
|
159
|
-
key: "emptied",
|
|
160
|
-
value: function emptied() {
|
|
161
|
-
var startPosition = this.startPosition, endPosition = startPosition, selection = new Selection(startPosition, endPosition);
|
|
162
|
-
return selection;
|
|
163
|
-
}
|
|
164
|
-
},
|
|
165
|
-
{
|
|
166
|
-
key: "shifted",
|
|
167
|
-
value: function shifted(offset) {
|
|
168
|
-
var startPosition = this.startPosition + offset, endPosition = this.endPosition + offset, selection = new Selection(startPosition, endPosition);
|
|
169
|
-
return selection;
|
|
170
|
-
}
|
|
171
|
-
},
|
|
172
|
-
{
|
|
173
|
-
key: "clone",
|
|
174
|
-
value: function clone() {
|
|
175
|
-
var selection = new Selection(this.startPosition, this.endPosition);
|
|
176
|
-
return selection;
|
|
177
|
-
}
|
|
178
|
-
},
|
|
179
|
-
{
|
|
180
|
-
key: "toJSON",
|
|
181
|
-
value: function toJSON() {
|
|
182
|
-
var startPosition = this.startPosition, endPosition = this.endPosition, json = {
|
|
183
|
-
startPosition: startPosition,
|
|
184
|
-
endPosition: endPosition
|
|
185
|
-
};
|
|
186
|
-
return json;
|
|
187
|
-
}
|
|
188
71
|
}
|
|
189
72
|
], [
|
|
190
|
-
{
|
|
191
|
-
key: "fromJSON",
|
|
192
|
-
value: function fromJSON(json) {
|
|
193
|
-
var startPosition = json.startPosition, endPosition = json.endPosition, selection = new Selection(startPosition, endPosition);
|
|
194
|
-
return selection;
|
|
195
|
-
}
|
|
196
|
-
},
|
|
197
73
|
{
|
|
198
74
|
key: "fromNothing",
|
|
199
75
|
value: function fromNothing() {
|
|
@@ -201,21 +77,6 @@ var Selection = /*#__PURE__*/ function() {
|
|
|
201
77
|
return selection;
|
|
202
78
|
}
|
|
203
79
|
},
|
|
204
|
-
{
|
|
205
|
-
key: "fromOperation",
|
|
206
|
-
value: function fromOperation(operation) {
|
|
207
|
-
var content = operation.getContent(), position = operation.getPosition(), contentLength = content.length, startPosition = position + contentLength, endPosition = startPosition, selection = new Selection(startPosition, endPosition);
|
|
208
|
-
return selection;
|
|
209
|
-
}
|
|
210
|
-
},
|
|
211
|
-
{
|
|
212
|
-
key: "fromSelection",
|
|
213
|
-
value: function fromSelection(selection) {
|
|
214
|
-
var startPosition = selection.getStartPosition(), endPosition = selection.getEndPosition();
|
|
215
|
-
selection = new Selection(startPosition, endPosition); ///
|
|
216
|
-
return selection;
|
|
217
|
-
}
|
|
218
|
-
},
|
|
219
80
|
{
|
|
220
81
|
key: "fromDOMElement",
|
|
221
82
|
value: function fromDOMElement(domElement) {
|
|
@@ -234,4 +95,4 @@ var Selection = /*#__PURE__*/ function() {
|
|
|
234
95
|
return Selection;
|
|
235
96
|
}();
|
|
236
97
|
|
|
237
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zZWxlY3Rpb24uanMiLCI8PGpzeC1jb25maWctcHJhZ21hLmpzPj4iXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB0cmFuc2Zvcm1TZWxlY3Rpb24gZnJvbSBcIi4vdHJhbnNmb3JtL3NlbGVjdGlvblwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTZWxlY3Rpb24ge1xuICBjb25zdHJ1Y3RvcihzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbikge1xuICAgIHRoaXMuc3RhcnRQb3NpdGlvbiA9IHN0YXJ0UG9zaXRpb247XG4gICAgdGhpcy5lbmRQb3NpdGlvbiA9IGVuZFBvc2l0aW9uO1xuICB9XG5cbiAgZ2V0U3RhcnRQb3NpdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zdGFydFBvc2l0aW9uO1xuICB9XG5cbiAgZ2V0RW5kUG9zaXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZW5kUG9zaXRpb247XG4gIH1cblxuICBpc0VtcHR5KCkge1xuICAgIGNvbnN0IGVtcHR5ID0gKHRoaXMuc3RhcnRQb3NpdGlvbiA9PT0gdGhpcy5lbmRQb3NpdGlvbik7XG5cbiAgICByZXR1cm4gZW1wdHk7XG4gIH1cblxuICBnZXRMZW5ndGgoKSB7XG4gICAgY29uc3QgbGVuZ3RoID0gKHRoaXMuZW5kUG9zaXRpb24gLSB0aGlzLnN0YXJ0UG9zaXRpb24pO1xuXG4gICAgcmV0dXJuIGxlbmd0aDtcbiAgfVxuXG4gIGNvbXBhcmVUbyhzZWxlY3Rpb24pIHtcbiAgICBsZXQgcmVzdWx0ID0gMDtcblxuICAgIGNvbnN0IHN0YXJ0UG9zaXRpb24gPSBzZWxlY3Rpb24uZ2V0U3RhcnRQb3NpdGlvbigpO1xuXG4gICAgaWYgKHRoaXMuc3RhcnRQb3NpdGlvbiA+IHN0YXJ0UG9zaXRpb24pIHtcbiAgICAgIHJlc3VsdCA9ICsxO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnN0YXJ0UG9zaXRpb24gPCBzdGFydFBvc2l0aW9uKSB7XG4gICAgICByZXN1bHQgPSAtMTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgaXNFcXVhbFRvKHNlbGVjdGlvbikge1xuICAgIGxldCBlcXVhbFRvID0gZmFsc2U7XG5cbiAgICBpZiAoc2VsZWN0aW9uICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBzZWxlY3Rpb25TdGFydFBvc2l0aW9uID0gc2VsZWN0aW9uLmdldFN0YXJ0UG9zaXRpb24oKSxcbiAgICAgICAgICAgIHNlbGVjdGlvbkVuZFBvc2l0aW9uID0gc2VsZWN0aW9uLmdldEVuZFBvc2l0aW9uKCksXG4gICAgICAgICAgICBzdGFydFBvc2l0aW9uc0VxdWFsID0gKHRoaXMuc3RhcnRQb3NpdGlvbiA9PT0gc2VsZWN0aW9uU3RhcnRQb3NpdGlvbiksXG4gICAgICAgICAgICBlbmRQb3NpdGlvbnNFcXVhbCA9ICh0aGlzLmVuZFBvc2l0aW9uID09PSBzZWxlY3Rpb25FbmRQb3NpdGlvbik7XG5cbiAgICAgIGVxdWFsVG8gPSAoc3RhcnRQb3NpdGlvbnNFcXVhbCAmJiBlbmRQb3NpdGlvbnNFcXVhbCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVxdWFsVG87XG4gIH1cblxuICBpc092ZXJsYXBwZWRCeShzZWxlY3Rpb24pIHtcbiAgICBjb25zdCBzdGFydFBvc2l0aW9uID0gc2VsZWN0aW9uLmdldFN0YXJ0UG9zaXRpb24oKSxcbiAgICAgICAgICBlbmRQb3NpdGlvbiAgPSBzZWxlY3Rpb24uZ2V0RW5kUG9zaXRpb24oKSxcbiAgICAgICAgICBvdmVybGFwcGVkQnkgPSAoKHN0YXJ0UG9zaXRpb24gPD0gdGhpcy5lbmRQb3NpdGlvbikgJiYgKGVuZFBvc2l0aW9uID49IHRoaXMuc3RhcnRQb3NpdGlvbikpO1xuXG4gICAgcmV0dXJuIG92ZXJsYXBwZWRCeTtcbiAgfVxuXG4gIHNldFN0YXJ0UG9zaXRpb24oc3RhcnRQb3NpdGlvbikge1xuICAgIHRoaXMuc3RhcnRQb3NpdGlvbiA9IHN0YXJ0UG9zaXRpb247XG4gIH1cblxuICBzZXRFbmRQb3NpdGlvbihlbmRQb3NpdGlvbikge1xuICAgIHRoaXMuZW5kUG9zaXRpb24gPSBlbmRQb3NpdGlvbjtcbiAgfVxuXG4gIHN0YXJ0UG9zaXRpb25TaGlmdGVkKHN0YXJ0T2Zmc2V0KSB7XG4gICAgY29uc3Qgc3RhcnRQb3NpdGlvbiA9IHRoaXMuc3RhcnRQb3NpdGlvbiArIHN0YXJ0T2Zmc2V0LFxuICAgICAgICAgIGVuZFBvc2l0aW9uID0gdGhpcy5lbmRQb3NpdGlvbixcbiAgICAgICAgICBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKTtcblxuICAgIHJldHVybiBzZWxlY3Rpb247XG4gIH1cblxuICBlbmRQb3NpdGlvblNoaWZ0ZWQoZW5kT2Zmc2V0KSB7XG4gICAgY29uc3Qgc3RhcnRQb3NpdGlvbiA9IHRoaXMuc3RhcnRQb3NpdGlvbixcbiAgICAgICAgICBlbmRQb3NpdGlvbiA9IHRoaXMuZW5kUG9zaXRpb24gKyBlbmRPZmZzZXQsXG4gICAgICAgICAgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbihzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbik7XG5cbiAgICByZXR1cm4gc2VsZWN0aW9uO1xuICB9XG5cbiAgZW1wdGllZFRvU3RhcnQoKSB7XG4gICAgY29uc3Qgc3RhcnRQb3NpdGlvbiA9IHRoaXMuc3RhcnRQb3NpdGlvbixcbiAgICAgICAgICBlbmRQb3NpdGlvbiA9IHN0YXJ0UG9zaXRpb24sICAvLy9cbiAgICAgICAgICBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKTtcblxuICAgIHJldHVybiBzZWxlY3Rpb247XG4gIH1cblxuICBlbXB0aWVkVG9FbmQoKSB7XG4gICAgY29uc3QgZW5kUG9zaXRpb24gPSB0aGlzLmVuZFBvc2l0aW9uLFxuICAgICAgICAgIHN0YXJ0UG9zaXRpb24gPSBlbmRQb3NpdGlvbiwgIC8vL1xuICAgICAgICAgIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24pO1xuXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgfVxuXG4gIHRyYW5zZm9ybWVkKG9wZXJhdGlvbnMpIHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB0aGlzLCAvLy9cbiAgICAgICAgICB0cmFuc2Zvcm1lZFNlbGVjdGlvbiA9IHRyYW5zZm9ybVNlbGVjdGlvbihzZWxlY3Rpb24sIG9wZXJhdGlvbnMpO1xuXG4gICAgcmV0dXJuIHRyYW5zZm9ybWVkU2VsZWN0aW9uO1xuICB9XG5cbiAgbWVyZ2VkV2l0aChzZWxlY3Rpb24pIHtcbiAgICBsZXQgc3RhcnRQb3NpdGlvbiA9IHNlbGVjdGlvbi5nZXRTdGFydFBvc2l0aW9uKCksXG4gICAgICAgIGVuZFBvc2l0aW9uID0gc2VsZWN0aW9uLmdldEVuZFBvc2l0aW9uKCk7XG5cbiAgICBzdGFydFBvc2l0aW9uID0gTWF0aC5taW4oc3RhcnRQb3NpdGlvbiwgdGhpcy5zdGFydFBvc2l0aW9uKTsgIC8vL1xuXG4gICAgZW5kUG9zaXRpb24gPSBNYXRoLm1heChlbmRQb3NpdGlvbiwgdGhpcy5lbmRQb3NpdGlvbik7ICAvLy9cblxuICAgIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24pOyAgLy8vXG5cbiAgICByZXR1cm4gc2VsZWN0aW9uO1xuICB9XG5cbiAgZW1wdGllZCgpIHtcbiAgICBjb25zdCBzdGFydFBvc2l0aW9uID0gdGhpcy5zdGFydFBvc2l0aW9uLFxuICAgICAgICAgIGVuZFBvc2l0aW9uID0gc3RhcnRQb3NpdGlvbiwgIC8vL1xuICAgICAgICAgIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24pO1xuXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgfVxuXG4gIHNoaWZ0ZWQob2Zmc2V0KSB7XG4gICAgY29uc3Qgc3RhcnRQb3NpdGlvbiA9IHRoaXMuc3RhcnRQb3NpdGlvbiArIG9mZnNldCxcbiAgICAgICAgICBlbmRQb3NpdGlvbiA9IHRoaXMuZW5kUG9zaXRpb24gKyBvZmZzZXQsXG4gICAgICAgICAgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbihzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbik7XG5cbiAgICByZXR1cm4gc2VsZWN0aW9uO1xuICB9XG5cbiAgY2xvbmUoKSB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbih0aGlzLnN0YXJ0UG9zaXRpb24sIHRoaXMuZW5kUG9zaXRpb24pO1xuXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBzdGFydFBvc2l0aW9uID0gdGhpcy5zdGFydFBvc2l0aW9uLFxuICAgICAgICAgIGVuZFBvc2l0aW9uID0gdGhpcy5lbmRQb3NpdGlvbixcbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgc3RhcnRQb3NpdGlvbixcbiAgICAgICAgICAgIGVuZFBvc2l0aW9uXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24pIHtcbiAgICBjb25zdCB7IHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uIH0gPSBqc29uLFxuICAgICAgICAgIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24pO1xuXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm90aGluZygpIHtcbiAgICBjb25zdCBzdGFydFBvc2l0aW9uID0gMCxcbiAgICAgICAgICBlbmRQb3NpdGlvbiA9IDAsXG4gICAgICAgICAgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbihzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbik7XG5cbiAgICByZXR1cm4gc2VsZWN0aW9uO1xuICB9XG5cbiAgc3RhdGljIGZyb21PcGVyYXRpb24ob3BlcmF0aW9uKSB7XG4gICAgY29uc3QgY29udGVudCA9IG9wZXJhdGlvbi5nZXRDb250ZW50KCksXG4gICAgICAgICAgcG9zaXRpb24gPSBvcGVyYXRpb24uZ2V0UG9zaXRpb24oKSxcbiAgICAgICAgICBjb250ZW50TGVuZ3RoID0gY29udGVudC5sZW5ndGgsXG4gICAgICAgICAgc3RhcnRQb3NpdGlvbiA9IHBvc2l0aW9uICsgY29udGVudExlbmd0aCxcbiAgICAgICAgICBlbmRQb3NpdGlvbiA9IHN0YXJ0UG9zaXRpb24sICAvLy9cbiAgICAgICAgICBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKTtcblxuICAgIHJldHVybiBzZWxlY3Rpb247XG4gIH1cblxuICBzdGF0aWMgZnJvbVNlbGVjdGlvbihzZWxlY3Rpb24pIHtcbiAgICBjb25zdCBzdGFydFBvc2l0aW9uID0gc2VsZWN0aW9uLmdldFN0YXJ0UG9zaXRpb24oKSxcbiAgICAgICAgICBlbmRQb3NpdGlvbiA9IHNlbGVjdGlvbi5nZXRFbmRQb3NpdGlvbigpO1xuXG4gICAgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbihzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbik7ICAvLy9cblxuICAgIHJldHVybiBzZWxlY3Rpb247XG4gIH1cblxuICBzdGF0aWMgZnJvbURPTUVsZW1lbnQoZG9tRWxlbWVudCkge1xuICAgIGNvbnN0IHsgc2VsZWN0aW9uU3RhcnQsIHNlbGVjdGlvbkVuZCB9ID0gZG9tRWxlbWVudCxcbiAgICAgICAgICBzdGFydFBvc2l0aW9uID0gc2VsZWN0aW9uU3RhcnQsIC8vL1xuICAgICAgICAgIGVuZFBvc2l0aW9uID0gc2VsZWN0aW9uRW5kLCAvLy9cbiAgICAgICAgICBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKTtcblxuICAgIHJldHVybiBzZWxlY3Rpb247XG5cbiAgfVxuXG4gIHN0YXRpYyBmcm9tU3RhcnRQb3NpdGlvbkFuZEVuZFBvc2l0aW9uKHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKSB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbihzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbik7XG5cbiAgICByZXR1cm4gc2VsZWN0aW9uO1xuICB9XG59XG4iLCJSZWFjdC5jcmVhdGVFbGVtZW50Il0sIm5hbWVzIjpbIlNlbGVjdGlvbiIsInN0YXJ0UG9zaXRpb24iLCJlbmRQb3NpdGlvbiIsImdldFN0YXJ0UG9zaXRpb24iLCJnZXRFbmRQb3NpdGlvbiIsImlzRW1wdHkiLCJlbXB0eSIsImdldExlbmd0aCIsImxlbmd0aCIsImNvbXBhcmVUbyIsInNlbGVjdGlvbiIsInJlc3VsdCIsImlzRXF1YWxUbyIsImVxdWFsVG8iLCJzZWxlY3Rpb25TdGFydFBvc2l0aW9uIiwic2VsZWN0aW9uRW5kUG9zaXRpb24iLCJzdGFydFBvc2l0aW9uc0VxdWFsIiwiZW5kUG9zaXRpb25zRXF1YWwiLCJpc092ZXJsYXBwZWRCeSIsIm92ZXJsYXBwZWRCeSIsInNldFN0YXJ0UG9zaXRpb24iLCJzZXRFbmRQb3NpdGlvbiIsInN0YXJ0UG9zaXRpb25TaGlmdGVkIiwic3RhcnRPZmZzZXQiLCJlbmRQb3NpdGlvblNoaWZ0ZWQiLCJlbmRPZmZzZXQiLCJlbXB0aWVkVG9TdGFydCIsImVtcHRpZWRUb0VuZCIsInRyYW5zZm9ybWVkIiwib3BlcmF0aW9ucyIsInRyYW5zZm9ybWVkU2VsZWN0aW9uIiwidHJhbnNmb3JtU2VsZWN0aW9uIiwibWVyZ2VkV2l0aCIsIk1hdGgiLCJtaW4iLCJtYXgiLCJlbXB0aWVkIiwic2hpZnRlZCIsIm9mZnNldCIsImNsb25lIiwidG9KU09OIiwianNvbiIsImZyb21KU09OIiwiZnJvbU5vdGhpbmciLCJmcm9tT3BlcmF0aW9uIiwib3BlcmF0aW9uIiwiY29udGVudCIsImdldENvbnRlbnQiLCJwb3NpdGlvbiIsImdldFBvc2l0aW9uIiwiY29udGVudExlbmd0aCIsImZyb21TZWxlY3Rpb24iLCJmcm9tRE9NRWxlbWVudCIsImRvbUVsZW1lbnQiLCJzZWxlY3Rpb25TdGFydCIsInNlbGVjdGlvbkVuZCIsImZyb21TdGFydFBvc2l0aW9uQW5kRW5kUG9zaXRpb24iXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBSXFCQTs7OzhEQUZVOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWhCLElBQUEsQUFBTUEsMEJBQU47YUFBTUEsVUFDUEMsYUFBYSxFQUFFQyxXQUFXOzhCQURuQkY7UUFFakIsSUFBSSxDQUFDQyxhQUFhLEdBQUdBO1FBQ3JCLElBQUksQ0FBQ0MsV0FBVyxHQUFHQTs7aUJBSEZGOztZQU1uQkcsS0FBQUE7bUJBQUFBLFNBQUFBLG1CQUFtQjtnQkFDakIsT0FBTyxJQUFJLENBQUNGLGFBQWE7WUFDM0I7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUEsaUJBQWlCO2dCQUNmLE9BQU8sSUFBSSxDQUFDRixXQUFXO1lBQ3pCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLFVBQVU7Z0JBQ1IsSUFBTUMsUUFBUyxJQUFJLENBQUNMLGFBQWEsS0FBSyxJQUFJLENBQUNDLFdBQVc7Z0JBRXRELE9BQU9JO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUEsWUFBWTtnQkFDVixJQUFNQyxTQUFVLElBQUksQ0FBQ04sV0FBVyxHQUFHLElBQUksQ0FBQ0QsYUFBYTtnQkFFckQsT0FBT087WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQSxVQUFVQyxTQUFTLEVBQUU7Z0JBQ25CLElBQUlDLFNBQVM7Z0JBRWIsSUFBTVYsZ0JBQWdCUyxVQUFVUCxnQkFBZ0I7Z0JBRWhELElBQUksSUFBSSxDQUFDRixhQUFhLEdBQUdBLGVBQWU7b0JBQ3RDVSxTQUFTLENBQUM7Z0JBQ1osQ0FBQztnQkFFRCxJQUFJLElBQUksQ0FBQ1YsYUFBYSxHQUFHQSxlQUFlO29CQUN0Q1UsU0FBUyxDQUFDO2dCQUNaLENBQUM7Z0JBRUQsT0FBT0E7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQSxVQUFVRixTQUFTLEVBQUU7Z0JB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
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zZWxlY3Rpb24uanMiLCI8PGpzeC1jb25maWctcHJhZ21hLmpzPj4iXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNlbGVjdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKSB7XG4gICAgdGhpcy5zdGFydFBvc2l0aW9uID0gc3RhcnRQb3NpdGlvbjtcbiAgICB0aGlzLmVuZFBvc2l0aW9uID0gZW5kUG9zaXRpb247XG4gIH1cblxuICBnZXRTdGFydFBvc2l0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXJ0UG9zaXRpb247XG4gIH1cblxuICBnZXRFbmRQb3NpdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5lbmRQb3NpdGlvbjtcbiAgfVxuXG4gIHNldFN0YXJ0UG9zaXRpb24oc3RhcnRQb3NpdGlvbikge1xuICAgIHRoaXMuc3RhcnRQb3NpdGlvbiA9IHN0YXJ0UG9zaXRpb247XG4gIH1cblxuICBzZXRFbmRQb3NpdGlvbihlbmRQb3NpdGlvbikge1xuICAgIHRoaXMuZW5kUG9zaXRpb24gPSBlbmRQb3NpdGlvbjtcbiAgfVxuXG4gIGlzRXF1YWxUbyhzZWxlY3Rpb24pIHtcbiAgICBsZXQgZXF1YWxUbyA9IGZhbHNlO1xuXG4gICAgaWYgKHNlbGVjdGlvbiAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc2VsZWN0aW9uU3RhcnRQb3NpdGlvbiA9IHNlbGVjdGlvbi5nZXRTdGFydFBvc2l0aW9uKCksXG4gICAgICAgICAgICBzZWxlY3Rpb25FbmRQb3NpdGlvbiA9IHNlbGVjdGlvbi5nZXRFbmRQb3NpdGlvbigpLFxuICAgICAgICAgICAgc3RhcnRQb3NpdGlvbnNFcXVhbCA9ICh0aGlzLnN0YXJ0UG9zaXRpb24gPT09IHNlbGVjdGlvblN0YXJ0UG9zaXRpb24pLFxuICAgICAgICAgICAgZW5kUG9zaXRpb25zRXF1YWwgPSAodGhpcy5lbmRQb3NpdGlvbiA9PT0gc2VsZWN0aW9uRW5kUG9zaXRpb24pO1xuXG4gICAgICBlcXVhbFRvID0gKHN0YXJ0UG9zaXRpb25zRXF1YWwgJiYgZW5kUG9zaXRpb25zRXF1YWwpO1xuICAgIH1cblxuICAgIHJldHVybiBlcXVhbFRvO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKCkge1xuICAgIGNvbnN0IHN0YXJ0UG9zaXRpb24gPSAwLFxuICAgICAgICAgIGVuZFBvc2l0aW9uID0gMCxcbiAgICAgICAgICBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKTtcblxuICAgIHJldHVybiBzZWxlY3Rpb247XG4gIH1cblxuICBzdGF0aWMgZnJvbURPTUVsZW1lbnQoZG9tRWxlbWVudCkge1xuICAgIGNvbnN0IHsgc2VsZWN0aW9uU3RhcnQsIHNlbGVjdGlvbkVuZCB9ID0gZG9tRWxlbWVudCxcbiAgICAgICAgICBzdGFydFBvc2l0aW9uID0gc2VsZWN0aW9uU3RhcnQsIC8vL1xuICAgICAgICAgIGVuZFBvc2l0aW9uID0gc2VsZWN0aW9uRW5kLCAvLy9cbiAgICAgICAgICBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKTtcblxuICAgIHJldHVybiBzZWxlY3Rpb247XG5cbiAgfVxuXG4gIHN0YXRpYyBmcm9tU3RhcnRQb3NpdGlvbkFuZEVuZFBvc2l0aW9uKHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKSB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbihzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbik7XG5cbiAgICByZXR1cm4gc2VsZWN0aW9uO1xuICB9XG59XG4iLCJSZWFjdC5jcmVhdGVFbGVtZW50Il0sIm5hbWVzIjpbIlNlbGVjdGlvbiIsInN0YXJ0UG9zaXRpb24iLCJlbmRQb3NpdGlvbiIsImdldFN0YXJ0UG9zaXRpb24iLCJnZXRFbmRQb3NpdGlvbiIsInNldFN0YXJ0UG9zaXRpb24iLCJzZXRFbmRQb3NpdGlvbiIsImlzRXF1YWxUbyIsInNlbGVjdGlvbiIsImVxdWFsVG8iLCJzZWxlY3Rpb25TdGFydFBvc2l0aW9uIiwic2VsZWN0aW9uRW5kUG9zaXRpb24iLCJzdGFydFBvc2l0aW9uc0VxdWFsIiwiZW5kUG9zaXRpb25zRXF1YWwiLCJmcm9tTm90aGluZyIsImZyb21ET01FbGVtZW50IiwiZG9tRWxlbWVudCIsInNlbGVjdGlvblN0YXJ0Iiwic2VsZWN0aW9uRW5kIiwiZnJvbVN0YXJ0UG9zaXRpb25BbmRFbmRQb3NpdGlvbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFFcUJBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQU4sSUFBQSxBQUFNQSwwQkFBTjthQUFNQSxVQUNQQyxhQUFhLEVBQUVDLFdBQVc7OEJBRG5CRjtRQUVqQixJQUFJLENBQUNDLGFBQWEsR0FBR0E7UUFDckIsSUFBSSxDQUFDQyxXQUFXLEdBQUdBOztpQkFIRkY7O1lBTW5CRyxLQUFBQTttQkFBQUEsU0FBQUEsbUJBQW1CO2dCQUNqQixPQUFPLElBQUksQ0FBQ0YsYUFBYTtZQUMzQjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQSxpQkFBaUI7Z0JBQ2YsT0FBTyxJQUFJLENBQUNGLFdBQVc7WUFDekI7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUEsaUJBQWlCSixhQUFhLEVBQUU7Z0JBQzlCLElBQUksQ0FBQ0EsYUFBYSxHQUFHQTtZQUN2Qjs7O1lBRUFLLEtBQUFBO21CQUFBQSxTQUFBQSxlQUFlSixXQUFXLEVBQUU7Z0JBQzFCLElBQUksQ0FBQ0EsV0FBVyxHQUFHQTtZQUNyQjs7O1lBRUFLLEtBQUFBO21CQUFBQSxTQUFBQSxVQUFVQyxTQUFTLEVBQUU7Z0JBQ25CLElBQUlDLFVBQVUsS0FBSztnQkFFbkIsSUFBSUQsY0FBYyxJQUFJLEVBQUU7b0JBQ3RCLElBQU1FLHlCQUF5QkYsVUFBVUwsZ0JBQWdCLElBQ25EUSx1QkFBdUJILFVBQVVKLGNBQWMsSUFDL0NRLHNCQUF1QixJQUFJLENBQUNYLGFBQWEsS0FBS1Msd0JBQzlDRyxvQkFBcUIsSUFBSSxDQUFDWCxXQUFXLEtBQUtTO29CQUVoREYsVUFBV0csdUJBQXVCQztnQkFDcEMsQ0FBQztnQkFFRCxPQUFPSjtZQUNUOzs7O1lBRU9LLEtBQUFBO21CQUFQLFNBQU9BLGNBQWM7Z0JBQ25CLElBQU1iLGdCQUFnQixHQUNoQkMsY0FBYyxHQUNkTSxZQUFZLElBeENEUixVQXdDZUMsZUFBZUM7Z0JBRS9DLE9BQU9NO1lBQ1Q7OztZQUVPTyxLQUFBQTttQkFBUCxTQUFPQSxlQUFlQyxVQUFVLEVBQUU7Z0JBQ2hDLElBQVFDLGlCQUFpQ0QsV0FBakNDLGdCQUFnQkMsZUFBaUJGLFdBQWpCRSxjQUNsQmpCLGdCQUFnQmdCLGdCQUNoQmYsY0FBY2dCLGNBQ2RWLFlBQVksSUFqRERSLFVBaURlQyxlQUFlQztnQkFFL0MsT0FBT007WUFFVDs7O1lBRU9XLEtBQUFBO21CQUFQLFNBQU9BLGdDQUFnQ2xCLGFBQWEsRUFBRUMsV0FBVyxFQUFFO2dCQUNqRSxJQUFNTSxZQUFZLElBeEREUixVQXdEZUMsZUFBZUM7Z0JBRS9DLE9BQU9NO1lBQ1Q7OztXQTNEbUJSIn0=
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "easy-richtextarea",
|
|
3
3
|
"author": "James Smith",
|
|
4
|
-
"version": "4.0.
|
|
4
|
+
"version": "4.0.36",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/easy-richtextarea",
|
|
7
7
|
"description": "A textarea element that handles and hands off events well.",
|
|
@@ -15,12 +15,10 @@
|
|
|
15
15
|
},
|
|
16
16
|
"devDependencies": {
|
|
17
17
|
"@swc/core": "^1.2.160",
|
|
18
|
-
"chai": "^4.1.0",
|
|
19
18
|
"easy-with-style": "^3.0.194",
|
|
20
19
|
"esbuild": "^0.9.2",
|
|
21
20
|
"express": "^4.17.1",
|
|
22
21
|
"lively-cli": "^2.0.34",
|
|
23
|
-
"mocha": "~2.2.5",
|
|
24
22
|
"random-seed": "^0.3.0",
|
|
25
23
|
"watchful-cli": "^1.7.22"
|
|
26
24
|
},
|
package/src/browser.js
CHANGED
|
@@ -2,14 +2,3 @@
|
|
|
2
2
|
|
|
3
3
|
export { default as Selection } from "./selection";
|
|
4
4
|
export { default as RichTextarea } from "./richTextarea";
|
|
5
|
-
|
|
6
|
-
export { default as EmptyOperation } from "./operation/empty";
|
|
7
|
-
export { default as InsertOperation } from "./operation/insert";
|
|
8
|
-
export { default as DeleteOperation } from "./operation/delete";
|
|
9
|
-
|
|
10
|
-
export { default as transformContent } from "./transform/content";
|
|
11
|
-
export { default as operationsToJSON } from "./operations/toJSON";
|
|
12
|
-
export { default as operationsFromJSON } from "./operations/fromJSON";
|
|
13
|
-
export { default as generateOperations } from "./operations/generate";
|
|
14
|
-
export { default as transformSelection } from "./transform/selection";
|
|
15
|
-
export { default as transformOperations } from "./transform/operations";
|
package/src/main.js
CHANGED
|
@@ -1,15 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
export { default as Selection } from "./selection";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export { default as EmptyOperation } from "./operation/empty";
|
|
7
|
-
export { default as InsertOperation } from "./operation/insert";
|
|
8
|
-
export { default as DeleteOperation } from "./operation/delete";
|
|
9
|
-
|
|
10
|
-
export { default as transformContent } from "./transform/content";
|
|
11
|
-
export { default as operationsToJSON } from "./operations/toJSON";
|
|
12
|
-
export { default as operationsFromJSON } from "./operations/fromJSON";
|
|
13
|
-
export { default as generateOperations } from "./operations/generate";
|
|
14
|
-
export { default as transformSelection } from "./transform/selection";
|
|
15
|
-
export { default as transformOperations } from "./transform/operations";
|
package/src/mixins/event.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
CHANGE_EVENT_TYPE } from "../eventTypes";
|
|
3
|
+
import { eventTypes } from "easy";
|
|
4
|
+
|
|
5
|
+
const { BLUR_EVENT_TYPE, FOCUS_EVENT_TYPE, SCROLL_EVENT_TYPE, CHANGE_EVENT_TYPE } = eventTypes;
|
|
7
6
|
|
|
8
7
|
function onBlur(blurHandler, element) {
|
|
9
8
|
const eventType = BLUR_EVENT_TYPE,
|
package/src/richTextarea.js
CHANGED
|
@@ -1,37 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { Element, document } from "easy";
|
|
3
|
+
import { Element, document, eventTypes } from "easy";
|
|
4
4
|
|
|
5
5
|
import Selection from "./selection"
|
|
6
|
-
import UndoBuffer from "./undoBuffer";
|
|
7
6
|
import eventMixins from "./mixins/event";
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
import { Z_KEY_CODE } from "./keyCodes";
|
|
16
|
-
import { CUT_EVENT_TYPE,
|
|
17
|
-
COPY_EVENT_TYPE,
|
|
18
|
-
BLUR_EVENT_TYPE,
|
|
19
|
-
PASTE_EVENT_TYPE,
|
|
20
|
-
INPUT_EVENT_TYPE,
|
|
21
|
-
FOCUS_EVENT_TYPE,
|
|
22
|
-
CHANGE_EVENT_TYPE,
|
|
23
|
-
SCROLL_EVENT_TYPE,
|
|
24
|
-
KEYDOWN_EVENT_TYPE,
|
|
25
|
-
CONTEXTMENU_EVENT_TYPE,
|
|
26
|
-
SELECTIONCHANGE_EVENT_TYPE } from "./eventTypes";
|
|
7
|
+
|
|
8
|
+
const { BLUR_EVENT_TYPE,
|
|
9
|
+
INPUT_EVENT_TYPE,
|
|
10
|
+
FOCUS_EVENT_TYPE,
|
|
11
|
+
CHANGE_EVENT_TYPE,
|
|
12
|
+
SCROLL_EVENT_TYPE,
|
|
13
|
+
SELECTIONCHANGE_EVENT_TYPE } = eventTypes;
|
|
27
14
|
|
|
28
15
|
export default class RichTextarea extends Element {
|
|
29
|
-
constructor(selector, focused, readOnly
|
|
16
|
+
constructor(selector, focused, readOnly) {
|
|
30
17
|
super(selector);
|
|
31
18
|
|
|
32
19
|
this.focused = focused;
|
|
33
20
|
this.readOnly = readOnly;
|
|
34
|
-
this.undoBuffer = undoBuffer;
|
|
35
21
|
}
|
|
36
22
|
|
|
37
23
|
isFocused() {
|
|
@@ -42,10 +28,6 @@ export default class RichTextarea extends Element {
|
|
|
42
28
|
return this.readOnly;
|
|
43
29
|
}
|
|
44
30
|
|
|
45
|
-
getUndoBuffer() {
|
|
46
|
-
return this.undoBuffer;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
31
|
setFocused(focused) {
|
|
50
32
|
this.focused = focused;
|
|
51
33
|
}
|
|
@@ -54,74 +36,6 @@ export default class RichTextarea extends Element {
|
|
|
54
36
|
this.readOnly = readOnly;
|
|
55
37
|
}
|
|
56
38
|
|
|
57
|
-
cutHandler = (event, element) => {
|
|
58
|
-
const selection = this.getSelection(),
|
|
59
|
-
selectionEmpty = selection.isEmpty();
|
|
60
|
-
|
|
61
|
-
if (selectionEmpty) {
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
const selectedContent = this.getSelectedContent();
|
|
66
|
-
|
|
67
|
-
navigator.clipboard.writeText(selectedContent);
|
|
68
|
-
|
|
69
|
-
const content = this.getContent(),
|
|
70
|
-
deleteOperation = DeleteOperation.fromContentAndSelection(content, selection),
|
|
71
|
-
operation = deleteOperation; ///
|
|
72
|
-
|
|
73
|
-
this.applyOperation(operation);
|
|
74
|
-
|
|
75
|
-
this.intermediateHandler(event, element);
|
|
76
|
-
|
|
77
|
-
event.preventDefault();
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
copyHandler = (event, element) => {
|
|
81
|
-
const selection = this.getSelection(),
|
|
82
|
-
selectionEmpty = selection.isEmpty();
|
|
83
|
-
|
|
84
|
-
if (selectionEmpty) {
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
const selectedContent = this.getSelectedContent();
|
|
89
|
-
|
|
90
|
-
navigator.clipboard.writeText(selectedContent);
|
|
91
|
-
|
|
92
|
-
event.preventDefault();
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
pasteHandler = (event, element) => {
|
|
96
|
-
const { clipboardData } = event,
|
|
97
|
-
textData = clipboardData.getData(TEXT);
|
|
98
|
-
|
|
99
|
-
if (textData === EMPTY_STRING) {
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
const selection = this.getSelection(),
|
|
104
|
-
selectionEmpty = selection.isEmpty();
|
|
105
|
-
|
|
106
|
-
if (!selectionEmpty) {
|
|
107
|
-
const content = this.getContent(),
|
|
108
|
-
deleteOperation = DeleteOperation.fromContentAndSelection(content, selection),
|
|
109
|
-
operation = deleteOperation;
|
|
110
|
-
|
|
111
|
-
this.applyOperation(operation);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
const content = textData, ///
|
|
115
|
-
insertOperation = InsertOperation.fromContentAndSelection(content, selection),
|
|
116
|
-
operation = insertOperation; ///
|
|
117
|
-
|
|
118
|
-
this.applyOperation(operation);
|
|
119
|
-
|
|
120
|
-
this.intermediateHandler(event, element);
|
|
121
|
-
|
|
122
|
-
event.preventDefault();
|
|
123
|
-
}
|
|
124
|
-
|
|
125
39
|
inputHandler = (event, element) => {
|
|
126
40
|
this.intermediateHandler(event, element);
|
|
127
41
|
}
|
|
@@ -129,22 +43,20 @@ export default class RichTextarea extends Element {
|
|
|
129
43
|
blurHandler = (event, element) => {
|
|
130
44
|
this.focused = false;
|
|
131
45
|
|
|
132
|
-
const
|
|
133
|
-
eventType = BLUR_EVENT_TYPE,
|
|
46
|
+
const eventType = BLUR_EVENT_TYPE,
|
|
134
47
|
selectionChanged = true;
|
|
135
48
|
|
|
136
|
-
this.intermediateHandler(event, element,
|
|
49
|
+
this.intermediateHandler(event, element, eventType, selectionChanged);
|
|
137
50
|
}
|
|
138
51
|
|
|
139
52
|
focusHandler = (event, element) => {
|
|
140
53
|
this.focused = true;
|
|
141
54
|
|
|
142
55
|
defer(() => {
|
|
143
|
-
const
|
|
144
|
-
eventType = FOCUS_EVENT_TYPE,
|
|
56
|
+
const eventType = FOCUS_EVENT_TYPE,
|
|
145
57
|
selectionChanged = true;
|
|
146
58
|
|
|
147
|
-
this.intermediateHandler(event, element,
|
|
59
|
+
this.intermediateHandler(event, element, eventType, selectionChanged);
|
|
148
60
|
});
|
|
149
61
|
}
|
|
150
62
|
|
|
@@ -154,29 +66,6 @@ export default class RichTextarea extends Element {
|
|
|
154
66
|
this.callHandlers(eventType, event, element);
|
|
155
67
|
}
|
|
156
68
|
|
|
157
|
-
keyDownHandler = (event, element) => {
|
|
158
|
-
let preventDefault = false;
|
|
159
|
-
|
|
160
|
-
const { keyCode } = event;
|
|
161
|
-
|
|
162
|
-
switch (keyCode) {
|
|
163
|
-
case Z_KEY_CODE:
|
|
164
|
-
preventDefault = this.zKeyDown(event, element);
|
|
165
|
-
|
|
166
|
-
break;
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
if (preventDefault) {
|
|
170
|
-
event.preventDefault();
|
|
171
|
-
|
|
172
|
-
return;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
defer(() => {
|
|
176
|
-
this.intermediateHandler(event, element);
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
|
|
180
69
|
contextmenuHandler = (event, element) => {
|
|
181
70
|
event.preventDefault();
|
|
182
71
|
}
|
|
@@ -189,25 +78,18 @@ export default class RichTextarea extends Element {
|
|
|
189
78
|
}
|
|
190
79
|
}
|
|
191
80
|
|
|
192
|
-
intermediateHandler = (event, element,
|
|
193
|
-
if (this.readOnly) {
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
}
|
|
81
|
+
intermediateHandler = (event, element, eventType = CHANGE_EVENT_TYPE, selectionChanged = this.hasSelectionChanged()) => {
|
|
82
|
+
// if (this.readOnly) {
|
|
83
|
+
// const previousContent = this.getPreviousContent(),
|
|
84
|
+
// content = previousContent; ///
|
|
85
|
+
//
|
|
86
|
+
// this.setContent(content);
|
|
87
|
+
// }
|
|
199
88
|
|
|
200
89
|
const content = this.getContent(),
|
|
201
90
|
selection = this.getSelection(),
|
|
202
91
|
contentChanged = this.hasContentChanged();
|
|
203
92
|
|
|
204
|
-
if (contentChanged && undoable) {
|
|
205
|
-
const previousContent = this.getPreviousContent(),
|
|
206
|
-
operations = generateOperations(previousContent, content);
|
|
207
|
-
|
|
208
|
-
this.undoBuffer.addOperations(operations);
|
|
209
|
-
}
|
|
210
|
-
|
|
211
93
|
if (contentChanged || selectionChanged) {
|
|
212
94
|
this.callHandlers(eventType, event, element);
|
|
213
95
|
}
|
|
@@ -231,14 +113,10 @@ export default class RichTextarea extends Element {
|
|
|
231
113
|
|
|
232
114
|
element = this; ///
|
|
233
115
|
|
|
234
|
-
if ( (handler !== this.
|
|
235
|
-
&& (handler !== this.copyHandler)
|
|
236
|
-
&& (handler !== this.pasteHandler)
|
|
237
|
-
&& (handler !== this.inputHandler)
|
|
116
|
+
if ( (handler !== this.inputHandler)
|
|
238
117
|
&& (handler !== this.blurHandler)
|
|
239
118
|
&& (handler !== this.focusHandler)
|
|
240
119
|
&& (handler !== this.scrollHandler)
|
|
241
|
-
&& (handler !== this.keyDownHandler)
|
|
242
120
|
&& (handler !== this.contextmenuHandler)
|
|
243
121
|
&& (handler !== this.selectChangeHandler) ) {
|
|
244
122
|
|
|
@@ -329,83 +207,7 @@ export default class RichTextarea extends Element {
|
|
|
329
207
|
}
|
|
330
208
|
}
|
|
331
209
|
|
|
332
|
-
zKeyDown(event, element) {
|
|
333
|
-
let preventDefault = false;
|
|
334
|
-
|
|
335
|
-
const { ctrlKey, metaKey, shiftKey } = event;
|
|
336
|
-
|
|
337
|
-
if (ctrlKey || metaKey) {
|
|
338
|
-
const operation = shiftKey ?
|
|
339
|
-
this.undoBuffer.redo() :
|
|
340
|
-
this.undoBuffer.undo();
|
|
341
|
-
|
|
342
|
-
if (operation !== null) {
|
|
343
|
-
const undoable = false;
|
|
344
|
-
|
|
345
|
-
this.applyOperation(operation);
|
|
346
|
-
|
|
347
|
-
this.intermediateHandler(event, element, undoable);
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
preventDefault = true;
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
return preventDefault;
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
transform(operations) {
|
|
357
|
-
let content = this.getContent(),
|
|
358
|
-
selection = this.getSelection();
|
|
359
|
-
|
|
360
|
-
const transformedContent = transformContent(content, operations),
|
|
361
|
-
transformedSelection = transformSelection(selection, operations);
|
|
362
|
-
|
|
363
|
-
content = transformedContent; ///
|
|
364
|
-
|
|
365
|
-
selection = transformedSelection; ///
|
|
366
|
-
|
|
367
|
-
const setPreviousContent = false,
|
|
368
|
-
setPreviousSelection = false;
|
|
369
|
-
|
|
370
|
-
this.setContent(content, setPreviousContent);
|
|
371
|
-
|
|
372
|
-
this.setSelection(selection, setPreviousSelection);
|
|
373
|
-
|
|
374
|
-
this.undoBuffer.transform(operations);
|
|
375
|
-
|
|
376
|
-
const event = null,
|
|
377
|
-
element = this, ///
|
|
378
|
-
undoable = false;
|
|
379
|
-
|
|
380
|
-
this.intermediateHandler(event, element, undoable);
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
applyOperation(operation) {
|
|
384
|
-
let content = this.getContent(),
|
|
385
|
-
selection = this.getSelection();
|
|
386
|
-
|
|
387
|
-
const transformedContent = operation.transformContent(content),
|
|
388
|
-
transformedSelection = operation.transformSelection(selection);
|
|
389
|
-
|
|
390
|
-
content = transformedContent; ///
|
|
391
|
-
|
|
392
|
-
selection = transformedSelection; ///
|
|
393
|
-
|
|
394
|
-
const setPreviousContent = false,
|
|
395
|
-
setPreviousSelection = false;
|
|
396
|
-
|
|
397
|
-
this.setContent(content, setPreviousContent);
|
|
398
|
-
|
|
399
|
-
this.setSelection(selection, setPreviousSelection);
|
|
400
|
-
}
|
|
401
|
-
|
|
402
210
|
activate() {
|
|
403
|
-
this.on(CUT_EVENT_TYPE, this.cutHandler);
|
|
404
|
-
|
|
405
|
-
this.on(COPY_EVENT_TYPE, this.copyHandler);
|
|
406
|
-
|
|
407
|
-
this.on(PASTE_EVENT_TYPE, this.pasteHandler);
|
|
408
|
-
|
|
409
211
|
this.on(INPUT_EVENT_TYPE, this.inputHandler);
|
|
410
212
|
|
|
411
213
|
this.on(BLUR_EVENT_TYPE, this.blurHandler);
|
|
@@ -414,22 +216,12 @@ export default class RichTextarea extends Element {
|
|
|
414
216
|
|
|
415
217
|
this.on(SCROLL_EVENT_TYPE, this.scrollHandler);
|
|
416
218
|
|
|
417
|
-
this.on(KEYDOWN_EVENT_TYPE, this.keyDownHandler);
|
|
418
|
-
|
|
419
|
-
this.on(CONTEXTMENU_EVENT_TYPE, this.contextmenuHandler);
|
|
420
|
-
|
|
421
219
|
document.on(SELECTIONCHANGE_EVENT_TYPE, this.selectChangeHandler);
|
|
422
220
|
|
|
423
221
|
this.addClass("active");
|
|
424
222
|
}
|
|
425
223
|
|
|
426
224
|
deactivate() {
|
|
427
|
-
this.off(CUT_EVENT_TYPE, this.cutHandler);
|
|
428
|
-
|
|
429
|
-
this.off(COPY_EVENT_TYPE, this.copyHandler);
|
|
430
|
-
|
|
431
|
-
this.off(PASTE_EVENT_TYPE, this.pasteHandler);
|
|
432
|
-
|
|
433
225
|
this.off(INPUT_EVENT_TYPE, this.inputHandler);
|
|
434
226
|
|
|
435
227
|
this.off(BLUR_EVENT_TYPE, this.blurHandler);
|
|
@@ -438,10 +230,6 @@ export default class RichTextarea extends Element {
|
|
|
438
230
|
|
|
439
231
|
this.off(SCROLL_EVENT_TYPE, this.scrollHandler);
|
|
440
232
|
|
|
441
|
-
this.off(KEYDOWN_EVENT_TYPE, this.keyDownHandler);
|
|
442
|
-
|
|
443
|
-
this.off(CONTEXTMENU_EVENT_TYPE, this.contextmenuHandler);
|
|
444
|
-
|
|
445
233
|
document.off(SELECTIONCHANGE_EVENT_TYPE, this.selectChangeHandler);
|
|
446
234
|
|
|
447
235
|
this.removeClass("active");
|
|
@@ -552,8 +340,7 @@ export default class RichTextarea extends Element {
|
|
|
552
340
|
static fromClass(Class, properties, ...remainingArguments) {
|
|
553
341
|
const focused = false,
|
|
554
342
|
readOnly = false,
|
|
555
|
-
|
|
556
|
-
richTextarea = Element.fromClass(Class, properties, focused, readOnly, undoBuffer, ...remainingArguments);
|
|
343
|
+
richTextarea = Element.fromClass(Class, properties, focused, readOnly, ...remainingArguments);
|
|
557
344
|
|
|
558
345
|
return richTextarea;
|
|
559
346
|
}
|