2 var History=
function(t){this.table=t,this.history=[],this.index=-1};History.prototype.clear=
function(){this.history=[],this.index=-1},History.prototype.action=
function(t,o,e){this.history=this.history.slice(0,this.index+1),this.history.push({type:t,component:o,data:e}),this.index++},History.prototype.getHistoryUndoSize=
function(){
return this.index+1},History.prototype.getHistoryRedoSize=
function(){
return this.history.length-(this.index+1)},History.prototype.undo=
function(){
if(this.index>-1){var t=this.history[this.index];
return this.undoers[t.type].call(
this,t),this.index--,this.table.options.historyUndo.call(this.table,t.type,t.component.getComponent(),t.data),!0}
return console.warn(
"History Undo Error - No more history to undo"),!1},History.prototype.redo=
function(){
if(this.history.length-1>
this.index){this.index++;var t=this.history[this.index];
return this.redoers[t.type].call(
this,t),this.table.options.historyRedo.call(this.table,t.type,t.component.getComponent(),t.data),!0}
return console.warn(
"History Redo Error - No more history to redo"),!1},History.prototype.undoers={cellEdit:
function(t){t.component.setValueProcessData(t.data.oldValue)},rowAdd:
function(t){t.component.deleteActual()},rowDelete:
function(t){var o=this.table.rowManager.addRowActual(t.data.data,t.data.pos,t.data.index);this.table.options.groupBy&&this.table.modExists(
"groupRows")&&this.table.modules.groupRows.updateGroupRows(!0),this._rebindRow(t.component,o)},rowMove:
function(t){this.table.rowManager.moveRowActual(t.component,
this.table.rowManager.rows[t.data.pos],!1),this.table.rowManager.redraw()}},History.prototype.redoers={cellEdit:
function(t){t.component.setValueProcessData(t.data.newValue)},rowAdd:
function(t){var o=this.table.rowManager.addRowActual(t.data.data,t.data.pos,t.data.index);this.table.options.groupBy&&this.table.modExists(
"groupRows")&&this.table.modules.groupRows.updateGroupRows(!0),this._rebindRow(t.component,o)},rowDelete:
function(t){t.component.deleteActual()},rowMove:
function(t){this.table.rowManager.moveRowActual(t.component,
this.table.rowManager.rows[t.data.pos],!1),this.table.rowManager.redraw()}},History.prototype._rebindRow=
function(t,o){this.history.forEach(
function(e){
if(e.component instanceof Row)e.component===t&&(e.component=o);
else if(e.component instanceof Cell&&e.component.row===t){var i=e.component.column.getField();i&&(e.component=o.getCell(i))}})},Tabulator.prototype.registerModule(
"history",History);