Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/plotdb/ctrlz

JSON edit history manager for undo / redo functionality, powered by operational transform.
https://github.com/plotdb/ctrlz

operational-transformation

Last synced: about 2 months ago
JSON representation

JSON edit history manager for undo / redo functionality, powered by operational transform.

Awesome Lists containing this project

README

        

# ctrlz

JSON Edit History Manager for Undo / Redo Functionality, powered by operational transform. Keep state and support undo for anything that can be expressed / stored by JSON!

# Install

include required js file:

```

```

ctrlz uses `@plotdb/json0` as a dependency. `ctrlz.bundle.min.js` already includes it but for a separate file, use `ctrlz.mins.js` instead, and include `@plotdb/json0` separately downloaded from [its repo](https://github.com/plotdb/json0).

## Usage

```
/* init directly in constructor */
mananger = new ctrlz({obj: obj});

/* or alternatively, reset anytime after initialized */
manager.reset({obj: obj});

/* when obj is updated */
manager.update(obj);

/* if you have ot to apply: */
manager.apply({op: op});

/* undo, return a undo-ed object */
ret = manager.undo();

/* redo, return a redo-ed object */
ret = manager.redo();

/* clean history */
mananger.clear();
```

## License

MIT.