UNPKG

ot-socialcalc

Version:

Operational Transformation for socialcalc commands (shareJS compatible)

40 lines (31 loc) 1.31 kB
# ot-socialcalc This is a shareJS-compatible [OT](https://en-wikipedia.org/wiki/Operational_transformation) type. It defines Operations that relate to [socialcalc](https://npmjs.org/package/socialcalc)'s spreadsheet commands and can be serialized, applied on a socialcalc snapshot and, of course, transformed against each other. ## API It implements shareJS' OT type interface * create() : snapshot * apply(op, snapshot): snapshot * transform(op1, op2, side): neOp * compose(op1, op2): newOP Furthermore it allows you to convert a list of socialcalc commands into an operation and vice versa: * serializeEdit(op) : cmdStr * deserializeEdit(cmdStr) : op ## To-do - [x] set sheet operation - [x] set row - [x] set col - [x] set cell - [x] set cell range - [ ] erase/copy/cut/paste/fillright/filldown A1:B5 all/formulas/format - [x] merge - [ ] unmerge - [x] insertcol/insertrow - [x] deletecol/deleterow C5:E7 - [ ] movepaste/moveinsert A1:B5 A8 all/formulas/format (if insert, destination must be in same rows or columns or else paste done) - [ ] sort cr1:cr2 col1 up/down col2 up/down col3 up/down - [x] name define|desc|delete - [x] transform cursor ## Tests. None yet. This is on the to-do! ## Legal (c) 2016 by Marcel Klehr Mozilla Public License 2.0 (see LICENSE.txt)