define([ ], function () { var module = { exports: {} }; var transformCursor = function (cursor, op) { if (!op) { return cursor; } var pos = op.offset; var remove = op.toRemove; var insert = op.toInsert.length; if (typeof cursor === 'undefined') { return; } if (typeof remove === 'number' && pos < cursor) { cursor -= Math.min(remove, cursor - pos); } if (typeof insert === 'number' && pos < cursor) { cursor += insert; } return cursor; }; module.exports.transformCursor = function (cursor, ops) { if (Array.isArray(ops)) { for (var i = ops.length - 1; i >= 0; i--) { cursor = transformCursor(cursor, ops[i]); } return cursor; } return transformCursor(ops); }; return module.exports; });