Undoo
Undo/redo manager

Installation
Node.js
npm install undoo --save
Browser
Local
<script src="node_modules/undoo/dist/undoo.min.js"></script>
CDN unpkg
<script src="https://unpkg.com/undoo/dist/undoo.min.js"></script>
Example
const Undoo = require('undoo');
const myHistory = new Undoo();
myHistory
.save('one')
.save('two')
.save('three')
.save('four');
myHistory.undo((item)=>{
console.log(item);
});
myHistory.current();
myHistory.redo((item)=>{
console.log(item);
});
Use provider
const Undoo = require('undoo');
const myHistory = new Undoo({
provider: () => document.getElementById('myTextArea').value
});
myHistory.save();
API
Undoo
Kind: global class
new Undoo([opts])
Create instance
Param | Type | Default | Description |
---|
[opts] | Object | | configuration object
|
[opts.provider] | function |
| optional function called on save that returns new state for history
|
[opts.maxLength] | number | 20 | max length history
|
undoo.canUndo() ⇒ boolean
Check if undo is available
Kind: instance method of Undoo
undoo.canRedo() ⇒ boolean
Kind: instance method of Undoo
Check: if redo is available
undoo.import(history) ⇒ Undoo
Import external history
Kind: instance method of Undoo
undoo.history() ⇒ Array
Get history
Kind: instance method of Undoo
undoo.save([item]) ⇒ Undoo
Save history
Kind: instance method of Undoo
undoo.suspendSave([state]) ⇒ Undoo
Suspend save method
Kind: instance method of Undoo
Param | Type | Default |
---|
[state] | boolean | true |
undoo.allowedSave() ⇒ boolean
Check if save is allowed
Kind: instance method of Undoo
undoo.clear() ⇒ Undoo
Clear history
Kind: instance method of Undoo
undoo.undo([callback]) ⇒ Undoo
Undo
Kind: instance method of Undoo
undoo.redo([callback]) ⇒ Undoo
Redo
Kind: instance method of Undoo
undoo.current() ⇒ *
Get current item in history
Kind: instance method of Undoo
undoo.count() ⇒ number
Count history items, the first element is not considered
Kind: instance method of Undoo
undoo.initialState() ⇒ *
Get initial state history
Kind: instance method of Undoo
undoo.onUpdate(callback) ⇒ Undoo
Triggered when history is updated
Kind: instance method of Undoo
undoo.onMaxLength(callback) ⇒ Undoo
Triggered when maxLength is exceeded
Kind: instance method of Undoo
undoo.onBeforeSave(callback) ⇒ Undoo
Triggered before save
Kind: instance method of Undoo
Example
myHistory.onBeforeSave(()=>false)
myHistory.onBeforeSave((item)=>{
return item.toUpperCase();
})
Undoo~undoCallback : function
undo callback
Kind: inner typedef of Undoo
Param | Type | Description |
---|
item | * | current history item
|
Undoo~redoCallback : function
redo callback
Kind: inner typedef of Undoo
Param | Type | Description |
---|
item | * | current history item
|
Undoo~updateCallback : function
onUpdate callback
Kind: inner typedef of Undoo
Param | Type | Description |
---|
item | * | current history item
|
action | string | action that has called update event. Can be: redo, undo, save, clear
|
history | Array | history array
|
istance | Undoo | |
Undoo~maxLengthCallback : function
onMaxLength callback
Kind: inner typedef of Undoo
Param | Type | Description |
---|
item | * | current history item
|
history | Array | history array
|
istance | Undoo | |
Undoo~beforeSaveCallback : function
onBeforeSave callback
Kind: inner typedef of Undoo
Param | Type | Description |
---|
item | * | current history item
|
istance | Undoo | |
Changelog
You can view the changelog here
License
Undoo is open-sourced software licensed under the MIT license
Author
Fabio Ricali