2 var ReactiveData=
function(e){this.table=e,this.data=!1,this.blocked=!1,this.origFuncs={},this.currentVersion=0};ReactiveData.prototype.watchData=
function(e){var t,a=
this;this.currentVersion++,t=this.currentVersion,a.unwatchData(),a.data=e,a.origFuncs.push=e.push,Object.defineProperty(a.data,
"push",{enumerable:!1,configurable:!0,value:
function(){var r=Array.from(arguments);
return a.blocked||t!==a.currentVersion||r.forEach(
function(e){a.table.rowManager.addRowActual(e,!1)}),a.origFuncs.push.apply(e,arguments)}}),a.origFuncs.unshift=e.unshift,Object.defineProperty(a.data,
"unshift",{enumerable:!1,configurable:!0,value:
function(){var r=Array.from(arguments);
return a.blocked||t!==a.currentVersion||r.forEach(
function(e){a.table.rowManager.addRowActual(e,!0)}),a.origFuncs.unshift.apply(e,arguments)}}),a.origFuncs.shift=e.shift,Object.defineProperty(a.data,
"shift",{enumerable:!1,configurable:!0,value:
function(){var r;
return a.blocked||t!==a.currentVersion||a.data.length&&(r=a.table.rowManager.getRowFromDataObject(a.data[0]))&&r.deleteActual(),a.origFuncs.shift.call(e)}}),a.origFuncs.pop=e.pop,Object.defineProperty(a.data,
"pop",{enumerable:!1,configurable:!0,value:
function(){var r;
return a.blocked||t!==a.currentVersion||a.data.length&&(r=a.table.rowManager.getRowFromDataObject(a.data[a.data.length-1]))&&r.deleteActual(),a.origFuncs.pop.call(e)}}),a.origFuncs.splice=e.splice,Object.defineProperty(a.data,
"splice",{enumerable:!1,configurable:!0,value:
function(){var r,o=Array.from(arguments),n=o[0]<0?e.length+o[0]:o[0],c=o[1],i=!!o[2]&&o.slice(2);
if(!a.blocked&&t===a.currentVersion){
if(i&&(r=!!e[n]&&a.table.rowManager.getRowFromDataObject(e[n]),r?i.forEach(
function(e){a.table.rowManager.addRowActual(e,!0,r,!0)}):(i=i.slice().reverse(),i.forEach(
function(e){a.table.rowManager.addRowActual(e,!0,!1,!0)}))),0!==c){var u=e.slice(n,
void 0===o[1]?o[1]:n+c);u.forEach(
function(e,t){var r=a.table.rowManager.getRowFromDataObject(e);r&&r.deleteActual(t!==u.length-1)})}(i||0!==c)&&a.table.rowManager.reRenderInPosition()}
return a.origFuncs.splice.apply(e,arguments)}})},ReactiveData.prototype.unwatchData=
function(){
if(!1!==this.data)
for(var e in this.origFuncs)Object.defineProperty(this.data,e,{enumerable:!0,configurable:!0,writable:!0,value:this.origFuncs.key})},ReactiveData.prototype.watchRow=
function(e){var t=e.getData();this.blocked=!0;
for(var a in t)this.watchKey(e,t,a);this.blocked=!1},ReactiveData.prototype.watchKey=
function(e,t,a){var r=
this,o=Object.getOwnPropertyDescriptor(t,a),n=t[a],c=this.currentVersion;Object.defineProperty(t,a,{set:
function(t){
if(n=t,!r.blocked&&c===r.currentVersion){var i={};i[a]=t,e.updateData(i)}o.set&&o.set(t)},
get:
function(){
return o.get&&o.get(),n}})},ReactiveData.prototype.unwatchRow=
function(e){var t=e.getData();
for(var a in t)Object.defineProperty(t,a,{value:t[a]})},ReactiveData.prototype.block=
function(){this.blocked=!0},ReactiveData.prototype.unblock=
function(){this.blocked=!1},Tabulator.prototype.registerModule(
"reactiveData",ReactiveData);