easy-richtextarea 4.0.34 → 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 -1563
- package/lib/browser.js +1 -37
- package/lib/main.js +4 -45
- package/lib/mixins/event.js +11 -10
- package/lib/richTextarea.js +31 -156
- 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 -239
- 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,87 +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
|
-
selection = Selection.fromOperation(operation),
|
|
345
|
-
setPreviousSelection = false;
|
|
346
|
-
|
|
347
|
-
this.applyOperation(operation);
|
|
348
|
-
|
|
349
|
-
this.setSelection(selection, setPreviousSelection);
|
|
350
|
-
|
|
351
|
-
this.intermediateHandler(event, element, undoable);
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
preventDefault = true;
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
return preventDefault;
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
transform(operations) {
|
|
361
|
-
let content = this.getContent(),
|
|
362
|
-
selection = this.getSelection();
|
|
363
|
-
|
|
364
|
-
const transformedContent = transformContent(content, operations),
|
|
365
|
-
transformedSelection = transformSelection(selection, operations);
|
|
366
|
-
|
|
367
|
-
content = transformedContent; ///
|
|
368
|
-
|
|
369
|
-
selection = transformedSelection; ///
|
|
370
|
-
|
|
371
|
-
const setPreviousContent = false,
|
|
372
|
-
setPreviousSelection = false;
|
|
373
|
-
|
|
374
|
-
this.setContent(content, setPreviousContent);
|
|
375
|
-
|
|
376
|
-
this.setSelection(selection, setPreviousSelection);
|
|
377
|
-
|
|
378
|
-
this.undoBuffer.transform(operations);
|
|
379
|
-
|
|
380
|
-
const event = null,
|
|
381
|
-
element = this, ///
|
|
382
|
-
undoable = false;
|
|
383
|
-
|
|
384
|
-
this.intermediateHandler(event, element, undoable);
|
|
385
|
-
}
|
|
386
|
-
|
|
387
|
-
applyOperation(operation) {
|
|
388
|
-
let content = this.getContent(),
|
|
389
|
-
selection = this.getSelection();
|
|
390
|
-
|
|
391
|
-
const transformedContent = operation.transformContent(content),
|
|
392
|
-
transformedSelection = operation.transformSelection(selection);
|
|
393
|
-
|
|
394
|
-
content = transformedContent; ///
|
|
395
|
-
|
|
396
|
-
selection = transformedSelection; ///
|
|
397
|
-
|
|
398
|
-
const setPreviousContent = false,
|
|
399
|
-
setPreviousSelection = false;
|
|
400
|
-
|
|
401
|
-
this.setContent(content, setPreviousContent);
|
|
402
|
-
|
|
403
|
-
this.setSelection(selection, setPreviousSelection);
|
|
404
|
-
}
|
|
405
|
-
|
|
406
210
|
activate() {
|
|
407
|
-
this.on(CUT_EVENT_TYPE, this.cutHandler);
|
|
408
|
-
|
|
409
|
-
this.on(COPY_EVENT_TYPE, this.copyHandler);
|
|
410
|
-
|
|
411
|
-
this.on(PASTE_EVENT_TYPE, this.pasteHandler);
|
|
412
|
-
|
|
413
211
|
this.on(INPUT_EVENT_TYPE, this.inputHandler);
|
|
414
212
|
|
|
415
213
|
this.on(BLUR_EVENT_TYPE, this.blurHandler);
|
|
@@ -418,22 +216,12 @@ export default class RichTextarea extends Element {
|
|
|
418
216
|
|
|
419
217
|
this.on(SCROLL_EVENT_TYPE, this.scrollHandler);
|
|
420
218
|
|
|
421
|
-
this.on(KEYDOWN_EVENT_TYPE, this.keyDownHandler);
|
|
422
|
-
|
|
423
|
-
this.on(CONTEXTMENU_EVENT_TYPE, this.contextmenuHandler);
|
|
424
|
-
|
|
425
219
|
document.on(SELECTIONCHANGE_EVENT_TYPE, this.selectChangeHandler);
|
|
426
220
|
|
|
427
221
|
this.addClass("active");
|
|
428
222
|
}
|
|
429
223
|
|
|
430
224
|
deactivate() {
|
|
431
|
-
this.off(CUT_EVENT_TYPE, this.cutHandler);
|
|
432
|
-
|
|
433
|
-
this.off(COPY_EVENT_TYPE, this.copyHandler);
|
|
434
|
-
|
|
435
|
-
this.off(PASTE_EVENT_TYPE, this.pasteHandler);
|
|
436
|
-
|
|
437
225
|
this.off(INPUT_EVENT_TYPE, this.inputHandler);
|
|
438
226
|
|
|
439
227
|
this.off(BLUR_EVENT_TYPE, this.blurHandler);
|
|
@@ -442,10 +230,6 @@ export default class RichTextarea extends Element {
|
|
|
442
230
|
|
|
443
231
|
this.off(SCROLL_EVENT_TYPE, this.scrollHandler);
|
|
444
232
|
|
|
445
|
-
this.off(KEYDOWN_EVENT_TYPE, this.keyDownHandler);
|
|
446
|
-
|
|
447
|
-
this.off(CONTEXTMENU_EVENT_TYPE, this.contextmenuHandler);
|
|
448
|
-
|
|
449
233
|
document.off(SELECTIONCHANGE_EVENT_TYPE, this.selectChangeHandler);
|
|
450
234
|
|
|
451
235
|
this.removeClass("active");
|
|
@@ -556,8 +340,7 @@ export default class RichTextarea extends Element {
|
|
|
556
340
|
static fromClass(Class, properties, ...remainingArguments) {
|
|
557
341
|
const focused = false,
|
|
558
342
|
readOnly = false,
|
|
559
|
-
|
|
560
|
-
richTextarea = Element.fromClass(Class, properties, focused, readOnly, undoBuffer, ...remainingArguments);
|
|
343
|
+
richTextarea = Element.fromClass(Class, properties, focused, readOnly, ...remainingArguments);
|
|
561
344
|
|
|
562
345
|
return richTextarea;
|
|
563
346
|
}
|