added support for getNext/getPrev on insertions
This commit is contained in:
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -281,6 +281,28 @@ module.exports = function() {
|
||||
}
|
||||
};
|
||||
|
||||
Insert.prototype.getNext = function() {
|
||||
var n;
|
||||
n = this.next_cl;
|
||||
while (n.is_deleted && (n.next_cl != null)) {
|
||||
n = n.next_cl;
|
||||
}
|
||||
return n;
|
||||
};
|
||||
|
||||
Insert.prototype.getPrev = function() {
|
||||
var n;
|
||||
n((function(_this) {
|
||||
return function() {
|
||||
return _this.prev_cl;
|
||||
};
|
||||
})(this));
|
||||
while (n.is_deleted && (n.prev_cl != null)) {
|
||||
n = n.prev_cl;
|
||||
}
|
||||
return n;
|
||||
};
|
||||
|
||||
Insert.prototype.applyDelete = function(o) {
|
||||
var callLater, garbagecollect, _ref;
|
||||
if (this.deleted_by == null) {
|
||||
|
||||
@@ -385,15 +385,15 @@ module.exports = function() {
|
||||
Composition.prototype.callOperationSpecificInsertEvents = function(op) {
|
||||
var o;
|
||||
if (this.composition_ref.next_cl === op) {
|
||||
o.undo_delta = this.custom_type._apply(op.content);
|
||||
op.undo_delta = this.getCustomType()._apply(op.content);
|
||||
} else {
|
||||
o = this.end.prev_cl;
|
||||
while (o !== op) {
|
||||
this.custom_type._unapply(o.undo_delta);
|
||||
this.getCustomType()._unapply(o.undo_delta);
|
||||
o = o.next_cl;
|
||||
}
|
||||
while (o !== this.end) {
|
||||
o.undo_delta = this.custom_type._apply(o.content);
|
||||
o.undo_delta = this.getCustomType()._apply(o.content);
|
||||
o = o.next_cl;
|
||||
}
|
||||
}
|
||||
@@ -410,7 +410,7 @@ module.exports = function() {
|
||||
Composition.prototype.callOperationSpecificDeleteEvents = function(op, del_op) {};
|
||||
|
||||
Composition.prototype.applyDelta = function(delta) {
|
||||
(new ops.Insert(null, content, this, null, this.end.prev_cl, this.end)).execute();
|
||||
(new ops.Insert(null, delta, this, null, this.end.prev_cl, this.end)).execute();
|
||||
return void 0;
|
||||
};
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user