dtable-store 4.4.4 → 4.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,4 +7,4 @@
7
7
  */
8
8
  var n=r(221),i=r(222),a=r(223);function o(){return s.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function l(e,t){if(o()<t)throw new RangeError("Invalid typed array length");return s.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=s.prototype:(null===e&&(e=new s(t)),e.length=t),e}function s(e,t,r){if(!(s.TYPED_ARRAY_SUPPORT||this instanceof s))return new s(e,t,r);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return c(this,e)}return u(this,e,t,r)}function u(e,t,r,n){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,r,n){if(t.byteLength,r<0||t.byteLength<r)throw new RangeError("'offset' is out of bounds");if(t.byteLength<r+(n||0))throw new RangeError("'length' is out of bounds");t=void 0===r&&void 0===n?new Uint8Array(t):void 0===n?new Uint8Array(t,r):new Uint8Array(t,r,n);s.TYPED_ARRAY_SUPPORT?(e=t).__proto__=s.prototype:e=d(e,t);return e}(e,t,r,n):"string"==typeof t?function(e,t,r){"string"==typeof r&&""!==r||(r="utf8");if(!s.isEncoding(r))throw new TypeError('"encoding" must be a valid string encoding');var n=0|E(t,r),i=(e=l(e,n)).write(t,r);i!==n&&(e=e.slice(0,i));return e}(e,t,r):function(e,t){if(s.isBuffer(t)){var r=0|T(t.length);return 0===(e=l(e,r)).length||t.copy(e,0,0,r),e}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(n=t.length)!=n?l(e,0):d(e,t);if("Buffer"===t.type&&a(t.data))return d(e,t.data)}var n;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function _(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function c(e,t){if(_(t),e=l(e,t<0?0:0|T(t)),!s.TYPED_ARRAY_SUPPORT)for(var r=0;r<t;++r)e[r]=0;return e}function d(e,t){var r=t.length<0?0:0|T(t.length);e=l(e,r);for(var n=0;n<r;n+=1)e[n]=255&t[n];return e}function T(e){if(e>=o())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return 0|e}function E(e,t){if(s.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return B(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return V(e).length;default:if(n)return B(e).length;t=(""+t).toLowerCase(),n=!0}}function O(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return P(this,t,r);case"utf8":case"utf-8":return N(this,t,r);case"ascii":return C(this,t,r);case"latin1":case"binary":return g(this,t,r);case"base64":return L(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return M(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function p(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function R(e,t,r,n,i){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=s.from(t,n)),s.isBuffer(t))return 0===t.length?-1:f(e,t,r,n,i);if("number"==typeof t)return t&=255,s.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):f(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function f(e,t,r,n,i){var a,o=1,l=e.length,s=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;o=2,l/=2,s/=2,r/=2}function u(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(i){var _=-1;for(a=r;a<l;a++)if(u(e,a)===u(t,-1===_?0:a-_)){if(-1===_&&(_=a),a-_+1===s)return _*o}else-1!==_&&(a-=a-_),_=-1}else for(r+s>l&&(r=l-s),a=r;a>=0;a--){for(var c=!0,d=0;d<s;d++)if(u(e,a+d)!==u(t,d)){c=!1;break}if(c)return a}return-1}function m(e,t,r,n){r=Number(r)||0;var i=e.length-r;n?(n=Number(n))>i&&(n=i):n=i;var a=t.length;if(a%2!=0)throw new TypeError("Invalid hex string");n>a/2&&(n=a/2);for(var o=0;o<n;++o){var l=parseInt(t.substr(2*o,2),16);if(isNaN(l))return o;e[r+o]=l}return o}function y(e,t,r,n){return G(B(t,e.length-r),e,r,n)}function I(e,t,r,n){return G(function(e){for(var t=[],r=0;r<e.length;++r)t.push(255&e.charCodeAt(r));return t}(t),e,r,n)}function h(e,t,r,n){return I(e,t,r,n)}function A(e,t,r,n){return G(V(t),e,r,n)}function b(e,t,r,n){return G(function(e,t){for(var r,n,i,a=[],o=0;o<e.length&&!((t-=2)<0);++o)r=e.charCodeAt(o),n=r>>8,i=r%256,a.push(i),a.push(n);return a}(t,e.length-r),e,r,n)}function L(e,t,r){return 0===t&&r===e.length?n.fromByteArray(e):n.fromByteArray(e.slice(t,r))}function N(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i<r;){var a,o,l,s,u=e[i],_=null,c=u>239?4:u>223?3:u>191?2:1;if(i+c<=r)switch(c){case 1:u<128&&(_=u);break;case 2:128==(192&(a=e[i+1]))&&(s=(31&u)<<6|63&a)>127&&(_=s);break;case 3:a=e[i+1],o=e[i+2],128==(192&a)&&128==(192&o)&&(s=(15&u)<<12|(63&a)<<6|63&o)>2047&&(s<55296||s>57343)&&(_=s);break;case 4:a=e[i+1],o=e[i+2],l=e[i+3],128==(192&a)&&128==(192&o)&&128==(192&l)&&(s=(15&u)<<18|(63&a)<<12|(63&o)<<6|63&l)>65535&&s<1114112&&(_=s)}null===_?(_=65533,c=1):_>65535&&(_-=65536,n.push(_>>>10&1023|55296),_=56320|1023&_),n.push(_),i+=c}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var r="",n=0;for(;n<t;)r+=String.fromCharCode.apply(String,e.slice(n,n+=4096));return r}(n)}t.Buffer=s,t.SlowBuffer=function(e){+e!=e&&(e=0);return s.alloc(+e)},t.INSPECT_MAX_BYTES=50,s.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),t.kMaxLength=o(),s.poolSize=8192,s._augment=function(e){return e.__proto__=s.prototype,e},s.from=function(e,t,r){return u(null,e,t,r)},s.TYPED_ARRAY_SUPPORT&&(s.prototype.__proto__=Uint8Array.prototype,s.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&s[Symbol.species]===s&&Object.defineProperty(s,Symbol.species,{value:null,configurable:!0})),s.alloc=function(e,t,r){return function(e,t,r,n){return _(t),t<=0?l(e,t):void 0!==r?"string"==typeof n?l(e,t).fill(r,n):l(e,t).fill(r):l(e,t)}(null,e,t,r)},s.allocUnsafe=function(e){return c(null,e)},s.allocUnsafeSlow=function(e){return c(null,e)},s.isBuffer=function(e){return!(null==e||!e._isBuffer)},s.compare=function(e,t){if(!s.isBuffer(e)||!s.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var r=e.length,n=t.length,i=0,a=Math.min(r,n);i<a;++i)if(e[i]!==t[i]){r=e[i],n=t[i];break}return r<n?-1:n<r?1:0},s.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},s.concat=function(e,t){if(!a(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return s.alloc(0);var r;if(void 0===t)for(t=0,r=0;r<e.length;++r)t+=e[r].length;var n=s.allocUnsafe(t),i=0;for(r=0;r<e.length;++r){var o=e[r];if(!s.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(n,i),i+=o.length}return n},s.byteLength=E,s.prototype._isBuffer=!0,s.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)p(this,t,t+1);return this},s.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)p(this,t,t+3),p(this,t+1,t+2);return this},s.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)p(this,t,t+7),p(this,t+1,t+6),p(this,t+2,t+5),p(this,t+3,t+4);return this},s.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?N(this,0,e):O.apply(this,arguments)},s.prototype.equals=function(e){if(!s.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===s.compare(this,e)},s.prototype.inspect=function(){var e="",r=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(e+=" ... ")),"<Buffer "+e+">"},s.prototype.compare=function(e,t,r,n,i){if(!s.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(this===e)return 0;for(var a=(i>>>=0)-(n>>>=0),o=(r>>>=0)-(t>>>=0),l=Math.min(a,o),u=this.slice(n,i),_=e.slice(t,r),c=0;c<l;++c)if(u[c]!==_[c]){a=u[c],o=_[c];break}return a<o?-1:o<a?1:0},s.prototype.includes=function(e,t,r){return-1!==this.indexOf(e,t,r)},s.prototype.indexOf=function(e,t,r){return R(this,e,t,r,!0)},s.prototype.lastIndexOf=function(e,t,r){return R(this,e,t,r,!1)},s.prototype.write=function(e,t,r,n){if(void 0===t)n="utf8",r=this.length,t=0;else if(void 0===r&&"string"==typeof t)n=t,r=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(r)?(r|=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var i=this.length-t;if((void 0===r||r>i)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var a=!1;;)switch(n){case"hex":return m(this,e,t,r);case"utf8":case"utf-8":return y(this,e,t,r);case"ascii":return I(this,e,t,r);case"latin1":case"binary":return h(this,e,t,r);case"base64":return A(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return b(this,e,t,r);default:if(a)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),a=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function C(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;i<r;++i)n+=String.fromCharCode(127&e[i]);return n}function g(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;i<r;++i)n+=String.fromCharCode(e[i]);return n}function P(e,t,r){var n=e.length;(!t||t<0)&&(t=0),(!r||r<0||r>n)&&(r=n);for(var i="",a=t;a<r;++a)i+=j(e[a]);return i}function M(e,t,r){for(var n=e.slice(t,r),i="",a=0;a<n.length;a+=2)i+=String.fromCharCode(n[a]+256*n[a+1]);return i}function S(e,t,r){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>r)throw new RangeError("Trying to access beyond buffer length")}function U(e,t,r,n,i,a){if(!s.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<a)throw new RangeError('"value" argument is out of bounds');if(r+n>e.length)throw new RangeError("Index out of range")}function D(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,a=Math.min(e.length-r,2);i<a;++i)e[r+i]=(t&255<<8*(n?i:1-i))>>>8*(n?i:1-i)}function w(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,a=Math.min(e.length-r,4);i<a;++i)e[r+i]=t>>>8*(n?i:3-i)&255}function v(e,t,r,n,i,a){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function F(e,t,r,n,a){return a||v(e,0,r,4),i.write(e,t,r,n,23,4),r+4}function Y(e,t,r,n,a){return a||v(e,0,r,8),i.write(e,t,r,n,52,8),r+8}s.prototype.slice=function(e,t){var r,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t<e&&(t=e),s.TYPED_ARRAY_SUPPORT)(r=this.subarray(e,t)).__proto__=s.prototype;else{var i=t-e;r=new s(i,void 0);for(var a=0;a<i;++a)r[a]=this[a+e]}return r},s.prototype.readUIntLE=function(e,t,r){e|=0,t|=0,r||S(e,t,this.length);for(var n=this[e],i=1,a=0;++a<t&&(i*=256);)n+=this[e+a]*i;return n},s.prototype.readUIntBE=function(e,t,r){e|=0,t|=0,r||S(e,t,this.length);for(var n=this[e+--t],i=1;t>0&&(i*=256);)n+=this[e+--t]*i;return n},s.prototype.readUInt8=function(e,t){return t||S(e,1,this.length),this[e]},s.prototype.readUInt16LE=function(e,t){return t||S(e,2,this.length),this[e]|this[e+1]<<8},s.prototype.readUInt16BE=function(e,t){return t||S(e,2,this.length),this[e]<<8|this[e+1]},s.prototype.readUInt32LE=function(e,t){return t||S(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},s.prototype.readUInt32BE=function(e,t){return t||S(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},s.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||S(e,t,this.length);for(var n=this[e],i=1,a=0;++a<t&&(i*=256);)n+=this[e+a]*i;return n>=(i*=128)&&(n-=Math.pow(2,8*t)),n},s.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||S(e,t,this.length);for(var n=t,i=1,a=this[e+--n];n>0&&(i*=256);)a+=this[e+--n]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*t)),a},s.prototype.readInt8=function(e,t){return t||S(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},s.prototype.readInt16LE=function(e,t){t||S(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt16BE=function(e,t){t||S(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt32LE=function(e,t){return t||S(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},s.prototype.readInt32BE=function(e,t){return t||S(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},s.prototype.readFloatLE=function(e,t){return t||S(e,4,this.length),i.read(this,e,!0,23,4)},s.prototype.readFloatBE=function(e,t){return t||S(e,4,this.length),i.read(this,e,!1,23,4)},s.prototype.readDoubleLE=function(e,t){return t||S(e,8,this.length),i.read(this,e,!0,52,8)},s.prototype.readDoubleBE=function(e,t){return t||S(e,8,this.length),i.read(this,e,!1,52,8)},s.prototype.writeUIntLE=function(e,t,r,n){(e=+e,t|=0,r|=0,n)||U(this,e,t,r,Math.pow(2,8*r)-1,0);var i=1,a=0;for(this[t]=255&e;++a<r&&(i*=256);)this[t+a]=e/i&255;return t+r},s.prototype.writeUIntBE=function(e,t,r,n){(e=+e,t|=0,r|=0,n)||U(this,e,t,r,Math.pow(2,8*r)-1,0);var i=r-1,a=1;for(this[t+i]=255&e;--i>=0&&(a*=256);)this[t+i]=e/a&255;return t+r},s.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,1,255,0),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},s.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},s.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):D(this,e,t,!1),t+2},s.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):w(this,e,t,!0),t+4},s.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):w(this,e,t,!1),t+4},s.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);U(this,e,t,r,i-1,-i)}var a=0,o=1,l=0;for(this[t]=255&e;++a<r&&(o*=256);)e<0&&0===l&&0!==this[t+a-1]&&(l=1),this[t+a]=(e/o>>0)-l&255;return t+r},s.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);U(this,e,t,r,i-1,-i)}var a=r-1,o=1,l=0;for(this[t+a]=255&e;--a>=0&&(o*=256);)e<0&&0===l&&0!==this[t+a+1]&&(l=1),this[t+a]=(e/o>>0)-l&255;return t+r},s.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,1,127,-128),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},s.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},s.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):D(this,e,t,!1),t+2},s.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,4,2147483647,-2147483648),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):w(this,e,t,!0),t+4},s.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):w(this,e,t,!1),t+4},s.prototype.writeFloatLE=function(e,t,r){return F(this,e,t,!0,r)},s.prototype.writeFloatBE=function(e,t,r){return F(this,e,t,!1,r)},s.prototype.writeDoubleLE=function(e,t,r){return Y(this,e,t,!0,r)},s.prototype.writeDoubleBE=function(e,t,r){return Y(this,e,t,!1,r)},s.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n<r&&(n=r),n===r)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(r<0||r>=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t<n-r&&(n=e.length-t+r);var i,a=n-r;if(this===e&&r<t&&t<n)for(i=a-1;i>=0;--i)e[i+t]=this[i+r];else if(a<1e3||!s.TYPED_ARRAY_SUPPORT)for(i=0;i<a;++i)e[i+t]=this[i+r];else Uint8Array.prototype.set.call(e,this.subarray(r,r+a),t);return a},s.prototype.fill=function(e,t,r,n){if("string"==typeof e){if("string"==typeof t?(n=t,t=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),1===e.length){var i=e.charCodeAt(0);i<256&&(e=i)}if(void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!s.isEncoding(n))throw new TypeError("Unknown encoding: "+n)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<r)throw new RangeError("Out of range index");if(r<=t)return this;var a;if(t>>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(a=t;a<r;++a)this[a]=e;else{var o=s.isBuffer(e)?e:B(new s(e,n).toString()),l=o.length;for(a=0;a<r-t;++a)this[a+t]=o[a%l]}return this};var k=/[^+\/0-9A-Za-z-_]/g;function j(e){return e<16?"0"+e.toString(16):e.toString(16)}function B(e,t){var r;t=t||1/0;for(var n=e.length,i=null,a=[],o=0;o<n;++o){if((r=e.charCodeAt(o))>55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(o+1===n){(t-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&a.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;a.push(r)}else if(r<2048){if((t-=2)<0)break;a.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return a}function V(e){return n.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(k,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function G(e,t,r,n){for(var i=0;i<n&&!(i+r>=t.length||i>=e.length);++i)t[i+r]=e[i];return i}}).call(this,r(220))},function(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(e){"object"==typeof window&&(r=window)}e.exports=r},function(e,t,r){"use strict";t.byteLength=function(e){var t=u(e),r=t[0],n=t[1];return 3*(r+n)/4-n},t.toByteArray=function(e){var t,r,n=u(e),o=n[0],l=n[1],s=new a(function(e,t,r){return 3*(t+r)/4-r}(0,o,l)),_=0,c=l>0?o-4:o;for(r=0;r<c;r+=4)t=i[e.charCodeAt(r)]<<18|i[e.charCodeAt(r+1)]<<12|i[e.charCodeAt(r+2)]<<6|i[e.charCodeAt(r+3)],s[_++]=t>>16&255,s[_++]=t>>8&255,s[_++]=255&t;2===l&&(t=i[e.charCodeAt(r)]<<2|i[e.charCodeAt(r+1)]>>4,s[_++]=255&t);1===l&&(t=i[e.charCodeAt(r)]<<10|i[e.charCodeAt(r+1)]<<4|i[e.charCodeAt(r+2)]>>2,s[_++]=t>>8&255,s[_++]=255&t);return s},t.fromByteArray=function(e){for(var t,r=e.length,i=r%3,a=[],o=0,l=r-i;o<l;o+=16383)a.push(_(e,o,o+16383>l?l:o+16383));1===i?(t=e[r-1],a.push(n[t>>2]+n[t<<4&63]+"==")):2===i&&(t=(e[r-2]<<8)+e[r-1],a.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"="));return a.join("")};for(var n=[],i=[],a="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l=0,s=o.length;l<s;++l)n[l]=o[l],i[o.charCodeAt(l)]=l;function u(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function _(e,t,r){for(var i,a,o=[],l=t;l<r;l+=3)i=(e[l]<<16&16711680)+(e[l+1]<<8&65280)+(255&e[l+2]),o.push(n[(a=i)>>18&63]+n[a>>12&63]+n[a>>6&63]+n[63&a]);return o.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},function(e,t){
9
9
  /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
10
- t.read=function(e,t,r,n,i){var a,o,l=8*i-n-1,s=(1<<l)-1,u=s>>1,_=-7,c=r?i-1:0,d=r?-1:1,T=e[t+c];for(c+=d,a=T&(1<<-_)-1,T>>=-_,_+=l;_>0;a=256*a+e[t+c],c+=d,_-=8);for(o=a&(1<<-_)-1,a>>=-_,_+=n;_>0;o=256*o+e[t+c],c+=d,_-=8);if(0===a)a=1-u;else{if(a===s)return o?NaN:1/0*(T?-1:1);o+=Math.pow(2,n),a-=u}return(T?-1:1)*o*Math.pow(2,a-n)},t.write=function(e,t,r,n,i,a){var o,l,s,u=8*a-i-1,_=(1<<u)-1,c=_>>1,d=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,T=n?0:a-1,E=n?1:-1,O=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(l=isNaN(t)?1:0,o=_):(o=Math.floor(Math.log(t)/Math.LN2),t*(s=Math.pow(2,-o))<1&&(o--,s*=2),(t+=o+c>=1?d/s:d*Math.pow(2,1-c))*s>=2&&(o++,s/=2),o+c>=_?(l=0,o=_):o+c>=1?(l=(t*s-1)*Math.pow(2,i),o+=c):(l=t*Math.pow(2,c-1)*Math.pow(2,i),o=0));i>=8;e[r+T]=255&l,T+=E,l/=256,i-=8);for(o=o<<i|l,u+=i;u>0;e[r+T]=255&o,T+=E,o/=256,u-=8);e[r+T-E]|=128*O}},function(e,t){var r={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==r.call(e)}},function(e,t,r){var n=r(225),i=r(226);e.exports=function(e,t,r){var a=t&&r||0;"string"==typeof e&&(t="binary"===e?new Array(16):null,e=null);var o=(e=e||{}).random||(e.rng||n)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,t)for(var l=0;l<16;++l)t[a+l]=o[l];return t||i(o)}},function(e,t){var r="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(r){var n=new Uint8Array(16);e.exports=function(){return r(n),n}}else{var i=new Array(16);e.exports=function(){for(var e,t=0;t<16;t++)0==(3&t)&&(e=4294967296*Math.random()),i[t]=e>>>((3&t)<<3)&255;return i}}},function(e,t){for(var r=[],n=0;n<256;++n)r[n]=(n+256).toString(16).substr(1);e.exports=function(e,t){var n=t||0,i=r;return[i[e[n++]],i[e[n++]],i[e[n++]],i[e[n++]],"-",i[e[n++]],i[e[n++]],"-",i[e[n++]],i[e[n++]],"-",i[e[n++]],i[e[n++]],"-",i[e[n++]],i[e[n++]],i[e[n++]],i[e[n++]],i[e[n++]],i[e[n++]]].join("")}},function(e,t,r){"use strict";for(var n=[],i={},a=0;a<256;a++)n[a]=(a+256).toString(16).substr(1),i[n[a]]=a;e.exports={parse:function(e,t,r){var n=t&&r||0,a=0;for(t=t||[],e.toLowerCase().replace(/[0-9a-f]{2}/g,(function(e){a<16&&(t[n+a++]=i[e])}));a<16;)t[n+a++]=0;return t},unparse:function(e,t){var r=t||0,i=n;return i[e[r++]]+i[e[r++]]+i[e[r++]]+i[e[r++]]+"-"+i[e[r++]]+i[e[r++]]+"-"+i[e[r++]]+i[e[r++]]+"-"+i[e[r++]]+i[e[r++]]+"-"+i[e[r++]]+i[e[r++]]+i[e[r++]]+i[e[r++]]+i[e[r++]]+i[e[r++]]}}},function(e,t,r){"use strict";r.r(t);var n=r(117),i=r.n(n),a=r(131),o=r(229);class l{constructor(e){const t=i()(e),r=t.type||t.op_type,n=a.OPERATION_ATTRIBUTES[r];if(!n)throw new Error("Error initializing operation");this.op_type=r,n.forEach(e=>{this[e]=t[e]})}clone(){return new l(this)}apply(e){return Object(o.apply)(e,this)}invert(){return Object(o.invert)(this)}}t.default=l},function(e,t,r){"use strict";r.r(t);var n=r(230);r.d(t,"apply",(function(){return n.default}));var i=r(232);r.d(t,"invert",(function(){return i.default}))},function(e,t,r){"use strict";r.r(t);var n=r(117),i=r.n(n),a=r(38),o=r.n(a),l=r(121),s=r.n(l),u=r(131),_=r(146),c=r(231),d=r(210),T=r(2),E=r(201);o.a.extend(s.a),t.default=function(e,t){let{op_type:r}=t;switch(r){case u.OPERATION_TYPE.INSERT_ROW:{let{table_id:r,row_id:n,row_insert_position:i,row_data:a,links_data:l,key_auto_number_config:s}=t,{tables:u,links:c}=e,d=a._id,T=o()().utc().format(E.UTC_FORMAT_DEFAULT),O=T;a._ctime=T,a._mtime=O;let p=_.TableUtils.getTableById(u,r),{rows:R}=p;if(p.id_row_map[d])return e;if(n){let e,t=R.findIndex(e=>e._id===n);"insert_above"===i?e=t:"insert_below"===i&&(e=t+1),R.splice(e,0,a)}else R.splice(R.length,0,a);return p.id_row_map[d]=a,s&&Object.keys(s).length>0&&_.TableUtils.updateTableColumnsWithAutoNumberConfig(u,r,s),l&&c&&Object.keys(l).forEach(e=>{const{link_table_id:t,linked_table_id:r,id_linked_rows_ids:n}=l[e],i=n&&n[d];i&&_.LinksUtils.updateLinksBetween2Tables(c,e,t,r,d,i)}),e}case u.OPERATION_TYPE.INSERT_ROWS:{let{table_id:r,row_ids:n,row_datas:i,links_data:a,row_insert_position:l,key_auto_number_config:s}=t,{tables:u,links:c}=e,d=_.TableUtils.getTableById(u,r),T=d.rows;const O=o()().utc().format(E.UTC_FORMAT_DEFAULT),p=O,R=a&&c?Object.keys(a):null;for(let e=0;e<n.length;e++){let t=i[e];t._ctime||(t._ctime=O),t._mtime||(t._mtime=p);const r=t._id;let o=T.findIndex(t=>t._id===n[e]);o<0?o=T.length-1:"insert_below"===l&&o++,d.id_row_map[r]||(T.splice(o,0,t),d.id_row_map[r]=t,R&&R.forEach(e=>{const{link_table_id:t,linked_table_id:n,id_linked_rows_ids:i}=a[e],o=i&&i[r];o&&_.LinksUtils.updateLinksBetween2Tables(c,e,t,n,r,o)}))}return s&&Object.keys(s).length>0&&_.TableUtils.updateTableColumnsWithAutoNumberConfig(u,r,s),e}case u.OPERATION_TYPE.APPEND_ROWS:{const{table_id:r,row_datas:n,key_auto_number_config:i}=t,a=_.TableUtils.getTableById(e.tables,r);let{rows:o}=a;for(let e=0;e<n.length;e++)a.id_row_map[n[e]._id]||(o.push(n[e]),a.id_row_map[n[e]._id]=n[e]);return a.rows=o,i&&Object.keys(i).length>0&&_.TableUtils.updateTableColumnsWithAutoNumberConfig(e.tables,r,i),e}case u.OPERATION_TYPE.DELETE_ROW:{let{table_id:r,row_id:n}=t,i=_.TableUtils.getTableById(e.tables,r),a=i.rows.filter(e=>n!=e._id);return i.rows=a,_.LinksUtils.removeRowsLinks(e.links,i,[n]),delete i.id_row_map[n],e}case u.OPERATION_TYPE.DELETE_ROWS:{let{table_id:r,row_ids:n}=t,i=_.TableUtils.getTableById(e.tables,r),a=i.rows,o={};n.forEach(e=>{o[e]=e});let l=a.filter(e=>!o[e._id]);return i.rows=l,_.LinksUtils.removeRowsLinks(e.links,i,n),n.forEach(e=>{delete i.id_row_map[e]}),e}case u.OPERATION_TYPE.MOVE_ROWS:{let{table_id:r,target_ids:n,move_position:i,moved_rows:a}=t,o=_.TableUtils.getTableById(e.tables,r),l=o.rows,s=a.map(e=>e._id),u=l.filter(e=>-1===s.indexOf(e._id));for(let e=0;e<n.length;e++){let t=u.findIndex(t=>t._id===n[e]);"move_below"===i&&(t+=1),u.splice(t,0,a[e])}return o.rows=u,e}case u.OPERATION_TYPE.MOVE_GROUP_ROWS:{let{table_id:r,target_ids:n,move_position:i,moved_rows:a,updated:o,groupby_columns:l}=t,{tables:s,links:u}=e,c=_.TableUtils.getTableById(s,r),d=c.rows,E=[...a];E=E.map(e=>{let t=e,r=e._id;return d.findIndex(e=>e._id===r)>-1&&(t=Object.assign({},e,o[r]),c.id_row_map[r]=t),t});let O=E.map(e=>e._id),p=d.filter(e=>-1===O.indexOf(e._id));for(let e=0;e<n.length;e++){let t=p.findIndex(t=>t._id===n[e]);"move_below"===i&&(t+=1),p.splice(t,0,E[e])}c.rows=p;const R=Array.isArray(l)&&l.filter(e=>e.type===T.CellType.LINK);if(R.length>0&&u&&o){let e={};R.forEach(t=>{const{key:n,data:i={}}=t,{link_id:a,table_id:o,other_table_id:l}=i,s=_.LinksUtils.getLinkTableID(r,o,l),u=_.LinksUtils.getLinkedTableID(r,o,l);e[n]={link_id:a,link_table_id:s,linked_table_id:u}}),O.forEach(t=>{const r=o[t];r&&R.forEach(n=>{const i=n.key,{link_id:a,link_table_id:o,linked_table_id:l}=e[i]||{},s=r[i];_.LinksUtils.updateLinksBetween2Tables(u,a,o,l,t,s)})})}return e}case u.OPERATION_TYPE.INSERT_COLUMN:{let{table_id:r,column_key:n,column_data:a,linked_column_info:o,view_id:l,rows_datas:s}=t,u=_.TableUtils.getTableById(e.tables,r),c=i()(u.columns),T=c.findIndex(e=>e.key===n);if(c.splice(T+1,0,a),u.columns=c,Array.isArray(s)&&s.length>0&&_.RowUtils.updateTableRowsWithRowsDatas(e.tables,r,s),d.default.hideInsertedColumns(u.views,[a.key],l),o){const{table_id:t,column_key:r,column_data:n}=o,a=_.TableUtils.getTableById(e.tables,t);if(a){const e=i()(a.columns),t=e.findIndex(e=>e.key===r),o=t>-1?t+1:e.length;e.splice(o,0,n),a.columns=e,d.default.hideInsertedColumns(a.views,[n.key],null)}}return e}case u.OPERATION_TYPE.INSERT_COLUMNS:{let{table_id:r,insert_columns:n,view_id:a,rows_datas:o}=t,l=_.TableUtils.getTableById(e.tables,r),s=i()(l.columns);s.push(...n),l.columns=s,Array.isArray(o)&&o.length>0&&_.RowUtils.updateTableRowsWithRowsDatas(e.tables,r,o);const u=n.map(e=>e.key);return d.default.hideInsertedColumns(l.views,u,a),e}case u.OPERATION_TYPE.MODIFY_COLUMNS:{let{table_id:r,new_columns:n}=t,a=_.TableUtils.getTableById(e.tables,r),o=i()(a.columns);for(let e=0;e<n.length;e++){let t=o.findIndex(t=>t.key===n[e].key);-1!==t&&(o[t]=n[e])}return a.columns=o,e}case u.OPERATION_TYPE.RESTORE_COLUMN:{const{table_id:r,column_key:n,new_column:a,linked_column_info:o}=t;let l=i()(a),s=_.TableUtils.getTableById(e.tables,r),u=i()(s.columns),c=u.findIndex(e=>e.key===n);if(u.splice(c+1,0,l),s.columns=u,o){const{table_id:t,column_key:r,new_column:n}=o,a=i()(n),l=_.TableUtils.getTableById(e.tables,t);if(l){const e=i()(l.columns),t=e.findIndex(e=>e.key===r),n=t>-1?t+1:e.length;e.splice(n,0,a),l.columns=e}}return e}case u.OPERATION_TYPE.DELETE_COLUMN:{let{table_id:r,column_key:n,linked_column_info:a}=t,o=_.TableUtils.getTableById(e.tables,r),l=i()(o.columns),s=l.findIndex(e=>e.key===n);if(s>-1&&(l.splice(s,1),o.columns=l),a){const{table_id:t,column_key:r}=a,n=_.TableUtils.getTableById(e.tables,t);if(n){const e=i()(n.columns),t=e.findIndex(e=>e.key===r);t>-1&&(e.splice(t,1),n.columns=e)}}return e}case u.OPERATION_TYPE.RENAME_COLUMN:{let{table_id:r,column_key:n,new_column_name:a}=t,o=_.TableUtils.getTableById(e.tables,r),l=i()(o.columns),s=l.findIndex(e=>e.key===n),u=l[s];if(u){const t=u.name;u.name=a,o.columns=l,Object(_.updateTablesColumnName)(e.tables,r,t,a)}return e}case u.OPERATION_TYPE.RESIZE_COLUMN:{let{table_id:r,column_key:n,new_column_width:a}=t,o=_.TableUtils.getTableById(e.tables,r),l=i()(o.columns),s=l.findIndex(e=>e.key===n),u=l[s];return u&&(u.width=a),o.columns=l,e}case u.OPERATION_TYPE.FREEZE_COLUMN:{let{table_id:r,column_key:n,frozen:a}=t,o=_.TableUtils.getTableById(e.tables,r),l=i()(o.columns),s=l.findIndex(e=>e.key===n),u=l[s];return u&&(u.frozen=a),o.columns=l,e}case u.OPERATION_TYPE.FREEZE_MOBILE_COLUMN:{let{table_id:r,column_key:n,mobile_frozen:a}=t,o=_.TableUtils.getTableById(e.tables,r),l=i()(o.columns),s=l.findIndex(e=>e.key===n),u=l[s];return u&&(u.mobile_frozen=a),o.columns=l,e}case u.OPERATION_TYPE.FREEZE_COLUMNS:{let{table_id:r,freeze_column_keys:n}=t,a=_.TableUtils.getTableById(e.tables,r),o=i()(a.columns),l={};return Array.isArray(n)&&n.forEach(e=>{l[e]=!0}),o.forEach((e,t)=>{e.frozen&&(o[t].frozen=!1),l[e.key]&&(o[t].frozen=!0)}),a.columns=o,e}case u.OPERATION_TYPE.MODIFY_COLUMN_DATA:{let{table_id:r,column_key:n,column_data:a}=t,o=_.TableUtils.getTableById(e.tables,r),l=i()(o.columns),s=l.findIndex(e=>e.key===n),u=l[s];return u&&(u.data=a),o.columns=l,e}case u.OPERATION_TYPE.MOVE_COLUMN:{let{table_id:r,move_position:n,moved_column_key:a,target_column_key:o}=t,l=_.TableUtils.getTableById(e.tables,r),s=i()(l.columns),u=s.find(e=>a===e.key),c=s.filter(e=>a!==e.key),d=c.findIndex(e=>o===e.key);return"move_right"===n&&(d+=1),c.splice(d,0,u),l.columns=c,e}case u.OPERATION_TYPE.UPDATE_COLUMN_COLORBYS:{const{table_id:r,column_key:n,colorbys:a}=t;let o=_.TableUtils.getTableById(e.tables,r),l=i()(o.columns),s=l.findIndex(e=>e.key===n),u=l[s];return u&&(u.colorbys=a),o.columns=l,e}case u.OPERATION_TYPE.MODIFY_ROW:{let{table_id:r,row_id:n,updated:i}=t,a=o()().utc().format(E.UTC_FORMAT_DEFAULT);i=Object.assign({},i,{_mtime:a});let l=_.TableUtils.getTableById(e.tables,r),s=l.rows,u=s.findIndex(e=>e._id===n),c=s[u];return c=Object.assign({},c,i),s[u]=c,l.id_row_map[n]=c,e}case u.OPERATION_TYPE.MODIFY_ROWS:{let{table_id:r,row_ids:n,updated:i}=t,a=_.TableUtils.getTableById(e.tables,r),l={};n.forEach(e=>{l[e]=e});let s=a.rows;const u=o()().utc().format(E.UTC_FORMAT_DEFAULT);return s.forEach((e,t)=>{if(l[e._id]){const r=Object.assign({},e,i[e._id],{_mtime:u});s[t]=r,a.id_row_map[e._id]=r}}),e}case u.OPERATION_TYPE.MODIFY_ROW_LOCK:{let{table_id:r,row_id:n,is_locked:i,locked_by:a}=t,o=_.TableUtils.getTableById(e.tables,r),l=o.rows,s=l.findIndex(e=>e._id===n),u={...l[s]};return i?(u._locked=i,u._locked_by=a):(delete u._locked,delete u._locked_by),l[s]=u,o.id_row_map[n]=u,e}case u.OPERATION_TYPE.LOCK_ROWS:{let{table_id:r,row_ids:n,locked_by:i}=t,a=_.TableUtils.getTableById(e.tables,r),o=a.rows,l={};return n.forEach(e=>{l[e]=e}),o.forEach((e,t)=>{const r=e._id;if(l[r]&&!e._locked){let n={...e};n._locked=!0,n._locked_by=i,o[t]=n,a.id_row_map[r]=n}}),e}case u.OPERATION_TYPE.UNLOCK_ROWS:{let{table_id:r,row_ids:n}=t,i=_.TableUtils.getTableById(e.tables,r),a=i.rows,o={};return n.forEach(e=>{o[e]=e}),a.forEach((e,t)=>{const r=e._id;if(o[r]&&e._locked){let n={...e};delete n._locked,delete n._locked_by,a[t]=n,i.id_row_map[r]=n}}),e}case u.OPERATION_TYPE.INSERT_TABLE:{let{table_data:r}=t;return r.columns=r.columns.filter(e=>e.name&&e.key),r.id_row_map={},r.rows=r.rows.map(e=>(Object.keys(e).forEach(t=>{e[t]||0===e[t]||delete e[t]}),r.id_row_map[e._id]=e,e)),e.tables.push(r),e}case u.OPERATION_TYPE.UPDATE_TABLE:{const{table_id:r,table_data:n}=t;_.TableUtils.updateTable(e.tables,r,n);let i=_.TableUtils.getTableById(e.tables,r);return i.id_row_map={},Array.isArray(i.rows)&&i.rows.forEach(e=>{i.id_row_map[e._id]=e}),e}case u.OPERATION_TYPE.RENAME_TABLE:{let{table_id:r,table_name:n}=t;if(_.TableUtils.renameTable(e.tables,r,n))return e;throw new Error("Rename table failed.")}case u.OPERATION_TYPE.DELETE_TABLE:{let{table_id:r}=t;if(_.TableUtils.deleteTable(e.tables,r))return e;throw new Error("Delete table failed.")}case u.OPERATION_TYPE.MOVE_TABLE:{let{target_table_id:r,move_position:n,moved_table_id:i}=t,a=_.TableUtils.getTableById(e.tables,i),o=e.tables.filter(e=>e._id!==i),l=o.findIndex(e=>e._id===r);return"move_below"===n&&(l+=1),o.splice(l,0,a),e.tables=o,e}case u.OPERATION_TYPE.MODIFY_TABLE_DESCRIPTION:{let{table_id:r,table_description:n}=t;if(_.TableUtils.modifyTableDescription(e.tables,r,n))return e;throw new Error("Modify table description failed.")}case u.OPERATION_TYPE.DUPLICATE_TABLE:{const{source_table_id:r,table_data:n,is_duplicate_records:a,new_linked_table_columns:o}=t;let l=_.TableUtils.getTableById(e.tables,r),s={...i()(n),is_header_locked:l.is_header_locked,header_settings:l.header_settings||{},view_structure:i()(l.view_structure),views:_.TableUtils.getOptimizedViews(l),rows:[],id_row_map:{}},u={};if(s.columns=s.columns.map(e=>{if(e.type!==T.CellType.LINK)return e;const{source_link_id:t,link_id:r}=e.data;u[t]=r;const n={...e.data};return delete n.source_link_id,e.data=n,e}),a&&(s.rows=l.rows.map(e=>{const t={...e};return s.id_row_map[e._id]=t,t})),e.tables.push(s),o.length>0&&(e.tables=e.tables||[],o.forEach(t=>{let{table_id:r,column:n}=t;e.tables=e.tables.map(e=>{if(e._id===r){let t=i()(e.columns);return t.push(n),e.columns=t,e}return e})})),a&&Object.keys(u).length>0){let t=[];const{_id:n}=s;Object.keys(u).forEach(i=>{let a=_.LinksUtils.getLinkById(e.links,i);if(a){let e={...a};const{table1_id:o,table2_id:l}=_.LinksUtils.transLinkOptions(e.table1_id,e.table2_id);if(o!==e.table1_id){e.table1_id=o,e.table2_id=l;const t=e.table2_table1_map&&{...e.table2_table1_map},r=e.table1_table2_map&&{...e.table1_table2_map};e.table1_table2_map=t,e.table2_table1_map=r}const s=o===r?n:o,c=l===r?n:l,{table1_id:d,table2_id:T}=_.LinksUtils.transLinkOptions(s,c);let E={_id:u[i],table1_id:s,table2_id:c};s!==d&&(E.table1_id=d,E.table2_id=T,E.table1_table2_map=e.table2_table1_map,E.table2_table1_map=e.table1_table2_map);let O=Object.assign({},e,E);t.push(JSON.stringify(O))}}),e.links=e.links||[],t.forEach(t=>{e.links.push(JSON.parse(t))})}return e}case u.OPERATION_TYPE.ADD_VIEW_FOLDER:{let{table_id:r,view_folder_data:n}=t;return _.TableUtils.getTableById(e.tables,r).view_structure.folders.push(n),e}case u.OPERATION_TYPE.MODIFY_VIEW_FOLDER:{let{table_id:r,view_folder_id:n,view_folder_data:i}=t,a=_.TableUtils.getTableById(e.tables,r);if(c.default.modifyFolder(a.view_structure,n,i))return e;throw new Error("Modify view folder failed.")}case u.OPERATION_TYPE.DELETE_VIEW_FOLDER:{let{table_id:r,view_folder_id:n}=t,i=_.TableUtils.getTableById(e.tables,r);if(c.default.deleteFolder(i.view_structure,n))return e;throw new Error("Delete view folder failed.")}case u.OPERATION_TYPE.MOVE_VIEW_FOLDER:{let{table_id:r,moved_view_folder_id:n,target_view_folder_id:i,move_position:a}=t,o=_.TableUtils.getTableById(e.tables,r),l=o.view_structure,s=c.default.getFolderById(l,n),u=l.folders.filter(e=>e._id!==n),d=u.findIndex(e=>e._id===i);return d<0||("move_below"===a&&d++,u.splice(d,0,s),l.folders=u,o.view_structure=l),e}case u.OPERATION_TYPE.INSERT_VIEW:{let{table_id:r,view_data:n,view_folder_id:i}=t,a=_.TableUtils.getTableById(e.tables,r),o=n._id;return a.views.push(n),c.default.addView(a.view_structure,o,i),e}case u.OPERATION_TYPE.MOVE_VIEW:{let{table_id:r,moved_view_id:n,target_view_id:i,source_view_folder_id:a,target_view_folder_id:o,move_position:l}=t,s=_.TableUtils.getTableById(e.tables,r),u=d.default.getViewById(s.views,n),T=s.views.filter(e=>n!==e._id),E=T.findIndex(e=>e._id===i);return"move_below"===l&&(E+=1),T.splice(E,0,u),s.views=T,c.default.moveView(s.view_structure,n,i,a,o,l),e}case u.OPERATION_TYPE.RENAME_VIEW:{let{table_id:r,view_id:n,view_name:i}=t,a=_.TableUtils.getTableById(e.tables,r);if(d.default.renameView(a.views,n,i))return e;throw new Error("Rename view failed.")}case u.OPERATION_TYPE.DELETE_VIEW:{let{table_id:r,view_id:n,view_folder_id:i}=t,a=_.TableUtils.getTableById(e.tables,r);if(!d.default.deleteView(a.views,n))throw new Error("Delete view failed.");return c.default.deleteView(a.view_structure,n,i),e}case u.OPERATION_TYPE.MODIFY_FILTERS:{let{table_id:r,view_id:n,filter_conjunction:i,filters:a}=t,o=_.TableUtils.getTableById(e.tables,r),l=d.default.getViewById(o.views,n);return l.filter_conjunction=i,l.filters=a,e}case u.OPERATION_TYPE.MODIFY_HIDDEN_COLUMNS:{let{table_id:r,view_id:n,hidden_columns:i}=t,a=_.TableUtils.getTableById(e.tables,r);if(!d.default.hideColumns(a.views,n,i))throw new Error("Hide columns failed.");return e}case u.OPERATION_TYPE.MODIFY_SORTS:{let{table_id:r,view_id:n,sorts:i}=t,a=_.TableUtils.getTableById(e.tables,r);return d.default.getViewById(a.views,n).sorts=i,e}case u.OPERATION_TYPE.ADD_STATISTICS:{let{stat_item:r}=t,{statistics:n}=e;return n.push(r),e}case u.OPERATION_TYPE.DELETE_STATISTICS:{let{stat_id:r}=t,{statistics:n}=e,i=n.findIndex(e=>(e._id?e._id:e._Sid)===r);return n.splice(i,1),e}case u.OPERATION_TYPE.EDIT_STATISTICS:{let{stat_id:r,stat_item:n}=t,{statistics:i}=e,a=i.findIndex(e=>e._id===r);return i[a]=n,e}case u.OPERATION_TYPE.UPDATE_STATISTICS_LIST:{let{statistics:r}=t;return e.statistics=r,e}case u.OPERATION_TYPE.ADD_LINK:{e.links||(e.links=[]);const{link_id:r,table1_id:n,table2_id:i,table1_row_id:a,table2_row_id:o}=t;return _.LinksUtils.addLinkBetween2Tables(e.links,r,n,i,a,o),e}case u.OPERATION_TYPE.REMOVE_LINK:{const r=e.links;if(!r)return e;const{link_id:n,table1_id:i,table2_id:a,table1_row_id:o,table2_row_id:l}=t;return _.LinksUtils.removeLinkBetween2Tables(r,n,i,a,o,l),e}case u.OPERATION_TYPE.UPDATE_LINKS:{const r=e.links;if(!r)return e;const{link_id:n,table_id:i,other_table_id:a,row_id:o,other_rows_ids:l}=t;return _.LinksUtils.updateLinksBetween2Tables(r,n,i,a,o,l),e}case u.OPERATION_TYPE.UPDATE_ROWS_LINKS:{const r=e.links,{link_id:n,table_id:i,other_table_id:a,row_id_list:o,other_rows_ids_map:l}=t;return r&&l?(o.forEach(e=>{const t=l[e];_.LinksUtils.updateLinksBetween2Tables(r,n,i,a,e,t)}),e):e}case u.OPERATION_TYPE.MODIFY_GROUPBYS:{let{table_id:r,view_id:n,groupbys:i}=t,a=_.TableUtils.getTableById(e.tables,r);return d.default.getViewById(a.views,n).groupbys=i,e}case u.OPERATION_TYPE.MODIFY_VIEW_LOCK:{let{table_id:r,view_id:n,is_locked:i}=t,a=_.TableUtils.getTableById(e.tables,r);if(d.default.modifyViewLock(a.views,n,i))return e;throw i?new Error("Lock view failed."):new Error("Unlock view failed.")}case u.OPERATION_TYPE.MODIFY_VIEW_TYPE:{const{table_id:r,view_id:n,view_type:i}=t,a=_.TableUtils.getTableById(e.tables,r);return d.default.modifyViewType(a.views,n,i),e}case u.OPERATION_TYPE.CHANGE_TO_NON_PRIVATE_VIEW:{const{table_id:r,view_id:n,private_for:i}=t,a=_.TableUtils.getTableById(e.tables,r);return d.default.changeToNonPrivateView(a.views,n,i),e}case u.OPERATION_TYPE.MODIFY_HEADER_LOCK:{let{table_id:r,is_header_locked:n}=t;if(_.TableUtils.modifyHeaderLock(e.tables,r,n))return e;throw n?new Error("Lock table header failed."):new Error("Unlock table header failed.")}case u.OPERATION_TYPE.UPDATE_SUMMARY_CONFIG:{let{table_id:r,column_key:n,summary_method:i}=t,a=_.TableUtils.getTableById(e.tables,r),o=a.summary_configs||{};return o=Object.assign({},o,{[n]:i}),a.summary_configs=o,e}case u.OPERATION_TYPE.MODIFY_COLUMN_TYPE:case u.OPERATION_TYPE.RESTORE_COLUMN_TYPE:{let{table_id:r,column_key:n,new_column:i,new_rows_data:a}=t,o=_.TableUtils.getTableById(e.tables,r),l=!1,s="";return o.columns=o.columns.map(e=>e.key===n?(l=i.name!==e.name,l&&(s=e.name),i):e),o.rows=o.rows.map((e,t)=>{const r=Object.assign({},e,{...a[t]});return o.id_row_map[e._id]=r,r}),l&&Object(_.updateTablesColumnName)(e.tables,r,s,i.name),e}case u.OPERATION_TYPE.UPDATE_TABLE_SETTING:{let{table_id:r,setting_key:n,setting_value:i}=t,a=_.TableUtils.getTableById(e.tables,r),o=a.settings||{};return o[n]=i,a.settings=o,e}case u.OPERATION_TYPE.DELETE_TABLE_SETTING:{let{table_id:r,setting_key:n}=t,i=_.TableUtils.getTableById(e.tables,r),a=i.settings||{};return delete a[n],i.settings=a,e}case u.OPERATION_TYPE.MODIFY_DTABLE_DESCRIPTION:{let{description:r}=t;return e.description=r,e}case u.OPERATION_TYPE.UPDATE_DEFAULT_DATA:{let{table_id:r,view_id:n,column_key:i,lang:a}=t,o=_.TableUtils.getTableById(e.tables,r),l=d.default.getViewById(o.views,n),s=_.TableUtils.getTableColumnByKey(o,i);return l.name=Object(_.getViewDefaultName)(a),s.name=Object(_.getColumnDefaultName)(a),e}case u.OPERATION_TYPE.ADD_DATA_PROCESS:{let{options:r}=t,n=e.data_process||[];return n.push(r),e.data_process=n,e}case u.OPERATION_TYPE.DELETE_DATA_PROCESS:{let{data_process_id:r}=t,n=(e.data_process||[]).filter(e=>e.id!==r);return e.data_process=n,e}case u.OPERATION_TYPE.MODIFY_DATA_PROCESS:{let{options:r,data_process_id:n}=t,i=(e.data_process||[]).map(e=>e.id===n?r:e);return e.data_process=i,e}case u.OPERATION_TYPE.ADD_PLUGIN:{let{plugin_name:r}=t,n=e.plugins||[];return n.push(r),e.plugins=n,e}case u.OPERATION_TYPE.DELETE_PLUGIN:{let{plugin_name:r}=t,n=(e.plugins||[]).filter(e=>e!==r);return e.plugins=n,e}case u.OPERATION_TYPE.UPDATE_PLUGIN_SETTINGS:{let{plugin_name:r,plugin_settings:n}=t,i=e.plugin_settings||{};return i[r]=n,e.plugin_settings=i,e}case u.OPERATION_TYPE.DELETE_PLUGIN_SETTINGS:{let{plugin_name:r}=t,n=e.plugin_settings||{};return delete n[r],e.plugin_settings=n,e}case u.OPERATION_TYPE.UPDATE_SETTING:{e.settings||(e.settings={});let{setting_key:r,setting_value:n}=t;return e.settings[r]=n,e}case u.OPERATION_TYPE.DELETE_SETTING:{let{setting_key:r}=t,n=e.settings||{};return delete n[r],e.settings=n,e}case u.OPERATION_TYPE.MODIFY_COLUMN_PERMISSION:{let{table_id:r,column_key:n,new_column_permission:a}=t,o=_.TableUtils.getTableById(e.tables,r),l=i()(o.columns),s=l.findIndex(e=>e.key===n),u=l[s],{permission_type:c,permitted_users:d,permitted_group:T}=a;return l[s]=Object.assign({},u,{permission_type:c,permitted_users:d||[],permitted_group:T||""}),o.columns=l,e}case u.OPERATION_TYPE.MODIFY_COLUMN_METADATA_PERMISSION:{let{table_id:r,column_key:n,new_column_permission:a}=t,o=_.TableUtils.getTableById(e.tables,r),l=i()(o.columns),s=l.findIndex(e=>e.key===n),u=l[s],{edit_metadata_permission_type:c,edit_metadata_permitted_users:d,edit_metadata_permitted_group:T}=a;return l[s]=Object.assign({},u,{edit_metadata_permission_type:c,edit_metadata_permitted_users:d||[],edit_metadata_permitted_group:T||""}),o.columns=l,e}case u.OPERATION_TYPE.ADD_SCRIPT:{let{script_name:r,url:n,script_id:i,script_type:a}=t,o=e.scripts||[];return o.push({name:r,url:n,_id:i,type:a}),e.scripts=o,e}case u.OPERATION_TYPE.DELETE_SCRIPT:{let{script_id:r}=t,n=(e.scripts||[]).filter(e=>e._id!==r);return e.scripts=n,e}case u.OPERATION_TYPE.RENAME_SCRIPT:{let{script_id:r,new_script_name:n}=t,i=e.scripts||[],a=i.find(e=>e._id===r);return a?(a.name=n,e.scripts=i,e):e}case u.OPERATION_TYPE.MODIFY_ROW_COLOR:{let{table_id:r,view_id:n,colorbys:i}=t,a=_.TableUtils.getTableById(e.tables,r);return d.default.getViewById(a.views,n).colorbys=i,e}case u.OPERATION_TYPE.MODIFY_ROW_HEIGHT:{let{table_id:r,view_id:n,row_height:i}=t,a=_.TableUtils.getTableById(e.tables,r);return d.default.getViewById(a.views,n).row_height=i,e}case u.OPERATION_TYPE.MODIFY_HEADER_SETTINGS:{let{table_id:r,header_settings:n}=t,i=_.TableUtils.getTableById(e.tables,r);return i.header_settings=Object.assign({},i.header_settings,n),e}case u.OPERATION_TYPE.UPDATE_TABLE_PERMISSIONS:{let{table_id:r,permissions:n}=t,i=_.TableUtils.getTableById(e.tables,r);return i.table_permissions||(i.table_permissions={}),i.table_permissions=n,e}case u.OPERATION_TYPE.ARCHIVE_ROWS:{let{table_id:r,row_ids:n}=t,i=_.TableUtils.getTableById(e.tables,r),a={};n.forEach(e=>{a[e]=e});let o=i.rows.filter(e=>!a[e._id]);i.has_archived=!0,i.rows=o,n.forEach(e=>{delete i.id_row_map[e]});const l=e.links;return l?(_.LinksUtils.removeRowsLinks(l,i,n),e):e}case u.OPERATION_TYPE.UNARCHIVE_ROWS:{let{table_id:r,rows:n,links:i}=t;const a=_.TableUtils.getTableById(e.tables,r);let{rows:o,id_row_map:l}=a;const s=n.filter(e=>!l[e._id]);for(let e=0;e<s.length;e++)o.push(s[e]),a.id_row_map[s[e]._id]=s[e];return a.rows=o,i&&"[object Object]"===Object.prototype.toString.call(i)&&Object.keys(i).length>0&&_.LinksUtils.unarchiveRowsLinks(e,a,i),e}case u.OPERATION_TYPE.UPDATE_COLUMN_DESCRIPTION:{const{table_id:r,column_key:n,column_description:a}=t,o=_.TableUtils.getTableById(e.tables,r);let l=i()(o.columns),s=l.findIndex(e=>e.key===n),u=l[s];return u&&(u.description=a,o.columns=l),e}default:return e}}},function(e,t,r){"use strict";r.r(t);t.default=class{static getFolderById(e,t){const r=e.folders;return t&&r.find(e=>e._id===t)}static getFolderIndexById(e,t){return t?e.folders.findIndex(e=>e._id===t):-1}static getCurrentUserFolderViews(e,t,r,n){const i=this.getFolderById(e,r);let a=i?i.view_ids:e.view_ids;const o={};return t.forEach(e=>o[e._id]=e),a.filter(e=>{const t=o[e];return t&&(!t.private_for||t.private_for===n)}).map(e=>o[e])}static modifyFolder(e,t,r){const n=this.getFolderIndexById(e,t);if(n<0)return!1;let i=e.folders[n];return e.folders[n]={...i,...r},!0}static deleteFolder(e,t){const r=e.folders,n=this.getFolderIndexById(e,t);if(n<0)return!1;const i=r.splice(n,1)[0].view_ids;return i&&i.length&&e.view_ids.push(...i),!0}static addView(e,t,r){let n,i=this.getFolderIndexById(e,r);n=i>-1?e.folders[i].view_ids:e.view_ids,n.push(t)}static insertView(e,t,r,n,i){const a=this.getFolderIndexById(e,n),o=a>-1?e.folders[a].view_ids:e.view_ids;if(o.includes(t))return!1;let l=r?o.indexOf(r):-1;return l<0?(this.addView(e,t,n),!0):("move_below"===i&&l++,o.splice(l,0,t),!0)}static deleteView(e,t,r){let n=-1;n=r?this.getFolderIndexById(e,r):e.folders.findIndex(e=>e.view_ids.includes(t));const i=n>-1?e.folders[n].view_ids:e.view_ids,a=i.findIndex(e=>e===t);return!(a<0)&&(i.splice(a,1),!0)}static moveView(e,t,r,n,i,a){this.deleteView(e,t,n),this.insertView(e,t,r,i,a)}}},function(e,t,r){"use strict";r.r(t);var n=r(117),i=r.n(n),a=r(131),o=r(228);function l(e){return new o.default(e)}t.default=function(e){let t,{op_type:r}=e.clone();switch(r){case a.OPERATION_TYPE.INSERT_ROW:return t=l({type:a.OPERATION_TYPE.DELETE_ROW,table_id:e.table_id,row_id:e.row_data._id,deleted_row:i()(e.row_data),deleted_links_data:e.links_data}),t;case a.OPERATION_TYPE.INSERT_ROWS:return t=l({type:a.OPERATION_TYPE.DELETE_ROWS,table_id:e.table_id,row_ids:e.row_datas.map(e=>e._id),upper_row_ids:i()(e.row_ids),deleted_rows:i()(e.row_datas),deleted_links_data:e.links_data}),t;case a.OPERATION_TYPE.APPEND_ROWS:{const r=e.row_datas.map(e=>e._id);return t=l({type:a.OPERATION_TYPE.DELETE_ROWS,table_id:e.table_id,row_ids:r,upper_row_ids:i()(r),deleted_rows:i()(e.row_datas)}),t}case a.OPERATION_TYPE.DELETE_ROW:return t=l({type:a.OPERATION_TYPE.INSERT_ROW,table_id:e.table_id,row_id:e.upper_row_id,row_insert_position:"insert_below",row_data:i()(e.deleted_row),links_data:e.deleted_links_data}),t;case a.OPERATION_TYPE.DELETE_ROWS:return t=l({type:a.OPERATION_TYPE.INSERT_ROWS,table_id:e.table_id,row_ids:i()(e.upper_row_ids),row_insert_position:"insert_below",row_datas:i()(e.deleted_rows),links_data:e.deleted_links_data}),t;case a.OPERATION_TYPE.MOVE_ROWS:return t=l({type:a.OPERATION_TYPE.MOVE_ROWS,moved_rows:e.moved_rows,table_id:e.table_id,target_ids:e.upper_row_ids,upper_row_ids:e.target_ids,move_position:"move_below"}),t;case a.OPERATION_TYPE.MOVE_GROUP_ROWS:return t=l({type:a.OPERATION_TYPE.MOVE_GROUP_ROWS,moved_rows:e.moved_rows,table_id:e.table_id,target_ids:e.upper_row_ids,upper_row_ids:e.target_ids,move_position:"move_below",updated:i()(e.old_rows),old_rows:i()(e.updated),groupby_columns:e.groupby_columns}),t;case a.OPERATION_TYPE.INSERT_COLUMN:{let{linked_column_info:r}=e;if(r){const{table_id:e,column_key:t,column_data:n}=r;r={table_id:e,old_column:n,column_key:n.key,upper_column_key:t}}return t=l({type:a.OPERATION_TYPE.DELETE_COLUMN,table_id:e.table_id,old_column:e.column_data,column_key:e.column_data.key,upper_column_key:e.column_key,linked_column_info:r}),t}case a.OPERATION_TYPE.DELETE_COLUMN:{let{linked_column_info:r}=e;if(r){const{table_id:e,old_column:t,upper_column_key:n}=r;r={table_id:e,column_key:n,new_column:t}}return t=l({type:a.OPERATION_TYPE.RESTORE_COLUMN,table_id:e.table_id,column_key:e.upper_column_key,new_column:e.old_column,linked_column_info:r}),t}case a.OPERATION_TYPE.RENAME_COLUMN:return t=l({type:a.OPERATION_TYPE.RENAME_COLUMN,table_id:e.table_id,column_key:e.column_key,old_column_name:e.new_column_name,new_column_name:e.old_column_name}),t;case a.OPERATION_TYPE.RESIZE_COLUMN:return t=l({type:a.OPERATION_TYPE.RESIZE_COLUMN,table_id:e.table_id,column_key:e.column_key,old_column_width:e.new_column_width,new_column_width:e.old_column_width}),t;case a.OPERATION_TYPE.MOVE_COLUMN:return t=l({type:a.OPERATION_TYPE.MOVE_COLUMN,table_id:e.table_id,moved_column_key:e.moved_column_key,target_column_key:e.upper_column_key,upper_column_key:e.target_column_key,move_position:"move_right"}),t;case a.OPERATION_TYPE.MODIFY_COLUMN_TYPE:return t=l({type:a.OPERATION_TYPE.RESTORE_COLUMN_TYPE,table_id:e.table_id,column_key:e.column_key,new_column:e.old_column,old_column:e.new_column,new_rows_data:e.old_rows_data,old_rows_data:e.new_rows_data}),t;case a.OPERATION_TYPE.MODIFY_ROW:return t=l({type:a.OPERATION_TYPE.MODIFY_ROW,table_id:e.table_id,row_id:e.row_id,updated:i()(e.old_row),old_row:i()(e.updated)}),t;case a.OPERATION_TYPE.MODIFY_ROWS:return t=l({type:a.OPERATION_TYPE.MODIFY_ROWS,table_id:e.table_id,row_ids:e.row_ids,updated:i()(e.old_rows),old_rows:i()(e.updated)}),t;case a.OPERATION_TYPE.ADD_LINK:return t=l({type:a.OPERATION_TYPE.REMOVE_LINK,link_id:e.link_id,table1_id:e.table1_id,table2_id:e.table2_id,table1_row_id:e.table1_row_id,table2_row_id:e.table2_row_id}),t;case a.OPERATION_TYPE.REMOVE_LINK:return t=l({type:a.OPERATION_TYPE.ADD_LINK,link_id:e.link_id,table1_id:e.table1_id,table2_id:e.table2_id,table1_row_id:e.table1_row_id,table2_row_id:e.table2_row_id}),t;case a.OPERATION_TYPE.UPDATE_LINKS:return t=l({type:a.OPERATION_TYPE.UPDATE_LINKS,link_id:e.link_id,table_id:e.table_id,other_table_id:e.other_table_id,row_id:e.row_id,other_rows_ids:i()(e.old_other_rows_ids),old_other_rows_ids:i()(e.other_rows_ids)}),t;case a.OPERATION_TYPE.UPDATE_ROWS_LINKS:{const{other_rows_ids_map:r,old_other_rows_ids_map:n}=e;return t=l({type:a.OPERATION_TYPE.UPDATE_ROWS_LINKS,link_id:e.link_id,table_id:e.table_id,other_table_id:e.other_table_id,row_id_list:e.row_id_list,other_rows_ids_map:n&&i()(n),old_other_rows_ids_map:r&&i()(r)}),t}}}},function(e,t,r){"use strict";r.r(t);var n=r(117),i=r.n(n),a=r(156),o=r.n(a),l=r(38),s=r.n(l),u=r(121),_=r.n(u),c=r(131),d=r(147),T=r(151),E=r(154),O=r(152),p=r(216),R=r(163),f=r(228),m=r(214),y=r(234),I=r(215),h=r(235),A=r(211),b=r(236),L=r(231),N=r(210),C=r(155),g=r(164),P=r(2),M=r(201),S=r(150),U=r(145);s.a.extend(_.a);const D=o()("dtable:store");t.default=class{constructor(e){if(this.undoOperation=()=>{if(0===this.undos.length)return;const e=this.undos.pop(),t=e.invert(),{isValid:r}=T.default.canOpApply(this.value,t);return r?([c.OPERATION_TYPE.DELETE_ROW,c.OPERATION_TYPE.DELETE_ROWS].includes(t.op_type)&&this.eventBus.dispatch("SELECT_NONE"),this.redos.push(e),this.applyLocalOperation(t,!1)):null},this.redoOperation=()=>{if(0===this.redos.length)return;let e=this.redos.pop();return this.undos.push(e),this.applyLocalOperation(e,!1)},this.isNeedSyncOpOnView=e=>!!(c.LINK_OPERATIONS.includes(e.op_type)||c.VIEW_OPERATIONS.includes(e.op_type)||c.REMOTE_VIEW_OPERATIONS.includes(e.op_type)),this.syncOperationOnView=(e,t)=>{if(this.isNeedSyncOpOnView(t)){if(!this.currentTable._id)return;const r=N.default.getViewById(this.currentTable.views,this.view_id);if(N.default.isArchiveView(r))return;const{username:n,userId:a,userDepartmentIdsMap:o}=this.dtableSettings;let l=i()(t);l.current_table_id=this.currentTable._id,l.current_view_id=this.view_id,l.notifyDTableChanged=this.notifyDTableChanged.bind(this),N.default.syncOperationOnView(e,l,{username:n,userId:a,userDepartmentIdsMap:o})}},this.syncAutoNumberUpdatesOnView=(e,t)=>{const{username:r,userId:n,userDepartmentIdsMap:a}=this.dtableSettings;let o=i()(t);o.current_table_id=this.currentTable._id,o.current_view_id=this.view_id,o.notifyDTableChanged=this.notifyDTableChanged.bind(this),N.default.syncAutoNumberUpdatesOnView(e,o,{username:r,userId:n,userDepartmentIdsMap:a})},this.asyncAutoNumberUpdates=(e,t)=>{g.default.asyncAutoNumberUpdates(this,e,t),this.eventBus.dispatch("local-dtable-changed",e)},this.sendOperationCallback=(e,t)=>{if(D("server callback msg: %s",e.message),e.status){if(t&&c.AUTO_NUMBER_UPDATES_OPERATIONS.includes(t.op_type)){const e=new f.default(t);this.asyncAutoNumberUpdates(this.value,e)}this.sendingOperation=null;let r=e.dtable_version;this.value.version=r>this.value.version?r:this.value.version,this.sendNextOperation()}else this.sendingOperation=null,this.eventBus.dispatch("operation-execute-error",e),this.sendNextOperation()},this.duplicateView=(e,t,r)=>{let n=c.OPERATION_TYPE.INSERT_VIEW,i=T.default.getTableById(this.value.tables,e);const{views:a}=i,o=N.default.getViewById(a,t),{name:l,...s}=o,u=Object(O.generateNamesMap)(a),_={...s,name:Object(O.generateDuplicateName)(l,u),_id:Object(d.generatorViewId)(i.views)},E=new I.default(_);let p=this.createOperation({type:n,table_id:e,view_data:E,view_folder_id:r});return this.applyLocalOperation(p),E},this.duplicateViewAsPrivate=(e,t,r,n)=>{let i=c.OPERATION_TYPE.INSERT_VIEW,a=T.default.getTableById(this.value.tables,e);const{views:o}=a,l=N.default.getViewById(o,t),{name:s,...u}=l,_=Object(O.generateNamesMap)(o),E={...u,name:Object(O.generateDuplicateName)(s,_,"copy as private"),_id:Object(d.generatorViewId)(a.views),private_for:r},p=new I.default(E);let R=this.createOperation({type:i,table_id:e,view_data:p,view_folder_id:n});return this.applyLocalOperation(R),p},this.restoreColumn=(e,t,r,n)=>{let i=c.OPERATION_TYPE.RESTORE_COLUMN,a=T.default.getTableId(this.value.tables,e);n&&(n={table_id:n.table_id,column_key:n.upper_column_key,new_column:n.old_column});let o=this.createOperation({type:i,table_id:a,column_key:t,new_column:r,linked_column_info:n});return this.applyLocalOperation(o)},this._asyncAppendRows=(e,t,r)=>{let n=c.OPERATION_TYPE.APPEND_ROWS,i=()=>{t.length>0?setTimeout(()=>{const r=t.splice(0,c.OPERATION_ROWS_NUMBER),a=this.createOperation({type:n,table_id:e,row_datas:r});this.applyLocalOperation(a),i()},c.OPERATION_INTERVAL):r()};i()},this._asyncInsertRows=(e,t,r,n,i)=>{let a=c.OPERATION_TYPE.INSERT_ROWS,o=()=>{t.length>0&&setTimeout(()=>{const l=n.splice(0,c.OPERATION_ROWS_NUMBER),s=t.splice(0,c.OPERATION_ROWS_NUMBER),u=this.createOperation({type:a,table_id:e,row_ids:s,row_insert_position:r,row_datas:l,links_data:i});this.applyLocalOperation(u),o()},c.OPERATION_INTERVAL)};o()},this._asyncDeleteRows=(e,t)=>{let r=c.OPERATION_TYPE.DELETE_ROWS;let n=()=>{t.length>0&&setTimeout(()=>{const i=t.splice(0,5e3),a=this.createOperation({type:r,table_id:e,row_ids:i,deleted_rows:[],upper_row_ids:[],deleted_links_data:null});this.applyLocalOperation(a),n()},c.OPERATION_INTERVAL)};n()},this._asyncModifyRows=(e,t,r,n)=>{const i=c.OPERATION_TYPE.MODIFY_ROWS;let a=()=>{t.length>0&&setTimeout(()=>{const o={},l={},s=t.splice(0,c.OPERATION_ROWS_NUMBER);s.forEach(e=>{o[e]=r[e],l[e]=n[e]});const u=this.createOperation({type:i,table_id:e,row_ids:s,updated:o,old_rows:l});this.applyLocalOperation(u),a()},c.OPERATION_INTERVAL)};a()},this.deleteLinkColumn=(e,t,r,n)=>{const{tables:i}=this.value,{data:a}=r,{link_id:o,table_id:l,other_table_id:s}=a||{};if(l===s)return void this.deleteColumn(e,t,r,n);const u=T.default.getTableByIndex(i,e),_=E.default.getLinkedTableID(u._id,l,s),c=T.default.getTableById(i,_);if(!c)return void this.deleteColumn(e,t,r,n);const d=c.columns,O=d.findIndex(e=>{if(e.type!==P.CellType.LINK)return!1;const{link_id:t}=e.data||{};return o===t});if(-1===O)return void this.deleteColumn(e,t,r,n);const p=d[O],R=0!==O?d[O-1].key:null,f={table_id:c._id,column_key:p.key,old_column:p,upper_column_key:R};this.deleteColumn(e,t,r,n,f)},this.dtableSettings=e,e){let{server:t,dtableServer:r,dtableUuid:n,accessToken:i,lang:a}=e;this.dtableAPI=new A.default(r,n,i,a,t)}this.eventBus=new h.default,this.value=null,this.operations=[],this.pendingOperations=[],this.disconnectOperation=[],this.redos=[],this.undos=[],this.view_id="",this.currentTable=0,this.socketConnected=!1,this.sendingOperation=null,this.isReconnect=!1,this.collaborators=[],this.departments=[],this.externalUsers=[],this.isSendingOperation=!1,this.customPermissions=null}setCustomPermissions(e){this.customPermissions=e}initDtableSharePermission(){let{tables:e}=this.value;e=e.filter(e=>{const t=this.customPermissions.find(t=>t._id===e._id);return!!t&&null!==t.permission}),e=e.map(e=>{const t=this.customPermissions.find(t=>t._id===e._id),r=t.permission,{views:n}=e;if(e.permission=r,r===P.PERMISSION_TYPES.READ_WRITE||r===P.PERMISSION_TYPES.READ_ONLY)e.views=n.map(e=>(e.permission=r,e));else if(r===P.PERMISSION_TYPES.DETAIL){const r=[];n.forEach(e=>{const n=t.views.find(t=>t._id===e._id);n&&null!==n.permission&&(e.permission=n.permission,r.push(e))}),e.views=r}return e}),this.value.tables=e}deserializeDTable(e){return this.value=e,this.customPermissions&&this.initDtableSharePermission(),this.value.tables.forEach(e=>{Object(d.normalizeTable)(e)}),this.value}async loadFromServer(){let e=await this.dtableAPI.getTableData();this.deserializeDTable(e.data)}async loadRelatedUsers(){try{let e=await this.dtableAPI.getTableRelatedUsers();const{user_list:t,app_user_list:r}=e.data;this.collaborators=t,this.externalUsers=r,this.value.collaborators=this.collaborators}catch(e){throw new Error(e)}}async loadTableDepartments(){try{let e=await this.dtableAPI.getTableDepartments();const{departments:t}=e.data;this.departments=t}catch(e){throw new Error(e)}}syncWithServer(){this.socketClient=new b.default(this,this.dtableSettings)}updateAccessToken(e){this.dtableSettings.accessToken=e,this.dtableAPI.accessToken=e,this.socketClient.accessToken=e}applyPendingOperationsOnLocal(){if(0===this.pendingOperations.length)return;let e=this.value;this.pendingOperations.forEach(t=>{e=t.apply(e),this.syncOperationOnView(e,t)}),this.value=e}dispatchConnectState(e,t){if("connect"===e){if(this.socketConnected=!0,this.isReconnect)if(this.isReconnect=!1,t.status)if(this.redos=[],this.undos=[],D("Reconnect, local version is "+this.value.version+", remote version is "+t.dtable_version),!this.value||t.dtable_version>this.value.version){D("Reload dtable when reconnect.");let{dtableUuid:e}=this.dtableSettings;this.dtableAPI.getTableData(e).then(e=>{const{username:t,userId:r,userDepartmentIdsMap:n}=this.dtableSettings;let i=this.deserializeDTable(e.data),a=this.value.tables.findIndex(e=>e._id===this.currentTable._id);N.default.selectView(i,a,this.view_id,{username:t,userId:r,userDepartmentIdsMap:n}),this.value=i,this.applyPendingOperationsOnLocal(),this.eventBus.dispatch("local-dtable-changed",this.value),this.startSendOperation()}).catch(e=>{throw new Error(e)})}else this.startSendOperation();else this.eventBus.dispatch("operation-execute-error",t);this.eventBus.dispatch("dtable-connect")}"reconnect"===e&&(this.isReconnect=!0),"disconnect"===e&&this.onSocketDisconnect(),this.eventBus.dispatch(e,t)}onSocketDisconnect(){this.socketConnected=!1,this.isSendingOperation=!1,this.sendingOperation&&(this.pendingOperations.unshift(this.sendingOperation),this.sendingOperation=null)}createOperation(e){return new f.default(e)}getTableOperations(e){return this.dtableAPI.getTableOperations(e)}canUndoOperation(e){const t=e.op_type;if(!c.UNDO_OPERATION_TYPE.includes(e.op_type))return!1;if(t===c.OPERATION_TYPE.DELETE_ROWS){const t=e.deleted_rows;return Array.isArray(t)&&t.length>0}return!0}applyLocalOperation(e){(!(arguments.length>1&&void 0!==arguments[1])||arguments[1])&&(this.redos.length>0&&(this.redos=[]),this.undos.length>10&&(this.undos=this.undos.slice(-10)),this.canUndoOperation(e)&&this.undos.push(e)),D("apply local operation: %O",{operation:e});let t=e.apply(this.value);this.syncOperationOnView(t,e),this.operations.push(e),this.value=t,this.eventBus.dispatch("local-dtable-changed",t);const{isSharedView:r,collectionTableToken:n}=this.dtableSettings;(r||this.customPermissions||n)&&c.IGNORE_OPERATIONS_IN_SHARE_VIEW_MODE.includes(e.op_type)||this.addPendingOperations(e)}addPendingOperations(e){"r"===this.dtableSettings.permission||(this.pendingOperations.push(e),this.startSendOperation())}startSendOperation(){this.pendingOperations.length>=10&&this.eventBus.dispatch("pending-operations-exceed-limit"),this.socketConnected?this.isSendingOperation||0===this.pendingOperations.length||(this.isSendingOperation=!0,this.eventBus.dispatch("dtable-begin-saving"),this.sendNextOperation()):this.eventBus.dispatch("disconnect-operation-tip")}sendNextOperation(){if(0===this.pendingOperations.length||!this.socketConnected)return this.isSendingOperation=!1,void this.eventBus.dispatch("dtable-end-saving");let e=this.pendingOperations.shift();D("send operation: %O",{operation:e}),this.sendingOperation=e,this.socketClient.sendOperation(JSON.stringify(e),this.sendOperationCallback)}executeRemoteOperation(e,t){let r=new f.default(e);if(this.value.version=this.value.version>t?this.value.version:t,r.op_type===c.OPERATION_TYPE.DELETE_TABLE&&r.table_id===this.currentTable._id){let e=this.value.tables,t=e.findIndex(e=>e._id===r.table_id)-1,n=0;this.eventBus.dispatch("dtable-current-table-delete",this.currentTable.name);let i=r.apply(this.value);return this.currentTable=T.default.getTableByIndex(e,t),void setTimeout(()=>{this.eventBus.dispatch("remote-dtable-changed",i,t,n)},2e3)}if(r.op_type===c.OPERATION_TYPE.DELETE_VIEW&&r.table_id===this.currentTable._id){let e=N.default.getViewById(this.currentTable.views,this.view_id);if(r.view_id===e._id){this.eventBus.dispatch("dtable-current-view-delete",e.name);let t=r.apply(this.value);return void setTimeout(()=>{this.eventBus.dispatch("remote-dtable-changed",t)},2e3)}}if(this.customPermissions)if(r.op_type===c.OPERATION_TYPE.INSERT_TABLE){const{table_data:e}=r,t=this.customPermissions.find(t=>e._id===t._id);if(t&&null===t.permission)return}else{const{isValid:e}=T.default.canOpApply(this.value,r);if(!e)return}let n=r.apply(this.value);this.syncOperationOnView(n,r),this.eventBus.dispatch("remote-dtable-changed",n)}onJoinRoom(e){this.eventBus.dispatch("join-room",e)}onLeaveRoom(e){this.eventBus.dispatch("leave-room",e)}onNewNotification(e){this.eventBus.dispatch("new-notification",e)}onNewUIToastNotification(e){this.eventBus.dispatch("ui-toast",e)}onDtableShareChanged(){this.eventBus.dispatch("dtable-share-changed")}executeOperationAtServer(e){return new f.default(e).apply(this.value)}notifyDTableChanged(){this.eventBus.dispatch("local-dtable-changed",this.value)}insertTable(e){let t=c.OPERATION_TYPE.INSERT_TABLE,r=this.dtableSettings.lang,n={table_id:Object(d.generatorTableId)(this.value.tables),table_name:e,lang:r},i=new m.default(n),a=this.createOperation({type:t,table_data:i});return this.applyLocalOperation(a)}renameTable(e,t){let r=c.OPERATION_TYPE.RENAME_TABLE,n=T.default.getTableId(this.value.tables,e),i=this.createOperation({type:r,table_id:n,table_name:t});return this.applyLocalOperation(i)}deleteTable(e){let t=c.OPERATION_TYPE.DELETE_TABLE,r=T.default.getTableId(this.value.tables,e),n=T.default.getTableByIndex(this.value.tables,e),i=n.name;n.rows.length>1e3&&(n={});let a=this.createOperation({type:t,table_id:r,table_name:i,deleted_table:n});return this.applyLocalOperation(a)}moveTable(e,t,r,n){let i=c.OPERATION_TYPE.MOVE_TABLE,a=this.createOperation({type:i,target_table_id:e,move_position:t,moved_table_id:r,moved_table_name:n});return this.applyLocalOperation(a)}duplicateTable(e,t){const{table_data:r,new_linked_table_columns:n}=T.default.generateDuplicateTableInfo(this.value,e,t),i=c.OPERATION_TYPE.DUPLICATE_TABLE,a=this.createOperation({type:i,source_table_id:e,table_data:r,is_duplicate_records:t,new_linked_table_columns:n});return this.applyLocalOperation(a)}modifyTableDescription(e,t){let r=c.OPERATION_TYPE.MODIFY_TABLE_DESCRIPTION,n=T.default.getTableId(this.value.tables,e),i=this.createOperation({type:r,table_id:n,table_description:t});return this.applyLocalOperation(i)}importDataIntoNewTable(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];const n=c.OPERATION_TYPE.INSERT_TABLE,i=this.dtableSettings.lang;let{tables:a}=this.value,o=new m.default({table_id:Object(d.generatorTableId)(a),table_name:e,lang:i}),l={};if(Array.isArray(t)){let e=[];t.forEach((t,r)=>{const{name:n,type:i,data:a}=t,o=0===r?"0000":Object(d.generatorColumnKey)(e),s=new R.default({column_key:o,column_type:i,column_name:n,data:a});l[n]=s,e.push(s)}),o.columns=e}if(Array.isArray(r)){let e=[],{username:t,appName:n}=this.dtableSettings,i=t||n||"",a=i,u=s()().utc().format(M.UTC_FORMAT_DEFAULT),_=u;r.forEach(t=>{let r=new p.default({_creator:i,_last_modifier:a,_ctime:u,_mtime:_});Object.keys(t).forEach(e=>{const n=l[e];if(n){const{type:i,key:a,data:o}=n,{format:l=""}=o||{};if(i===P.CellType.DATE){let n=t[e]||"";n=n.replace("T"," ").replace("Z","");const i=!!(l&&l.indexOf("HH:mm")>-1)?"YYYY-MM-DD HH:mm":"YYYY-MM-DD";r[a]=Object(S.getDateDisplayString)(n,i)}else i===P.CellType.CTIME||i===P.CellType.MTIME?r[a]=s()(t[e]).utc().format(M.UTC_FORMAT_DEFAULT):P.READ_ONLY_COLUMN_TYPE.includes(i)||(r[a]=t[e])}}),e.push(r)}),o.rows=e}let u=this.createOperation({type:n,table_data:o});return this.applyLocalOperation(u)}restoreTable(e){let t=e;t.views=T.default.getOptimizedViews(t),t.columns=T.default.getOptimizedColumns(t);let r=c.OPERATION_TYPE.INSERT_TABLE,n=this.createOperation({type:r,table_data:t});return this.applyLocalOperation(n)}insertTableFromCommonDataset(e,t,r){let n=c.OPERATION_TYPE.INSERT_TABLE,{tables:i}=this.value,a=this.dtableSettings.lang,o=new m.default({table_id:Object(d.generatorTableId)(i),table_name:e,lang:a});o.columns=r,t.forEach(e=>{let t=new p.default,r=C.default.convertRowBack(e,o);t=Object.assign({},t,r),o.rows.push(t),o.id_row_map[t._id]=t});let l=this.createOperation({type:n,table_data:o});return this.applyLocalOperation(l)}getTableByName(e){let t=this.value.tables;return T.default.getTableByName(t,e)}getTableIdByName(e){let t=this.getTableByName(e);return t?t._id:""}updateTableSetting(e,t,r){let n=c.OPERATION_TYPE.UPDATE_TABLE_SETTING,i=T.default.getTableId(this.value.tables,e),a=this.createOperation({type:n,table_id:i,setting_key:t,setting_value:r});return this.applyLocalOperation(a)}deleteTableSetting(e,t){let r=c.OPERATION_TYPE.DELETE_TABLE_SETTING,n=T.default.getTableId(this.value.tables,e),i=this.createOperation({type:r,table_id:n,setting_key:t});return this.applyLocalOperation(i)}modifyDTableDescription(e){let t=c.OPERATION_TYPE.MODIFY_DTABLE_DESCRIPTION,r=this.createOperation({type:t,description:e});return this.applyLocalOperation(r)}modifyTablePermissions(e,t){let r=c.OPERATION_TYPE.UPDATE_TABLE_PERMISSIONS,n=T.default.getTableId(this.value.tables,e),i=this.createOperation({type:r,table_id:n,permissions:t});return this.applyLocalOperation(i)}addViewFolder(e,t){let r=c.OPERATION_TYPE.ADD_VIEW_FOLDER,n=T.default.getTableByIndex(this.value.tables,e),{_id:i,view_structure:a}=n,o=Object(d.generatorViewFolderId)(a.folders),l=new y.default({_id:o,...t}),s=this.createOperation({type:r,table_id:i,view_folder_data:l});return this.applyLocalOperation(s),l}modifyViewFolder(e,t,r){let n=c.OPERATION_TYPE.MODIFY_VIEW_FOLDER,i=T.default.getTableId(this.value.tables,e),a=this.createOperation({type:n,table_id:i,view_folder_id:t,view_folder_data:r});return this.applyLocalOperation(a)}deleteViewFolder(e,t){let r=c.OPERATION_TYPE.DELETE_VIEW_FOLDER,n=T.default.getTableByIndex(this.value.tables,e);const{_id:i,view_structure:a}=n,o=L.default.getFolderById(a,t).name;let l=this.createOperation({type:r,table_id:i,view_folder_id:t,view_folder_name:o});return this.applyLocalOperation(l)}moveViewFolder(e,t,r,n){let i=c.OPERATION_TYPE.MOVE_VIEW_FOLDER,a=T.default.getTableByIndex(this.value.tables,e);const{_id:o,view_structure:l}=a,s=L.default.getFolderById(l,t).name;let u=this.createOperation({type:i,table_id:o,moved_view_folder_id:t,target_view_folder_id:r,move_position:n,moved_view_folder_name:s});return this.applyLocalOperation(u)}insertView(e,t,r){let n=c.OPERATION_TYPE.INSERT_VIEW,i=T.default.getTableByIndex(this.value.tables,e),a=T.default.getTableId(this.value.tables,e),o=Object(d.generatorViewId)(i.views),l=new I.default({_id:o,...t}),s=this.createOperation({type:n,table_id:a,view_data:l,view_folder_id:r});return this.applyLocalOperation(s),l}moveView(e,t,r,n,i,a){let o=c.OPERATION_TYPE.MOVE_VIEW,l=T.default.getTableByIndex(this.value.tables,e),{_id:s,views:u}=l,_=N.default.getViewById(u,t).name,d=this.createOperation({type:o,table_id:s,moved_view_id:t,target_view_id:r,source_view_folder_id:n,target_view_folder_id:i,move_position:a,moved_view_name:_});return this.applyLocalOperation(d)}selectView(e,t){const{username:r,userId:n,userDepartmentIdsMap:i}=this.dtableSettings;this.currentTable=T.default.getTableByIndex(this.value.tables,e),this.view_id=t,N.default.selectView(this.value,e,t,{username:r,userId:n,userDepartmentIdsMap:i}),this.eventBus.dispatch("local-dtable-changed",this.value)}renameView(e,t,r){let n=c.OPERATION_TYPE.RENAME_VIEW,i=T.default.getTableId(this.value.tables,e),a=this.createOperation({type:n,table_id:i,view_id:t,view_name:r});return this.applyLocalOperation(a)}deleteView(e,t,r){let n=c.OPERATION_TYPE.DELETE_VIEW,i=T.default.getTableByIndex(this.value.tables,e),a=T.default.getTableId(this.value.tables,e),o=N.default.getViewById(i.views,t).name,l=this.createOperation({type:n,table_id:a,view_id:t,view_folder_id:r,view_name:o});return this.applyLocalOperation(l)}getCurrentUserViews(e){const t=T.default.getTableByIndex(this.value.tables,e),{username:r}=this.dtableSettings;return N.default.getUserViews(t.views,r)}getCurrentUserFolderViews(e,t){const r=T.default.getTableByIndex(this.value.tables,e),{view_structure:n,views:i}=r,{username:a}=this.dtableSettings;return L.default.getCurrentUserFolderViews(n,i,t,a)}modifyViewLock(e,t,r){let n=c.OPERATION_TYPE.MODIFY_VIEW_LOCK,i=T.default.getTableByIndex(this.value.tables,e)._id,a=this.createOperation({type:n,table_id:i,view_id:t,is_locked:r});return this.applyLocalOperation(a)}modifyViewType(e,t,r){let n=c.OPERATION_TYPE.MODIFY_VIEW_TYPE,i=T.default.getTableByIndex(this.value.tables,e)._id,a=this.createOperation({type:n,table_id:i,view_id:t,view_type:r});return this.applyLocalOperation(a)}changeToNonPrivateView(e,t,r){let n=c.OPERATION_TYPE.CHANGE_TO_NON_PRIVATE_VIEW,i=T.default.getTableByIndex(this.value.tables,e)._id,a=this.createOperation({type:n,table_id:i,view_id:t,private_for:r});return this.applyLocalOperation(a)}getColumn(e,t){const r=T.default.getTableByIndex(this.value.tables,e),{views:n}=r,i=N.default.getViewById(n,this.view_id);return N.default.getColumns(i,r)[t]}getColumnByKey(e,t){let r=T.default.getTableByIndex(this.value.tables,e);return r?r.columns.find(e=>e.key===t):null}getNumberOfColumns(e){return T.default.getTableByIndex(this.value.tables,e).columns.length-1}duplicateColumn(e,t,r,n){let i=c.OPERATION_TYPE.INSERT_COLUMN,a=T.default.getTableByIndex(this.value.tables,e),o=T.default.getTableId(this.value.tables,e),l=a.columns[t].key,s=r.type;const u=r.colorbys||{},_=Object(O.generateNamesMap)(a.columns);let E=Object(O.generateDuplicateName)(r.name,_),p=Object(d.generatorColumnKey)(a.columns);const f=Object(O.generateDuplicateColorbys)(p,u);let m={...r,column_key:p,column_type:s,column_name:E,colorbys:f},y=new R.default(m),I=this.createOperation({type:i,table_id:o,column_key:l,column_data:y,view_id:n});return this.applyLocalOperation(I)}insertColumn(e,t,r,n,i,a){let o=c.OPERATION_TYPE.INSERT_COLUMN,l=T.default.getTableByIndex(this.value.tables,e),s=T.default.getTableId(this.value.tables,e),u=l.columns[n].key,_={creator:"_creator",ctime:"_ctime","last-modifier":"_last_modifier",mtime:"_mtime"},E=_[r]?_[r]:Object(d.generatorColumnKey)(l.columns),O=new R.default({column_key:E,column_type:r,column_name:t,data:i}),p=this.createOperation({type:o,table_id:s,column_key:u,column_data:O,view_id:a});return this.applyLocalOperation(p)}insertColumns(e,t,r){let n=c.OPERATION_TYPE.INSERT_COLUMNS,i=T.default.getTableByIndex(this.value.tables,e),a=T.default.getTableId(this.value.tables,e),o={creator:"_creator",ctime:"_ctime","last-modifier":"_last_modifier",mtime:"_mtime"},l=[];for(;l.length!==t.length;){let e=Object(d.generatorColumnKey)(i.columns);l.includes(e)||l.push(e)}const s=t.map((e,t)=>{let{name:r,type:n,data:i}=e,a=o[n]||l[t];return new R.default({column_key:a,column_type:n,column_name:r,data:i})}),u=this.createOperation({type:n,table_id:a,insert_columns:s,view_id:r});this.applyLocalOperation(u)}deleteColumn(e,t,r,n,i){let a=c.OPERATION_TYPE.DELETE_COLUMN,o=T.default.getTableId(this.value.tables,e);const{key:l}=r,s=T.default.getTableById(this.value.tables,o),{views:u,columns:_}=s;u.forEach(t=>{if(!N.default.isDefaultView(t,_)){let{filters:r,sorts:n,groupbys:i}=t,a=r&&r.findIndex(e=>e.column_key===l);a>-1&&this.deleteFilter(e,a);let o=n&&n.findIndex(e=>e.column_key===l);o>-1&&this.deleteSort(e,o);let s=i&&i.findIndex(e=>e.column_key===l);s>-1&&this.deleteGroup(e,s)}});let d={type:a,table_id:o,column_key:t,old_column:r,upper_column_key:n};i&&(d.linked_column_info=i);let E=this.createOperation(d);return this.applyLocalOperation(E)}renameColumn(e,t,r){let n=c.OPERATION_TYPE.RENAME_COLUMN,i=T.default.getTableId(this.value.tables,e),a=this.getColumnByKey(e,t).name,o=this.createOperation({type:n,table_id:i,column_key:t,new_column_name:r,old_column_name:a});return this.applyLocalOperation(o)}setColumnData(e,t,r){let n=c.OPERATION_TYPE.MODIFY_COLUMN_DATA,i=T.default.getTableId(this.value.tables,e);const a=this.getColumnByKey(e,t);if(!Object(O.canEditMetadata)(a))return;let o=this.createOperation({type:n,table_id:i,column_key:t,column_data:r});return this.applyLocalOperation(o)}deleteOption(e,t,r){const n=this.getColumnByKey(e,t);if(!Object(O.canEditMetadata)(n))return;const{options:i}=n.data||{},a=Array.isArray(i)?i.findIndex(e=>r===e.id):-1;if(a<0)return;let o=[...i];o.splice(a,1);let l={...n.data,options:o};this.setColumnData(e,t,l),this.removeOptionFromTableRows(e,t,r)}removeOptionFromTableRows(e,t,r){let n=c.OPERATION_TYPE.MODIFY_ROWS,i=T.default.getTableByIndex(this.value.tables,e),a=this.getColumnByKey(e,t);if(!a)return;let{_id:o,rows:l}=i,{type:s}=a,{username:u,appName:_}=this.dtableSettings,d=u||_||"",E=[],O={},p={};if(l.forEach(e=>{const n=e._id,i=e[t];if(s===P.CellType.SINGLE_SELECT&&i===r)E.push(n),p[n]={[t]:null},O[n]={[t]:null,_last_modifier:d};else if(s===P.CellType.MULTIPLE_SELECT&&Array.isArray(i)&&i.includes(r)){E.push(n);let e=[...i];1===i.length?e=null:e.splice(e.indexOf(r),1),p[n]={[t]:e},O[n]={[t]:e,_last_modifier:d}}}),0!==E.length){if(E.length<=1e3){let e=this.createOperation({type:n,table_id:o,row_ids:E,updated:O,old_rows:p});return this.applyLocalOperation(e)}this._asyncModifyRows(o,E,O,p)}}resizeColumn(e,t,r){const n=this.getColumnByKey(e,t).width;let i=c.OPERATION_TYPE.RESIZE_COLUMN,a=T.default.getTableId(this.value.tables,e),o=this.createOperation({type:i,table_id:a,column_key:t,new_column_width:r,old_column_width:n});return this.applyLocalOperation(o)}modifyColumnPermission(e,t,r){const n=this.getColumnByKey(e,t),i={permission_type:n.permission_type||"",permitted_users:n.permitted_users||[],permitted_group:n.permitted_group||""};let a=c.OPERATION_TYPE.MODIFY_COLUMN_PERMISSION,o=T.default.getTableId(this.value.tables,e),l=this.createOperation({type:a,table_id:o,column_key:t,new_column_permission:r,old_column_permission:i});return this.applyLocalOperation(l)}modifyColumnMetadataPermission(e,t,r){const n=this.getColumnByKey(e,t),i={edit_metadata_permission_type:n.edit_metadata_permission_type||"",edit_metadata_permitted_users:n.edit_metadata_permitted_users||[],edit_metadata_permitted_group:n.edit_metadata_permitted_group||""};let a=c.OPERATION_TYPE.MODIFY_COLUMN_METADATA_PERMISSION,o=T.default.getTableId(this.value.tables,e),l=this.createOperation({type:a,table_id:o,column_key:t,new_column_permission:r,old_column_permission:i});return this.applyLocalOperation(l)}setColumnFreeze(e,t,r){let n=c.OPERATION_TYPE.FREEZE_COLUMN,i=T.default.getTableId(this.value.tables,e),a=this.createOperation({type:n,table_id:i,column_key:t,frozen:r});return this.applyLocalOperation(a)}setMobileColumnFreeze(e,t,r){let n=c.OPERATION_TYPE.FREEZE_MOBILE_COLUMN,i=T.default.getTableId(this.value.tables,e),a=this.createOperation({type:n,table_id:i,column_key:t,mobile_frozen:r});return this.applyLocalOperation(a)}freezeColumns(e,t){let r=c.OPERATION_TYPE.FREEZE_COLUMNS,n=T.default.getTableId(this.value.tables,e),i=this.createOperation({type:r,table_id:n,freeze_column_keys:t});return this.applyLocalOperation(i)}moveColumn(e,t,r,n,i){let a=c.OPERATION_TYPE.MOVE_COLUMN,o=T.default.getTableId(this.value.tables,e),l=this.createOperation({type:a,table_id:o,move_position:t,moved_column_key:r,target_column_key:n,upper_column_key:i});return this.applyLocalOperation(l)}updateColumnColorRules(e,t,r){let n=c.OPERATION_TYPE.UPDATE_COLUMN_COLORBYS,i=this.createOperation({type:n,table_id:e,column_key:t,colorbys:r});return this.applyLocalOperation(i)}hideColumn(e,t){let r=c.OPERATION_TYPE.MODIFY_HIDDEN_COLUMNS,n=T.default.getTableByIndex(this.value.tables,e),i=T.default.getTableId(this.value.tables,e),a=this.view_id,o=N.default.getViewById(n.views,a),l=o.hidden_columns?o.hidden_columns.slice(0):[];l.push(t);let s=this.createOperation({type:r,table_id:i,view_id:a,hidden_columns:l});return this.applyLocalOperation(s)}showColumn(e,t){let r=c.OPERATION_TYPE.MODIFY_HIDDEN_COLUMNS,n=T.default.getTableByIndex(this.value.tables,e),i=T.default.getTableId(this.value.tables,e),a=this.view_id,o=N.default.getViewById(n.views,a),l=o.hidden_columns?o.hidden_columns.slice(0):[];l=l?l.filter(e=>e!==t):[];let s=this.createOperation({type:r,table_id:i,view_id:a,hidden_columns:l});return this.applyLocalOperation(s)}hideAllColumns(e){let t=c.OPERATION_TYPE.MODIFY_HIDDEN_COLUMNS,r=T.default.getTableByIndex(this.value.tables,e),n=T.default.getTableId(this.value.tables,e),i=this.view_id,a=r.columns?r.columns:[],o=[];a.forEach((e,t)=>{t>0&&o.push(e.key)});let l=this.createOperation({type:t,table_id:n,view_id:i,hidden_columns:o});return this.applyLocalOperation(l)}showAllColumns(e){let t=c.OPERATION_TYPE.MODIFY_HIDDEN_COLUMNS,r=T.default.getTableId(this.value.tables,e),n=this.view_id,i=this.createOperation({type:t,table_id:r,view_id:n,hidden_columns:[]});return this.applyLocalOperation(i)}modifyColumnType(e,t,r,n){let i=c.OPERATION_TYPE.MODIFY_COLUMN_TYPE,a=T.default.getTableId(this.value.tables,e);const o=T.default.getTableByIndex(this.value.tables,e),l=this.getColumnByKey(e,t),s=C.default.getRowsDataByColumnKey(o.rows,t),{newColumn:u,newRowsData:_}=Object(O.updateColumnAndColumnRowsData)(o,t,r,l,s,n);let d=this.createOperation({type:i,table_id:a,column_key:t,new_column:u,old_column:l,new_rows_data:_,old_rows_data:s});return this.applyLocalOperation(d)}restoreColumnType(e,t,r,n,i,a){let o=c.OPERATION_TYPE.RESTORE_COLUMN_TYPE,l=T.default.getTableId(this.value.tables,e),s=this.createOperation({type:o,table_id:l,column_key:t,new_column:r,old_column:n,new_rows_data:i,old_rows_data:a});return this.applyLocalOperation(s)}getTableColumnsByName(e){let t=this.getTableByName(e);return t?t.columns:[]}getRow(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:this.view_id,i=T.default.getTableByIndex(this.value.tables,e);const{views:a}=i,o=N.default.getViewById(a,n);return N.default.getRow(o,i,t,r)}insertRow(e,t,r,n,i){const{tables:a,links:o}=this.value,l=T.default.getTableId(a,e);let s={};return Array.isArray(i)&&i.forEach(e=>{const{link_id:r,table_id:n,other_table_id:i}=e.data||{},a=E.default.getLinkTableID(l,n,i),u=E.default.getLinkedTableID(l,n,i),_=E.default.getLinkCellValue(o,r,a,u,t);s[r]={link_table_id:a,linked_table_id:u,linked_rows_ids:_}}),this.insertRowWithLinksData(e,t,r,n,s)}insertRowWithLinksData(e,t,r,n,i){const{tables:a,collaborators:o}=this.value,l=T.default.getTableByIndex(a,e);if(!T.default.canAddRows(l))return;const s=c.OPERATION_TYPE.INSERT_ROW,u=T.default.getTableId(a,e),{username:_,appName:d,userId:E,userDepartmentIdsMap:O}=this.dtableSettings,R=_||d||"",f=R,m=T.default.getRowDefaultData(l,o,{username:_,userId:E,userDepartmentIdsMap:O}),y=Object.assign({},m,n),I=Object.assign(new p.default,y,{_creator:R,_last_modifier:f}),h=i&&Object.keys(i);let A=null;h&&h.length>0&&(A={},h.forEach(e=>{const t=i[e],{link_table_id:r,linked_table_id:n,linked_rows_ids:a}=t;if(r&&n&&Array.isArray(a)&&a.length>0){const{link_table_id:r,linked_table_id:n}=t;A[e]={link_table_id:r,linked_table_id:n,id_linked_rows_ids:{[I._id]:a}}}}));const b=this.createOperation({type:s,table_id:u,row_id:t,row_insert_position:r,row_data:I,links_data:A});return this.applyLocalOperation(b),I}restoreRow(e,t,r,n,i){let a=c.OPERATION_TYPE.INSERT_ROW;const{tables:o}=this.value,l=T.default.getTableById(o,e);if(!T.default.canAddRows(l))return;let s=this.createOperation({type:a,table_id:e,row_id:t,row_insert_position:r,row_data:n,links_data:i});return this.applyLocalOperation(s),n}restoreRows(e,t,r,n,i){const a=T.default.getTableByIndex(this.value.tables,e);T.default.canAddRows(a)&&this._insertRows(e,t,r,n,i)}insertRows(e,t,r,n,i){if(!Array.isArray(n)||0===n.length)return;const{tables:a,links:o,collaborators:l}=this.value,s=T.default.getTableByIndex(a,e);if(!T.default.canAddRows(s))return;const u=T.default.getTableId(a,e),{username:_,appName:c,userId:d,userDepartmentIdsMap:O}=this.dtableSettings,R=_||c||"",f=R,m=T.default.getRowDefaultData(s,l,{username:_,userId:d,userDepartmentIdsMap:O}),y=n.map(e=>Object.assign(new p.default,m,e,{_creator:R,_last_modifier:f})),I=t[t.length-1];let h=y.slice(0,y.length-1).map(e=>e._id);h.unshift(I);let A={};if(Array.isArray(i)&&i.length>0&&o){const e=E.default.getRowsLinksData(t,u,i,o);y.forEach((r,n)=>{const a=t[n];a&&i.forEach(t=>{const{link_id:n}=t.data||{},i=e[n],o=i&&i.id_linked_rows_ids[a];o&&(A[n]?A[n].id_linked_rows_ids[r._id]=o:A[n]={...i,id_linked_rows_ids:{[r._id]:o}})})})}this._insertRows(e,h,r,y,A)}_insertRows(e,t,r,n,i){const a=c.OPERATION_TYPE.INSERT_ROWS,o=T.default.getTableId(this.value.tables,e);if(t.length<=1e3){let e=this.createOperation({type:a,table_id:o,row_ids:t,row_insert_position:r,row_datas:n,links_data:i});return this.applyLocalOperation(e),n}return this._asyncInsertRows(o,t,r,n,i),n}appendRows(e,t,r){let{useDefaultValue:n}=r;const{tables:i,collaborators:a}=this.value,o=T.default.getTableByIndex(i,e),l=T.default.getTableId(i,e);if(!T.default.canAddRows(o))return;let u=c.OPERATION_TYPE.APPEND_ROWS,{username:_,appName:d,userId:E,userDepartmentIdsMap:O}=this.dtableSettings,R=_||d||"",f=R,m=s()().utc().format(M.UTC_FORMAT_DEFAULT),y={_creator:R,_last_modifier:f,_ctime:m,_mtime:m},I=n?T.default.getRowDefaultData(o,a,{username:_,userId:E,userDepartmentIdsMap:O}):{};if((t=t.map(e=>Object.assign({},new p.default,I,e,{...y}))).length<=1e3){let e=this.createOperation({type:u,table_id:l,row_datas:t});return this.applyLocalOperation(e)}return new Promise(e=>{setTimeout(()=>{this._asyncAppendRows(l,t,e)},0)})}deleteRow(e,t,r,n){let i=c.OPERATION_TYPE.DELETE_ROW,{tables:a,links:o}=this.value,l=T.default.getTableByIndex(a,e);const{_id:s,columns:u}=l;if(!T.default.canDeleteRows(l))return;let _=T.default.getRowById(l,t);if(!_||_._locked)return;let d=u.filter(e=>e.type===P.CellType.LINK),O=E.default.getRowsLinksData([t],s,d,o),p=this.createOperation({type:i,table_id:s,row_id:t,deleted_row:r,upper_row_id:n,deleted_links_data:O});return this.applyLocalOperation(p)}deleteRowById(e,t){let r=c.OPERATION_TYPE.DELETE_ROW,{tables:n,links:i}=this.value,a=n.find(t=>t._id===e);if(!T.default.canDeleteRows(a))return;let o=T.default.getRowById(a,t);if(!o||o._locked)return;let{rows:l,columns:s}=a,u=l.findIndex(e=>e._id===t),_=u-1>-1?l[u-1]._id:null,d=s.filter(e=>e.type===P.CellType.LINK),O=E.default.getRowsLinksData([t],e,d,i),p=this.createOperation({type:r,table_id:e,row_id:t,deleted_row:o,upper_row_id:_,deleted_links_data:O});return this.applyLocalOperation(p)}deleteRowsByIds(e,t){let r=c.OPERATION_TYPE.DELETE_ROWS,{tables:n,links:i}=this.value,a=T.default.getTableById(n,e);if(!T.default.canDeleteRows(a))return;let o=[],l=[],s=[];if(t.forEach(e=>{let t=T.default.getRowById(a,e);if(t&&!t._locked){o.push(e),l.push(t);let r=a.rows.findIndex(t=>t._id===e),n=r-1>-1?a.rows[r-1]._id:null;s.push(n)}}),0===o.length)return;const u=o.length,_=u<=U.RECORD_DELETED_ROWS_LIMIT;if(u<=5e3){let t=[],n=[],u=null;if(_){t=l,n=s;const r=a.columns.filter(e=>e.type===P.CellType.LINK);u=E.default.getRowsLinksData(o,e,r,i)}let c=this.createOperation({type:r,table_id:e,row_ids:o,deleted_rows:t,upper_row_ids:n,deleted_links_data:u});return this.applyLocalOperation(c)}return this._asyncDeleteRows(e,o),null}deleteRows(e,t,r,n){let i=c.OPERATION_TYPE.DELETE_ROWS,{tables:a,links:o}=this.value,l=T.default.getTableByIndex(a,e);if(!T.default.canDeleteRows(l))return;let s=[],u=[],_=[];if(t.forEach((e,t)=>{let i=T.default.getRowById(l,e);i&&!i._locked&&(s.push(e),u.push(r[t]),_.push(n[t]))}),0===s.length)return;const d=s.length,O=d<=U.RECORD_DELETED_ROWS_LIMIT,p=l._id;if(d<=5e3){let e=[],t=[],r=null;if(O){e=u,t=_;const n=l.columns.filter(e=>e.type===P.CellType.LINK);r=E.default.getRowsLinksData(s,p,n,o)}let n=this.createOperation({type:i,table_id:p,row_ids:s,deleted_rows:e,upper_row_ids:t,deleted_links_data:r});return this.applyLocalOperation(n)}return this._asyncDeleteRows(p,s),null}moveRows(e,t,r,n,i){let a=c.OPERATION_TYPE.MOVE_ROWS,o=T.default.getTableId(this.value.tables,e),l=this.createOperation({type:a,table_id:o,target_ids:t,move_position:r,moved_rows:n,upper_row_ids:i});return this.applyLocalOperation(l)}moveGroupRows(e,t,r,n,i,a,o,l){let s=c.OPERATION_TYPE.MOVE_GROUP_ROWS,u=T.default.getTableId(this.value.tables,e),_=this.createOperation({type:s,table_id:u,target_ids:t,move_position:r,moved_rows:n,upper_row_ids:i,updated:a,old_rows:o,groupby_columns:l});return this.applyLocalOperation(_)}modifyRow(e,t,r,n){for(let e in r)if("_id"===e)throw new Error("It is forbidden to modify the value which key value is _id, please check the program and modify the error.");let i=T.default.getTableByIndex(this.value.tables,e);if(!T.default.canEditRows(i))return;let a=T.default.getRowById(i,t);if(!a||a._locked)return;if(delete r._creator,delete r._ctime,delete r._last_modifier,delete r._mtime,1===Object.keys(r).length&&"_participants"===Object.keys(r)[0])r=Object.assign({},r);else{let{username:e,appName:t}=this.dtableSettings,n=e||t||"";r=Object.assign({},r,{_last_modifier:n})}let o=c.OPERATION_TYPE.MODIFY_ROW,l=this.createOperation({type:o,table_id:i._id,row_id:t,updated:r,old_row:n});return this.applyLocalOperation(l)}modifyRows(e,t,r,n){let i=c.OPERATION_TYPE.MODIFY_ROWS,a=T.default.getTableByIndex(this.value.tables,e);if(!T.default.canEditRows(a))return;let o=t.filter(e=>{let t=T.default.getRowById(a,e);return t&&!t._locked});if(0===o.length)return;let{username:l,appName:s}=this.dtableSettings,u=l||s||"";for(let e in r)delete r[e]._creator,delete r[e]._ctime,delete r[e]._last_modifier,delete r[e]._mtime,r[e]=Object.assign({},r[e],{_last_modifier:u});const _=a._id;if(o.length<=1e3){let e=this.createOperation({type:i,table_id:_,row_ids:o,updated:r,old_rows:n});return this.applyLocalOperation(e)}return this._asyncModifyRows(_,o,r,n),null}modifyRowLock(e,t,r){let n=c.OPERATION_TYPE.MODIFY_ROW_LOCK,i=r?this.dtableSettings.username:null,a=this.createOperation({type:n,table_id:e,row_id:t,is_locked:r,locked_by:i});return this.applyLocalOperation(a)}lockRows(e,t){let r=c.OPERATION_TYPE.LOCK_ROWS,n=T.default.getTableId(this.value.tables,e),i=this.createOperation({type:r,table_id:n,row_ids:t,locked_by:this.dtableSettings.username});return this.applyLocalOperation(i)}unlockRows(e,t){let r=c.OPERATION_TYPE.UNLOCK_ROWS,n=T.default.getTableId(this.value.tables,e),i=this.createOperation({type:r,table_id:n,row_ids:t});return this.applyLocalOperation(i)}getRowsByID(e,t){const r=T.default.getTableById(this.value.tables,e);return T.default.getRowsByIds(r,t)}getTableRowsByName(e){let t=this.getTableByName(e);return t?t.rows:[]}getViewRowsByNames(e,t){const r=this.getTableByName(e);if(!r)return null;const n=N.default.getViewByName(r.views,t);if(!n)return null;return this.getViewRows(r._id,n._id)}getViewRows(e,t){const r=this.value.tables,n=T.default.getTableById(r,e),{views:i}=n,a=N.default.getViewById(i,t),{username:o,userId:l,userDepartmentIdsMap:s}=this.dtableSettings;return N.default.getViewRows(a,n,this.value,o,l,s)}getViewRowsWithoutRecalculation(e,t){const r=this.value.tables,{username:n,userId:i,userDepartmentIdsMap:a}=this.dtableSettings,o=T.default.getTableById(r,e),{views:l}=o,s=N.default.getViewById(l,t);return N.default.getViewRowsWithoutRecalculation(s,o,this.value,n,i,a)}modifyRowColor(e,t){let r=c.OPERATION_TYPE.MODIFY_ROW_COLOR,n=T.default.getTableId(this.value.tables,e),i=this.view_id,a=this.createOperation({type:r,table_id:n,view_id:i,colorbys:t});return this.applyLocalOperation(a)}modifyRowHeight(e,t){let r=c.OPERATION_TYPE.MODIFY_ROW_HEIGHT,n=T.default.getTableId(this.value.tables,e),i=this.view_id,a=this.createOperation({type:r,table_id:n,view_id:i,row_height:t});return this.applyLocalOperation(a)}addLinkColumn(e,t,r,n,i,a){const o=this.value.links||[],l=Object(d.generatorLinkId)(o),s=Object.assign({},i,{link_id:l}),u=T.default.getTableByIndex(this.value.tables,t),_=P.CellType.LINK,E=Object(d.generatorColumnKey)(u.columns),O=new R.default({column_key:E,column_type:_,column_name:e,data:s}),p=u._id,f={type:c.OPERATION_TYPE.INSERT_COLUMN,table_id:p,view_id:a,column_key:u.columns[n].key,column_data:O};if(t===r){const e=this.createOperation(f);return this.applyLocalOperation(e)}const m=T.default.getTableByIndex(this.value.tables,r),y=m.columns||[],I=Object(d.generatorColumnKey)(y),h=Object(d.generatorLinkedColumnName)(u.name,y),A=u.columns[0].key,b=Object.assign({},s,{display_column_key:A,is_multiple:!0,is_row_from_view:!1,other_view_id:""}),L=new R.default({column_key:I,column_type:P.CellType.LINK,column_name:h,data:b}),N=y.length>0?y[y.length-1].key:null,C={table_id:m._id,column_key:N,column_data:L},g=this.createOperation(Object.assign({},f,{linked_column_info:C}));return this.applyLocalOperation(g)}addLink(e,t,r,n,i){const a=E.default.transLinkOptions(t,r,n,i);let o=this.createOperation(Object.assign(a,{link_id:e,type:c.OPERATION_TYPE.ADD_LINK}));this.applyLocalOperation(o)}removeLink(e,t,r,n,i){const a=E.default.transLinkOptions(t,r,n,i);let o=this.createOperation(Object.assign(a,{link_id:e,type:c.OPERATION_TYPE.REMOVE_LINK}));return this.applyLocalOperation(o)}updateLinks(e,t,r,n,i,a){const o=c.OPERATION_TYPE.UPDATE_LINKS;let l=this.createOperation({link_id:e,table_id:t,other_table_id:r,row_id:n,other_rows_ids:i,old_other_rows_ids:a,type:o});return this.applyLocalOperation(l)}updateRowsLinks(e,t,r,n,i,a){const o=c.OPERATION_TYPE.UPDATE_ROWS_LINKS;let l=this.createOperation({link_id:e,table_id:t,other_table_id:r,row_id_list:n,other_rows_ids_map:i,old_other_rows_ids_map:a,type:o});return this.applyLocalOperation(l)}getLinkCellValue(e,t,r,n){const i=this.value.links;return E.default.getLinkCellValue(i,e,t,r,n)}addGroup(e,t){let r=c.OPERATION_TYPE.MODIFY_GROUPBYS,n=T.default.getTableByIndex(this.value.tables,e),a=T.default.getTableId(this.value.tables,e),o=this.view_id,l=N.default.getViewById(n.views,o),s=l.groupbys?i()(l.groupbys):[];s.push(t);let u=this.createOperation({type:r,table_id:a,view_id:o,groupbys:s});return this.applyLocalOperation(u)}updateGroup(e,t,r){let n=c.OPERATION_TYPE.MODIFY_GROUPBYS,a=T.default.getTableByIndex(this.value.tables,e),o=T.default.getTableId(this.value.tables,e),l=this.view_id,s=N.default.getViewById(a.views,l),u=i()(s.groupbys),_=u[t];_=Object.assign({},_,r),u[t]=_;let d=this.createOperation({type:n,table_id:o,view_id:l,groupbys:u});return this.applyLocalOperation(d)}updateGroups(e,t){let r=c.OPERATION_TYPE.MODIFY_GROUPBYS,n=this.value.tables,i=T.default.getTableId(n,e),a=this.view_id,o=this.createOperation({type:r,table_id:i,view_id:a,groupbys:t});return this.applyLocalOperation(o)}deleteGroup(e,t){let r=c.OPERATION_TYPE.MODIFY_GROUPBYS,n=T.default.getTableByIndex(this.value.tables,e),a=T.default.getTableId(this.value.tables,e),o=this.view_id,l=N.default.getViewById(n.views,o),s=i()(l.groupbys);s.splice(t,1);let u=this.createOperation({type:r,table_id:a,view_id:o,groupbys:s});return this.applyLocalOperation(u)}addFilter(e,t){let r=c.OPERATION_TYPE.MODIFY_FILTERS,n=T.default.getTableByIndex(this.value.tables,e),a=T.default.getTableId(this.value.tables,e),o=this.view_id,l=N.default.getViewById(n.views,o),s=l.filter_conjunction;s||(s=P.FILTER_CONJUNCTION_TYPE.AND);let u=l.filters?i()(l.filters):[];u.push(t);let _=this.createOperation({type:r,table_id:a,view_id:o,filter_conjunction:s,filters:u});return this.applyLocalOperation(_)}updateFilter(e,t,r){let n=c.OPERATION_TYPE.MODIFY_FILTERS,a=T.default.getTableByIndex(this.value.tables,e),o=T.default.getTableId(this.value.tables,e),l=this.view_id,s=N.default.getViewById(a.views,l),u=s.filter_conjunction,_=i()(s.filters);_[t]=Object.assign({},_[t],r);let d=this.createOperation({type:n,table_id:o,view_id:l,filter_conjunction:u,filters:_});return this.applyLocalOperation(d)}updateFilters(e,t,r){let n=c.OPERATION_TYPE.MODIFY_FILTERS,i=this.value.tables,a=T.default.getTableId(i,e),o=this.view_id,l=this.createOperation({type:n,table_id:a,view_id:o,filter_conjunction:r,filters:t});return this.applyLocalOperation(l)}deleteFilter(e,t){let r=c.OPERATION_TYPE.MODIFY_FILTERS,n=T.default.getTableByIndex(this.value.tables,e),a=T.default.getTableId(this.value.tables,e),o=this.view_id,l=N.default.getViewById(n.views,o),s=l.filter_conjunction,u=i()(l.filters);u.splice(t,1),0===u.length&&(s="");let _=this.createOperation({type:r,table_id:a,view_id:o,filter_conjunction:s,filters:u});return this.applyLocalOperation(_)}updateFilterConjunction(e,t){let r=c.OPERATION_TYPE.MODIFY_FILTERS,n=T.default.getTableByIndex(this.value.tables,e),i=T.default.getTableId(this.value.tables,e),a=this.view_id,o=t,l=N.default.getViewById(n.views,a).filters,s=this.createOperation({type:r,table_id:i,view_id:a,filter_conjunction:o,filters:l});return this.applyLocalOperation(s)}addSort(e,t){let r=c.OPERATION_TYPE.MODIFY_SORTS,n=T.default.getTableByIndex(this.value.tables,e),i=T.default.getTableId(this.value.tables,e),a=this.view_id,o=N.default.getViewById(n.views,a).sorts;o instanceof Array?o.push(t):o=[t];let l=this.createOperation({type:r,table_id:i,view_id:a,sort:t,sorts:o});return this.applyLocalOperation(l)}updateSort(e,t,r){let n=c.OPERATION_TYPE.MODIFY_SORTS,i=T.default.getTableByIndex(this.value.tables,e),a=T.default.getTableId(this.value.tables,e),o=this.view_id,l=N.default.getViewById(i.views,o).sorts;l[r]=t;let s=this.createOperation({type:n,table_id:a,view_id:o,sorts:l});return this.applyLocalOperation(s)}updateSorts(e,t){let r=c.OPERATION_TYPE.MODIFY_SORTS,n=this.value.tables,i=T.default.getTableId(n,e),a=this.view_id,o=this.createOperation({type:r,table_id:i,view_id:a,sorts:t});return this.applyLocalOperation(o)}deleteSort(e,t){let r=c.OPERATION_TYPE.MODIFY_SORTS,n=T.default.getTableByIndex(this.value.tables,e),i=T.default.getTableId(this.value.tables,e),a=this.view_id,o=N.default.getViewById(n.views,a);o.sorts.splice(t,1);const l=o.sorts;let s=this.createOperation({type:r,table_id:i,view_id:a,sorts:l});return this.applyLocalOperation(s)}addScript(e){let t=c.OPERATION_TYPE.ADD_SCRIPT,r=this.createOperation({type:t,script_name:e.name,url:e.url,script_id:e._id,script_type:e.type});return this.applyLocalOperation(r)}deleteScript(e){let t=c.OPERATION_TYPE.DELETE_SCRIPT,r=this.createOperation({type:t,script_id:e});return this.applyLocalOperation(r)}renameScript(e,t){let r=c.OPERATION_TYPE.RENAME_SCRIPT,n=this.createOperation({type:r,script_id:e,new_script_name:t});return this.applyLocalOperation(n)}addPlugin(e){let t=c.OPERATION_TYPE.ADD_PLUGIN,r=this.createOperation({type:t,plugin_name:e});return this.applyLocalOperation(r)}deletePlugin(e){let t=c.OPERATION_TYPE.DELETE_PLUGIN,r=this.createOperation({type:t,plugin_name:e});return this.applyLocalOperation(r)}updatePluginSettings(e,t){let r=c.OPERATION_TYPE.UPDATE_PLUGIN_SETTINGS,n=this.createOperation({type:r,plugin_name:e,plugin_settings:t});return this.applyLocalOperation(n)}deletePluginSettings(e){let t=c.OPERATION_TYPE.DELETE_PLUGIN_SETTINGS,r=this.createOperation({type:t,plugin_name:e});return this.applyLocalOperation(r)}updateToolbarPlugin(e){let t={setting_key:"extra_toolbar_items",setting_value:e},r=this.createOperation(Object.assign(t,{type:c.OPERATION_TYPE.UPDATE_SETTING}));this.applyLocalOperation(r)}getAllFormulaColumns(e){return N.default.getAllFormulaColumns(e.columns)}getTableFormulaResults(e,t,r){const{username:n,userId:i,userDepartmentIdsMap:a}=this.dtableSettings;return N.default.getTableFormulaResults(e,t,r,null,{userId:i,username:n,userDepartmentIdsMap:a})}addStatistics(e){let t=c.OPERATION_TYPE.ADD_STATISTICS,r=this.value.statistics,n=Object(d.generatorStatId)(r);e._id=n;let i=this.createOperation({type:t,stat_item:e});return this.applyLocalOperation(i)}deleteStatistics(e,t){let r=c.OPERATION_TYPE.DELETE_STATISTICS,n=this.createOperation({type:r,stat_id:e,stat_name:t});return this.applyLocalOperation(n)}editStatistics(e,t){let r=c.OPERATION_TYPE.EDIT_STATISTICS;t._id=e;let n=this.createOperation({type:r,stat_id:e,stat_item:t});return this.applyLocalOperation(n)}updateStatisticsList(e){let t=c.OPERATION_TYPE.UPDATE_STATISTICS_LIST,r=this.createOperation({type:t,statistics:e});return this.applyLocalOperation(r)}addDataProcess(e){let t=c.OPERATION_TYPE.ADD_DATA_PROCESS;e.id=Object(d.generatorDataProcessId)(this.value.data_process);let r=this.createOperation({type:t,options:e});return this.applyLocalOperation(r)}deleteDataProcess(e){let t=c.OPERATION_TYPE.DELETE_DATA_PROCESS,r=this.createOperation({type:t,data_process_id:e});return this.applyLocalOperation(r)}modifyDataProcess(e,t){let r=c.OPERATION_TYPE.MODIFY_DATA_PROCESS;e.id=t;let n=this.createOperation({type:r,options:e,data_process_id:t});return this.applyLocalOperation(n)}getSelectOptionName(e,t){const r=e.data&&e.data.options;return Object(S.getOptionName)(r,t)}updateSummaryConfig(e,t,r){let n=c.OPERATION_TYPE.UPDATE_SUMMARY_CONFIG,i=T.default.getTableId(this.value.tables,e),a=this.createOperation({type:n,table_id:i,column_key:t,summary_method:r});return this.applyLocalOperation(a)}modifyHeaderLock(e,t){let r=c.OPERATION_TYPE.MODIFY_HEADER_LOCK,n=T.default.getTableId(this.value.tables,e),i=this.createOperation({type:r,table_id:n,is_header_locked:t});return this.applyLocalOperation(i)}modifyHeaderSettings(e,t){let r=c.OPERATION_TYPE.MODIFY_HEADER_SETTINGS,n=T.default.getTableId(this.value.tables,e),i=this.createOperation({type:r,table_id:n,header_settings:t});return this.applyLocalOperation(i)}modifySettings(e,t){let r=c.OPERATION_TYPE.UPDATE_SETTING,n=this.createOperation({type:r,setting_key:e,setting_value:t});return this.applyLocalOperation(n)}modifyColumnDescription(e,t,r){const n=c.OPERATION_TYPE.UPDATE_COLUMN_DESCRIPTION,i=T.default.getTableId(this.value.tables,e),a=this.createOperation({type:n,table_id:i,column_key:t,column_description:r});return this.applyLocalOperation(a)}}},function(e,t,r){"use strict";r.r(t);t.default=class{constructor(e){this._id=e._id,this.name=e.name,this.view_ids=e.view_ids||[]}}},function(e,t,r){"use strict";r.r(t);t.default=class{constructor(){this.subscribers={}}subscribe(e,t){this.subscribers[e]||(this.subscribers[e]=[]);const r=this.subscribers[e];return r.push(t),()=>{const e=r.indexOf(t);e>-1&&r.splice(e,1)}}dispatch(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];const i=this.subscribers[e];Array.isArray(i)&&i.forEach(e=>e(...r))}}},function(e,t,r){"use strict";r.r(t);var n=r(156),i=r.n(n),a=r(237),o=r.n(a);const l=i()("dtable:socket-client");t.default=class{constructor(e,t){const{dtableUuid:r,dtableSocket:n,accessToken:i,lang:a}=t;this.dtableUuid=r,this.tableStore=e,this.accessToken=i,this.socket=o()(n,{reconnect:!0,query:{dtable_uuid:r,lang:a}}),this.socket.on("connect",()=>{this.onConnected()}),this.socket.on("reconnect",e=>{this.onReconnect(e)}),this.socket.on("reconnecting",e=>{this.onReconnecting(e)}),this.socket.on("disconnect",e=>{this.onDisconnect(e)}),this.socket.on("join-room",e=>this.onJoinRoom(e)),this.socket.on("leave-room",e=>this.onLeaveRoom(e)),this.socket.on("update-dtable",(e,t)=>this.onUpdateDtable(e,t)),this.socket.on("new-notification",e=>this.onNewNotification(e)),this.socket.on("ui-toast",e=>this.onNewUIToastNotification(e)),this.socket.on("dtable-share-changed",()=>this.onDtableShareChanged()),"undefined"!=typeof window&&(window.onbeforeunload=()=>this.close()),this.retry_on_join_room=0}connect(){this.socket.open()}close(){this.socket.emit("leave room")}onConnected(){l("connected to server"),this.socket.emit("join-room",this.dtableUuid,this.accessToken,e=>{if(e.status)this.retry_on_join_room=0,l("join room success."),this.tableStore.dispatchConnectState("connect",e);else{if(l("join room failed."),0===this.retry_on_join_room)return void(this.retry_on_join_room=1);this.socket.disconnect(),this.tableStore.dispatchConnectState("connect-error",e)}})}onReconnect(e){l("reconnect."),this.tableStore.dispatchConnectState("reconnect")}onReconnecting(e){l("reconnecting.",e),this.retry_on_join_room=0,this.tableStore.dispatchConnectState("reconnecting",e)}onJoinRoom(e){l("user ".concat(e," has joined")),this.tableStore.onJoinRoom(e)}onLeaveRoom(e){l("user ".concat(e," left")),this.tableStore.onLeaveRoom(e)}onUpdateDtable(e,t){l("=================================="),l("message from server: %s"+e.toString()),l("=================================="),this.tableStore.executeRemoteOperation(JSON.parse(e),t)}onNewNotification(e){l("Received new notification from server: %s"+e.toString()),this.tableStore.onNewNotification(JSON.parse(e))}onNewUIToastNotification(e){l("Received new toast notification from server: %s"+e.toString()),this.tableStore.onNewUIToastNotification(JSON.parse(e))}onDtableShareChanged(){l("Received dtable share signal from server"),this.tableStore.onDtableShareChanged()}onDisconnect(e){l("disconnect message: %s",e),this.tableStore.dispatchConnectState("disconnect"),"io server disconnect"===e&&setTimeout(()=>{this.connect()},3e3)}sendOperation(e,t){let r=this.dtableUuid;this.socket.emit("update-dtable",r,e,(e,r)=>{r?t&&t(e,JSON.parse(r)):t&&t(e)})}}},function(e,t){e.exports=r}])}));
10
+ t.read=function(e,t,r,n,i){var a,o,l=8*i-n-1,s=(1<<l)-1,u=s>>1,_=-7,c=r?i-1:0,d=r?-1:1,T=e[t+c];for(c+=d,a=T&(1<<-_)-1,T>>=-_,_+=l;_>0;a=256*a+e[t+c],c+=d,_-=8);for(o=a&(1<<-_)-1,a>>=-_,_+=n;_>0;o=256*o+e[t+c],c+=d,_-=8);if(0===a)a=1-u;else{if(a===s)return o?NaN:1/0*(T?-1:1);o+=Math.pow(2,n),a-=u}return(T?-1:1)*o*Math.pow(2,a-n)},t.write=function(e,t,r,n,i,a){var o,l,s,u=8*a-i-1,_=(1<<u)-1,c=_>>1,d=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,T=n?0:a-1,E=n?1:-1,O=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(l=isNaN(t)?1:0,o=_):(o=Math.floor(Math.log(t)/Math.LN2),t*(s=Math.pow(2,-o))<1&&(o--,s*=2),(t+=o+c>=1?d/s:d*Math.pow(2,1-c))*s>=2&&(o++,s/=2),o+c>=_?(l=0,o=_):o+c>=1?(l=(t*s-1)*Math.pow(2,i),o+=c):(l=t*Math.pow(2,c-1)*Math.pow(2,i),o=0));i>=8;e[r+T]=255&l,T+=E,l/=256,i-=8);for(o=o<<i|l,u+=i;u>0;e[r+T]=255&o,T+=E,o/=256,u-=8);e[r+T-E]|=128*O}},function(e,t){var r={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==r.call(e)}},function(e,t,r){var n=r(225),i=r(226);e.exports=function(e,t,r){var a=t&&r||0;"string"==typeof e&&(t="binary"===e?new Array(16):null,e=null);var o=(e=e||{}).random||(e.rng||n)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,t)for(var l=0;l<16;++l)t[a+l]=o[l];return t||i(o)}},function(e,t){var r="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(r){var n=new Uint8Array(16);e.exports=function(){return r(n),n}}else{var i=new Array(16);e.exports=function(){for(var e,t=0;t<16;t++)0==(3&t)&&(e=4294967296*Math.random()),i[t]=e>>>((3&t)<<3)&255;return i}}},function(e,t){for(var r=[],n=0;n<256;++n)r[n]=(n+256).toString(16).substr(1);e.exports=function(e,t){var n=t||0,i=r;return[i[e[n++]],i[e[n++]],i[e[n++]],i[e[n++]],"-",i[e[n++]],i[e[n++]],"-",i[e[n++]],i[e[n++]],"-",i[e[n++]],i[e[n++]],"-",i[e[n++]],i[e[n++]],i[e[n++]],i[e[n++]],i[e[n++]],i[e[n++]]].join("")}},function(e,t,r){"use strict";for(var n=[],i={},a=0;a<256;a++)n[a]=(a+256).toString(16).substr(1),i[n[a]]=a;e.exports={parse:function(e,t,r){var n=t&&r||0,a=0;for(t=t||[],e.toLowerCase().replace(/[0-9a-f]{2}/g,(function(e){a<16&&(t[n+a++]=i[e])}));a<16;)t[n+a++]=0;return t},unparse:function(e,t){var r=t||0,i=n;return i[e[r++]]+i[e[r++]]+i[e[r++]]+i[e[r++]]+"-"+i[e[r++]]+i[e[r++]]+"-"+i[e[r++]]+i[e[r++]]+"-"+i[e[r++]]+i[e[r++]]+"-"+i[e[r++]]+i[e[r++]]+i[e[r++]]+i[e[r++]]+i[e[r++]]+i[e[r++]]}}},function(e,t,r){"use strict";r.r(t);var n=r(117),i=r.n(n),a=r(131),o=r(229);class l{constructor(e){const t=i()(e),r=t.type||t.op_type,n=a.OPERATION_ATTRIBUTES[r];if(!n)throw new Error("Error initializing operation");this.op_type=r,n.forEach(e=>{this[e]=t[e]})}clone(){return new l(this)}apply(e){return Object(o.apply)(e,this)}invert(){return Object(o.invert)(this)}}t.default=l},function(e,t,r){"use strict";r.r(t);var n=r(230);r.d(t,"apply",(function(){return n.default}));var i=r(232);r.d(t,"invert",(function(){return i.default}))},function(e,t,r){"use strict";r.r(t);var n=r(117),i=r.n(n),a=r(38),o=r.n(a),l=r(121),s=r.n(l),u=r(131),_=r(146),c=r(231),d=r(210),T=r(2),E=r(201);o.a.extend(s.a),t.default=function(e,t){let{op_type:r}=t;switch(r){case u.OPERATION_TYPE.INSERT_ROW:{let{table_id:r,row_id:n,row_insert_position:i,row_data:a,links_data:l,key_auto_number_config:s}=t,{tables:u,links:c}=e,d=a._id,T=o()().utc().format(E.UTC_FORMAT_DEFAULT),O=T;a._ctime=T,a._mtime=O;let p=_.TableUtils.getTableById(u,r),{rows:R}=p;if(p.id_row_map[d])return e;if(n){let e,t=R.findIndex(e=>e._id===n);"insert_above"===i?e=t:"insert_below"===i&&(e=t+1),R.splice(e,0,a)}else R.splice(R.length,0,a);return p.id_row_map[d]=a,s&&Object.keys(s).length>0&&_.TableUtils.updateTableColumnsWithAutoNumberConfig(u,r,s),l&&c&&Object.keys(l).forEach(e=>{const{link_table_id:t,linked_table_id:r,id_linked_rows_ids:n}=l[e],i=n&&n[d];i&&_.LinksUtils.updateLinksBetween2Tables(c,e,t,r,d,i)}),e}case u.OPERATION_TYPE.INSERT_ROWS:{let{table_id:r,row_ids:n,row_datas:i,links_data:a,row_insert_position:l,key_auto_number_config:s}=t,{tables:u,links:c}=e,d=_.TableUtils.getTableById(u,r),T=d.rows;const O=o()().utc().format(E.UTC_FORMAT_DEFAULT),p=O,R=a&&c?Object.keys(a):null;for(let e=0;e<n.length;e++){let t=i[e];t._ctime||(t._ctime=O),t._mtime||(t._mtime=p);const r=t._id;let o=T.findIndex(t=>t._id===n[e]);o<0?o=T.length-1:"insert_below"===l&&o++,d.id_row_map[r]||(T.splice(o,0,t),d.id_row_map[r]=t,R&&R.forEach(e=>{const{link_table_id:t,linked_table_id:n,id_linked_rows_ids:i}=a[e],o=i&&i[r];o&&_.LinksUtils.updateLinksBetween2Tables(c,e,t,n,r,o)}))}return s&&Object.keys(s).length>0&&_.TableUtils.updateTableColumnsWithAutoNumberConfig(u,r,s),e}case u.OPERATION_TYPE.APPEND_ROWS:{const{table_id:r,row_datas:n,key_auto_number_config:i}=t,a=_.TableUtils.getTableById(e.tables,r);let{rows:o}=a;for(let e=0;e<n.length;e++)a.id_row_map[n[e]._id]||(o.push(n[e]),a.id_row_map[n[e]._id]=n[e]);return a.rows=o,i&&Object.keys(i).length>0&&_.TableUtils.updateTableColumnsWithAutoNumberConfig(e.tables,r,i),e}case u.OPERATION_TYPE.DELETE_ROW:{let{table_id:r,row_id:n}=t,i=_.TableUtils.getTableById(e.tables,r),a=i.rows.filter(e=>n!=e._id);return i.rows=a,_.LinksUtils.removeRowsLinks(e.links,i,[n]),delete i.id_row_map[n],e}case u.OPERATION_TYPE.DELETE_ROWS:{let{table_id:r,row_ids:n}=t,i=_.TableUtils.getTableById(e.tables,r),a=i.rows,o={};n.forEach(e=>{o[e]=e});let l=a.filter(e=>!o[e._id]);return i.rows=l,_.LinksUtils.removeRowsLinks(e.links,i,n),n.forEach(e=>{delete i.id_row_map[e]}),e}case u.OPERATION_TYPE.MOVE_ROWS:{let{table_id:r,target_ids:n,move_position:i,moved_rows:a}=t,o=_.TableUtils.getTableById(e.tables,r),l=o.rows,s=a.map(e=>e._id),u=l.filter(e=>-1===s.indexOf(e._id));for(let e=0;e<n.length;e++){let t=u.findIndex(t=>t._id===n[e]);"move_below"===i&&(t+=1),u.splice(t,0,a[e])}return o.rows=u,e}case u.OPERATION_TYPE.MOVE_GROUP_ROWS:{let{table_id:r,target_ids:n,move_position:i,moved_rows:a,updated:o,groupby_columns:l}=t,{tables:s,links:u}=e,c=_.TableUtils.getTableById(s,r),d=c.rows,E=[...a];E=E.map(e=>{let t=e,r=e._id;return d.findIndex(e=>e._id===r)>-1&&(t=Object.assign({},e,o[r]),c.id_row_map[r]=t),t});let O=E.map(e=>e._id),p=d.filter(e=>-1===O.indexOf(e._id));for(let e=0;e<n.length;e++){let t=p.findIndex(t=>t._id===n[e]);"move_below"===i&&(t+=1),p.splice(t,0,E[e])}c.rows=p;const R=Array.isArray(l)&&l.filter(e=>e.type===T.CellType.LINK);if(R.length>0&&u&&o){let e={};R.forEach(t=>{const{key:n,data:i={}}=t,{link_id:a,table_id:o,other_table_id:l}=i,s=_.LinksUtils.getLinkTableID(r,o,l),u=_.LinksUtils.getLinkedTableID(r,o,l);e[n]={link_id:a,link_table_id:s,linked_table_id:u}}),O.forEach(t=>{const r=o[t];r&&R.forEach(n=>{const i=n.key,{link_id:a,link_table_id:o,linked_table_id:l}=e[i]||{},s=r[i];_.LinksUtils.updateLinksBetween2Tables(u,a,o,l,t,s)})})}return e}case u.OPERATION_TYPE.INSERT_COLUMN:{let{table_id:r,column_key:n,column_data:a,linked_column_info:o,view_id:l,rows_datas:s}=t,u=_.TableUtils.getTableById(e.tables,r),c=i()(u.columns),T=c.findIndex(e=>e.key===n);if(c.splice(T+1,0,a),u.columns=c,Array.isArray(s)&&s.length>0&&_.RowUtils.updateTableRowsWithRowsDatas(e.tables,r,s),d.default.hideInsertedColumns(u.views,[a.key],l),o){const{table_id:t,column_key:r,column_data:n}=o,a=_.TableUtils.getTableById(e.tables,t);if(a){const e=i()(a.columns),t=e.findIndex(e=>e.key===r),o=t>-1?t+1:e.length;e.splice(o,0,n),a.columns=e,d.default.hideInsertedColumns(a.views,[n.key],null)}}return e}case u.OPERATION_TYPE.INSERT_COLUMNS:{let{table_id:r,insert_columns:n,view_id:a,rows_datas:o}=t,l=_.TableUtils.getTableById(e.tables,r),s=i()(l.columns);s.push(...n),l.columns=s,Array.isArray(o)&&o.length>0&&_.RowUtils.updateTableRowsWithRowsDatas(e.tables,r,o);const u=n.map(e=>e.key);return d.default.hideInsertedColumns(l.views,u,a),e}case u.OPERATION_TYPE.MODIFY_COLUMNS:{let{table_id:r,new_columns:n}=t,a=_.TableUtils.getTableById(e.tables,r),o=i()(a.columns);for(let e=0;e<n.length;e++){let t=o.findIndex(t=>t.key===n[e].key);-1!==t&&(o[t]=n[e])}return a.columns=o,e}case u.OPERATION_TYPE.RESTORE_COLUMN:{const{table_id:r,column_key:n,new_column:a,linked_column_info:o}=t;let l=i()(a),s=_.TableUtils.getTableById(e.tables,r),u=i()(s.columns),c=u.findIndex(e=>e.key===n);if(u.splice(c+1,0,l),s.columns=u,o){const{table_id:t,column_key:r,new_column:n}=o,a=i()(n),l=_.TableUtils.getTableById(e.tables,t);if(l){const e=i()(l.columns),t=e.findIndex(e=>e.key===r),n=t>-1?t+1:e.length;e.splice(n,0,a),l.columns=e}}return e}case u.OPERATION_TYPE.DELETE_COLUMN:{let{table_id:r,column_key:n,linked_column_info:a}=t,o=_.TableUtils.getTableById(e.tables,r),l=i()(o.columns),s=l.findIndex(e=>e.key===n);if(s>-1&&(l.splice(s,1),o.columns=l),a){const{table_id:t,column_key:r}=a,n=_.TableUtils.getTableById(e.tables,t);if(n){const e=i()(n.columns),t=e.findIndex(e=>e.key===r);t>-1&&(e.splice(t,1),n.columns=e)}}return e}case u.OPERATION_TYPE.RENAME_COLUMN:{let{table_id:r,column_key:n,new_column_name:a}=t,o=_.TableUtils.getTableById(e.tables,r),l=i()(o.columns),s=l.findIndex(e=>e.key===n),u=l[s];if(u){const t=u.name;u.name=a,o.columns=l,Object(_.updateTablesColumnName)(e.tables,r,t,a)}return e}case u.OPERATION_TYPE.RESIZE_COLUMN:{let{table_id:r,column_key:n,new_column_width:a}=t,o=_.TableUtils.getTableById(e.tables,r),l=i()(o.columns),s=l.findIndex(e=>e.key===n),u=l[s];return u&&(u.width=a),o.columns=l,e}case u.OPERATION_TYPE.FREEZE_COLUMN:{let{table_id:r,column_key:n,frozen:a}=t,o=_.TableUtils.getTableById(e.tables,r),l=i()(o.columns),s=l.findIndex(e=>e.key===n),u=l[s];return u&&(u.frozen=a),o.columns=l,e}case u.OPERATION_TYPE.FREEZE_MOBILE_COLUMN:{let{table_id:r,column_key:n,mobile_frozen:a}=t,o=_.TableUtils.getTableById(e.tables,r),l=i()(o.columns),s=l.findIndex(e=>e.key===n),u=l[s];return u&&(u.mobile_frozen=a),o.columns=l,e}case u.OPERATION_TYPE.FREEZE_COLUMNS:{let{table_id:r,freeze_column_keys:n}=t,a=_.TableUtils.getTableById(e.tables,r),o=i()(a.columns),l={};return Array.isArray(n)&&n.forEach(e=>{l[e]=!0}),o.forEach((e,t)=>{e.frozen&&(o[t].frozen=!1),l[e.key]&&(o[t].frozen=!0)}),a.columns=o,e}case u.OPERATION_TYPE.MODIFY_COLUMN_DATA:{let{table_id:r,column_key:n,column_data:a}=t,o=_.TableUtils.getTableById(e.tables,r),l=i()(o.columns),s=l.findIndex(e=>e.key===n),u=l[s];return u&&(u.data=a),o.columns=l,e}case u.OPERATION_TYPE.MOVE_COLUMN:{let{table_id:r,move_position:n,moved_column_key:a,target_column_key:o}=t,l=_.TableUtils.getTableById(e.tables,r),s=i()(l.columns),u=s.find(e=>a===e.key),c=s.filter(e=>a!==e.key),d=c.findIndex(e=>o===e.key);return"move_right"===n&&(d+=1),c.splice(d,0,u),l.columns=c,e}case u.OPERATION_TYPE.UPDATE_COLUMN_COLORBYS:{const{table_id:r,column_key:n,colorbys:a}=t;let o=_.TableUtils.getTableById(e.tables,r),l=i()(o.columns),s=l.findIndex(e=>e.key===n),u=l[s];return u&&(u.colorbys=a),o.columns=l,e}case u.OPERATION_TYPE.MODIFY_ROW:{let{table_id:r,row_id:n,updated:i}=t,a=o()().utc().format(E.UTC_FORMAT_DEFAULT);i=Object.assign({},i,{_mtime:a});let l=_.TableUtils.getTableById(e.tables,r),s=l.rows,u=s.findIndex(e=>e._id===n),c=s[u];return c=Object.assign({},c,i),s[u]=c,l.id_row_map[n]=c,e}case u.OPERATION_TYPE.MODIFY_ROWS:{let{table_id:r,row_ids:n,updated:i}=t,a=_.TableUtils.getTableById(e.tables,r),l={};n.forEach(e=>{l[e]=e});let s=a.rows;const u=o()().utc().format(E.UTC_FORMAT_DEFAULT);return s.forEach((e,t)=>{if(l[e._id]){const r=Object.assign({},e,i[e._id],{_mtime:u});s[t]=r,a.id_row_map[e._id]=r}}),e}case u.OPERATION_TYPE.MODIFY_ROW_LOCK:{let{table_id:r,row_id:n,is_locked:i,locked_by:a}=t,o=_.TableUtils.getTableById(e.tables,r),l=o.rows,s=l.findIndex(e=>e._id===n),u={...l[s]};return i?(u._locked=i,u._locked_by=a):(delete u._locked,delete u._locked_by),l[s]=u,o.id_row_map[n]=u,e}case u.OPERATION_TYPE.LOCK_ROWS:{let{table_id:r,row_ids:n,locked_by:i}=t,a=_.TableUtils.getTableById(e.tables,r),o=a.rows,l={};return n.forEach(e=>{l[e]=e}),o.forEach((e,t)=>{const r=e._id;if(l[r]&&!e._locked){let n={...e};n._locked=!0,n._locked_by=i,o[t]=n,a.id_row_map[r]=n}}),e}case u.OPERATION_TYPE.UNLOCK_ROWS:{let{table_id:r,row_ids:n}=t,i=_.TableUtils.getTableById(e.tables,r),a=i.rows,o={};return n.forEach(e=>{o[e]=e}),a.forEach((e,t)=>{const r=e._id;if(o[r]&&e._locked){let n={...e};delete n._locked,delete n._locked_by,a[t]=n,i.id_row_map[r]=n}}),e}case u.OPERATION_TYPE.INSERT_TABLE:{let{table_data:r}=t;return r.columns=r.columns.filter(e=>e.name&&e.key),r.id_row_map={},r.rows=r.rows.map(e=>(Object.keys(e).forEach(t=>{e[t]||0===e[t]||delete e[t]}),r.id_row_map[e._id]=e,e)),e.tables.push(r),e}case u.OPERATION_TYPE.UPDATE_TABLE:{const{table_id:r,table_data:n}=t;_.TableUtils.updateTable(e.tables,r,n);let i=_.TableUtils.getTableById(e.tables,r);return i.id_row_map={},Array.isArray(i.rows)&&i.rows.forEach(e=>{i.id_row_map[e._id]=e}),e}case u.OPERATION_TYPE.RENAME_TABLE:{let{table_id:r,table_name:n}=t;if(_.TableUtils.renameTable(e.tables,r,n))return e;throw new Error("Rename table failed.")}case u.OPERATION_TYPE.DELETE_TABLE:{let{table_id:r}=t;if(_.TableUtils.deleteTable(e.tables,r))return e;throw new Error("Delete table failed.")}case u.OPERATION_TYPE.MOVE_TABLE:{let{target_table_id:r,move_position:n,moved_table_id:i}=t,a=_.TableUtils.getTableById(e.tables,i),o=e.tables.filter(e=>e._id!==i),l=o.findIndex(e=>e._id===r);return"move_below"===n&&(l+=1),o.splice(l,0,a),e.tables=o,e}case u.OPERATION_TYPE.MODIFY_TABLE_DESCRIPTION:{let{table_id:r,table_description:n}=t;if(_.TableUtils.modifyTableDescription(e.tables,r,n))return e;throw new Error("Modify table description failed.")}case u.OPERATION_TYPE.DUPLICATE_TABLE:{const{source_table_id:r,table_data:n,is_duplicate_records:a,new_linked_table_columns:o}=t;let l=_.TableUtils.getTableById(e.tables,r),s={...i()(n),is_header_locked:l.is_header_locked,header_settings:l.header_settings||{},view_structure:i()(l.view_structure),views:_.TableUtils.getOptimizedViews(l),rows:[],id_row_map:{}},u={};if(s.columns=s.columns.map(e=>{if(e.type!==T.CellType.LINK)return e;const{source_link_id:t,link_id:r}=e.data;u[t]=r;const n={...e.data};return delete n.source_link_id,e.data=n,e}),a&&(s.rows=l.rows.map(e=>{const t={...e};return s.id_row_map[e._id]=t,t})),e.tables.push(s),o.length>0&&(e.tables=e.tables||[],o.forEach(t=>{let{table_id:r,column:n}=t;e.tables=e.tables.map(e=>{if(e._id===r){let t=i()(e.columns);return t.push(n),e.columns=t,e}return e})})),a&&Object.keys(u).length>0){let t=[];const{_id:n}=s;Object.keys(u).forEach(i=>{let a=_.LinksUtils.getLinkById(e.links,i);if(a){let e={...a};const{table1_id:o,table2_id:l}=_.LinksUtils.transLinkOptions(e.table1_id,e.table2_id);if(o!==e.table1_id){e.table1_id=o,e.table2_id=l;const t=e.table2_table1_map&&{...e.table2_table1_map},r=e.table1_table2_map&&{...e.table1_table2_map};e.table1_table2_map=t,e.table2_table1_map=r}const s=o===r?n:o,c=l===r?n:l,{table1_id:d,table2_id:T}=_.LinksUtils.transLinkOptions(s,c);let E={_id:u[i],table1_id:s,table2_id:c};s!==d&&(E.table1_id=d,E.table2_id=T,E.table1_table2_map=e.table2_table1_map,E.table2_table1_map=e.table1_table2_map);let O=Object.assign({},e,E);t.push(JSON.stringify(O))}}),e.links=e.links||[],t.forEach(t=>{e.links.push(JSON.parse(t))})}return e}case u.OPERATION_TYPE.ADD_VIEW_FOLDER:{let{table_id:r,view_folder_data:n}=t;return _.TableUtils.getTableById(e.tables,r).view_structure.folders.push(n),e}case u.OPERATION_TYPE.MODIFY_VIEW_FOLDER:{let{table_id:r,view_folder_id:n,view_folder_data:i}=t,a=_.TableUtils.getTableById(e.tables,r);if(c.default.modifyFolder(a.view_structure,n,i))return e;throw new Error("Modify view folder failed.")}case u.OPERATION_TYPE.DELETE_VIEW_FOLDER:{let{table_id:r,view_folder_id:n}=t,i=_.TableUtils.getTableById(e.tables,r);if(c.default.deleteFolder(i.view_structure,n))return e;throw new Error("Delete view folder failed.")}case u.OPERATION_TYPE.MOVE_VIEW_FOLDER:{let{table_id:r,moved_view_folder_id:n,target_view_folder_id:i,move_position:a}=t,o=_.TableUtils.getTableById(e.tables,r),l=o.view_structure,s=c.default.getFolderById(l,n),u=l.folders.filter(e=>e._id!==n),d=u.findIndex(e=>e._id===i);return d<0||("move_below"===a&&d++,u.splice(d,0,s),l.folders=u,o.view_structure=l),e}case u.OPERATION_TYPE.INSERT_VIEW:{let{table_id:r,view_data:n,view_folder_id:i}=t,a=_.TableUtils.getTableById(e.tables,r),o=n._id;return a.views.push(n),c.default.addView(a.view_structure,o,i),e}case u.OPERATION_TYPE.MOVE_VIEW:{let{table_id:r,moved_view_id:n,target_view_id:i,source_view_folder_id:a,target_view_folder_id:o,move_position:l}=t,s=_.TableUtils.getTableById(e.tables,r),u=d.default.getViewById(s.views,n),T=s.views.filter(e=>n!==e._id),E=T.findIndex(e=>e._id===i);return"move_below"===l&&(E+=1),T.splice(E,0,u),s.views=T,c.default.moveView(s.view_structure,n,i,a,o,l),e}case u.OPERATION_TYPE.RENAME_VIEW:{let{table_id:r,view_id:n,view_name:i}=t,a=_.TableUtils.getTableById(e.tables,r);if(d.default.renameView(a.views,n,i))return e;throw new Error("Rename view failed.")}case u.OPERATION_TYPE.DELETE_VIEW:{let{table_id:r,view_id:n,view_folder_id:i}=t,a=_.TableUtils.getTableById(e.tables,r);if(!d.default.deleteView(a.views,n))throw new Error("Delete view failed.");return c.default.deleteView(a.view_structure,n,i),e}case u.OPERATION_TYPE.MODIFY_FILTERS:{let{table_id:r,view_id:n,filter_conjunction:i,filters:a}=t,o=_.TableUtils.getTableById(e.tables,r),l=d.default.getViewById(o.views,n);return l.filter_conjunction=i,l.filters=a,e}case u.OPERATION_TYPE.MODIFY_HIDDEN_COLUMNS:{let{table_id:r,view_id:n,hidden_columns:i}=t,a=_.TableUtils.getTableById(e.tables,r);if(!d.default.hideColumns(a.views,n,i))throw new Error("Hide columns failed.");return e}case u.OPERATION_TYPE.MODIFY_SORTS:{let{table_id:r,view_id:n,sorts:i}=t,a=_.TableUtils.getTableById(e.tables,r);return d.default.getViewById(a.views,n).sorts=i,e}case u.OPERATION_TYPE.ADD_STATISTICS:{let{stat_item:r}=t,{statistics:n}=e;return n.push(r),e}case u.OPERATION_TYPE.DELETE_STATISTICS:{let{stat_id:r}=t,{statistics:n}=e,i=n.findIndex(e=>(e._id?e._id:e._Sid)===r);return n.splice(i,1),e}case u.OPERATION_TYPE.EDIT_STATISTICS:{let{stat_id:r,stat_item:n}=t,{statistics:i}=e,a=i.findIndex(e=>e._id===r);return i[a]=n,e}case u.OPERATION_TYPE.UPDATE_STATISTICS_LIST:{let{statistics:r}=t;return e.statistics=r,e}case u.OPERATION_TYPE.ADD_LINK:{e.links||(e.links=[]);const{link_id:r,table1_id:n,table2_id:i,table1_row_id:a,table2_row_id:o}=t;return _.LinksUtils.addLinkBetween2Tables(e.links,r,n,i,a,o),e}case u.OPERATION_TYPE.REMOVE_LINK:{const r=e.links;if(!r)return e;const{link_id:n,table1_id:i,table2_id:a,table1_row_id:o,table2_row_id:l}=t;return _.LinksUtils.removeLinkBetween2Tables(r,n,i,a,o,l),e}case u.OPERATION_TYPE.UPDATE_LINKS:{const r=e.links;if(!r)return e;const{link_id:n,table_id:i,other_table_id:a,row_id:o,other_rows_ids:l}=t;return _.LinksUtils.updateLinksBetween2Tables(r,n,i,a,o,l),e}case u.OPERATION_TYPE.UPDATE_ROWS_LINKS:{const r=e.links,{link_id:n,table_id:i,other_table_id:a,row_id_list:o,other_rows_ids_map:l}=t;return r&&l?(o.forEach(e=>{const t=l[e];_.LinksUtils.updateLinksBetween2Tables(r,n,i,a,e,t)}),e):e}case u.OPERATION_TYPE.MODIFY_GROUPBYS:{let{table_id:r,view_id:n,groupbys:i}=t,a=_.TableUtils.getTableById(e.tables,r);return d.default.getViewById(a.views,n).groupbys=i,e}case u.OPERATION_TYPE.MODIFY_VIEW_LOCK:{let{table_id:r,view_id:n,is_locked:i}=t,a=_.TableUtils.getTableById(e.tables,r);if(d.default.modifyViewLock(a.views,n,i))return e;throw i?new Error("Lock view failed."):new Error("Unlock view failed.")}case u.OPERATION_TYPE.MODIFY_VIEW_TYPE:{const{table_id:r,view_id:n,view_type:i}=t,a=_.TableUtils.getTableById(e.tables,r);return d.default.modifyViewType(a.views,n,i),e}case u.OPERATION_TYPE.CHANGE_TO_NON_PRIVATE_VIEW:{const{table_id:r,view_id:n,private_for:i}=t,a=_.TableUtils.getTableById(e.tables,r);return d.default.changeToNonPrivateView(a.views,n,i),e}case u.OPERATION_TYPE.MODIFY_HEADER_LOCK:{let{table_id:r,is_header_locked:n}=t;if(_.TableUtils.modifyHeaderLock(e.tables,r,n))return e;throw n?new Error("Lock table header failed."):new Error("Unlock table header failed.")}case u.OPERATION_TYPE.UPDATE_SUMMARY_CONFIG:{let{table_id:r,column_key:n,summary_method:i}=t,a=_.TableUtils.getTableById(e.tables,r),o=a.summary_configs||{};return o=Object.assign({},o,{[n]:i}),a.summary_configs=o,e}case u.OPERATION_TYPE.MODIFY_COLUMN_TYPE:case u.OPERATION_TYPE.RESTORE_COLUMN_TYPE:{let{table_id:r,column_key:n,new_column:i,new_rows_data:a}=t,o=_.TableUtils.getTableById(e.tables,r),l=!1,s="";return o.columns=o.columns.map(e=>e.key===n?(l=i.name!==e.name,l&&(s=e.name),i):e),o.rows=o.rows.map((e,t)=>{const r=Object.assign({},e,{...a[t]});return o.id_row_map[e._id]=r,r}),l&&Object(_.updateTablesColumnName)(e.tables,r,s,i.name),e}case u.OPERATION_TYPE.UPDATE_TABLE_SETTING:{let{table_id:r,setting_key:n,setting_value:i}=t,a=_.TableUtils.getTableById(e.tables,r),o=a.settings||{};return o[n]=i,a.settings=o,e}case u.OPERATION_TYPE.DELETE_TABLE_SETTING:{let{table_id:r,setting_key:n}=t,i=_.TableUtils.getTableById(e.tables,r),a=i.settings||{};return delete a[n],i.settings=a,e}case u.OPERATION_TYPE.MODIFY_DTABLE_DESCRIPTION:{let{description:r}=t;return e.description=r,e}case u.OPERATION_TYPE.UPDATE_DEFAULT_DATA:{let{table_id:r,view_id:n,column_key:i,lang:a}=t,o=_.TableUtils.getTableById(e.tables,r),l=d.default.getViewById(o.views,n),s=_.TableUtils.getTableColumnByKey(o,i);return l.name=Object(_.getViewDefaultName)(a),s.name=Object(_.getColumnDefaultName)(a),e}case u.OPERATION_TYPE.ADD_DATA_PROCESS:{let{options:r}=t,n=e.data_process||[];return n.push(r),e.data_process=n,e}case u.OPERATION_TYPE.DELETE_DATA_PROCESS:{let{data_process_id:r}=t,n=(e.data_process||[]).filter(e=>e.id!==r);return e.data_process=n,e}case u.OPERATION_TYPE.MODIFY_DATA_PROCESS:{let{options:r,data_process_id:n}=t,i=(e.data_process||[]).map(e=>e.id===n?r:e);return e.data_process=i,e}case u.OPERATION_TYPE.ADD_PLUGIN:{let{plugin_name:r}=t,n=e.plugins||[];return n.push(r),e.plugins=n,e}case u.OPERATION_TYPE.DELETE_PLUGIN:{let{plugin_name:r}=t,n=(e.plugins||[]).filter(e=>e!==r);return e.plugins=n,e}case u.OPERATION_TYPE.UPDATE_PLUGIN_SETTINGS:{let{plugin_name:r,plugin_settings:n}=t,i=e.plugin_settings||{};return i[r]=n,e.plugin_settings=i,e}case u.OPERATION_TYPE.DELETE_PLUGIN_SETTINGS:{let{plugin_name:r}=t,n=e.plugin_settings||{};return delete n[r],e.plugin_settings=n,e}case u.OPERATION_TYPE.UPDATE_SETTING:{e.settings||(e.settings={});let{setting_key:r,setting_value:n}=t;return e.settings[r]=n,e}case u.OPERATION_TYPE.DELETE_SETTING:{let{setting_key:r}=t,n=e.settings||{};return delete n[r],e.settings=n,e}case u.OPERATION_TYPE.MODIFY_COLUMN_PERMISSION:{let{table_id:r,column_key:n,new_column_permission:a}=t,o=_.TableUtils.getTableById(e.tables,r),l=i()(o.columns),s=l.findIndex(e=>e.key===n),u=l[s],{permission_type:c,permitted_users:d,permitted_group:T}=a;return l[s]=Object.assign({},u,{permission_type:c,permitted_users:d||[],permitted_group:T||""}),o.columns=l,e}case u.OPERATION_TYPE.MODIFY_COLUMN_METADATA_PERMISSION:{let{table_id:r,column_key:n,new_column_permission:a}=t,o=_.TableUtils.getTableById(e.tables,r),l=i()(o.columns),s=l.findIndex(e=>e.key===n),u=l[s],{edit_metadata_permission_type:c,edit_metadata_permitted_users:d,edit_metadata_permitted_group:T}=a;return l[s]=Object.assign({},u,{edit_metadata_permission_type:c,edit_metadata_permitted_users:d||[],edit_metadata_permitted_group:T||""}),o.columns=l,e}case u.OPERATION_TYPE.ADD_SCRIPT:{let{script_name:r,url:n,script_id:i,script_type:a}=t,o=e.scripts||[];return o.push({name:r,url:n,_id:i,type:a}),e.scripts=o,e}case u.OPERATION_TYPE.DELETE_SCRIPT:{let{script_id:r}=t,n=(e.scripts||[]).filter(e=>e._id!==r);return e.scripts=n,e}case u.OPERATION_TYPE.RENAME_SCRIPT:{let{script_id:r,new_script_name:n}=t,i=e.scripts||[],a=i.find(e=>e._id===r);return a?(a.name=n,e.scripts=i,e):e}case u.OPERATION_TYPE.MODIFY_ROW_COLOR:{let{table_id:r,view_id:n,colorbys:i}=t,a=_.TableUtils.getTableById(e.tables,r);return d.default.getViewById(a.views,n).colorbys=i,e}case u.OPERATION_TYPE.MODIFY_ROW_HEIGHT:{let{table_id:r,view_id:n,row_height:i}=t,a=_.TableUtils.getTableById(e.tables,r);return d.default.getViewById(a.views,n).row_height=i,e}case u.OPERATION_TYPE.MODIFY_HEADER_SETTINGS:{let{table_id:r,header_settings:n}=t,i=_.TableUtils.getTableById(e.tables,r);return i.header_settings=Object.assign({},i.header_settings,n),e}case u.OPERATION_TYPE.UPDATE_TABLE_PERMISSIONS:{let{table_id:r,permissions:n}=t,i=_.TableUtils.getTableById(e.tables,r);return i.table_permissions||(i.table_permissions={}),i.table_permissions=n,e}case u.OPERATION_TYPE.ARCHIVE_ROWS:{let{table_id:r,row_ids:n}=t,i=_.TableUtils.getTableById(e.tables,r),a={};n.forEach(e=>{a[e]=e});let o=i.rows.filter(e=>!a[e._id]);i.has_archived=!0,i.rows=o,n.forEach(e=>{delete i.id_row_map[e]});const l=e.links;return l?(_.LinksUtils.removeRowsLinks(l,i,n),e):e}case u.OPERATION_TYPE.UNARCHIVE_ROWS:{let{table_id:r,rows:n,links:i}=t;const a=_.TableUtils.getTableById(e.tables,r);let{rows:o,id_row_map:l}=a;const s=n.filter(e=>!l[e._id]);for(let e=0;e<s.length;e++)o.push(s[e]),a.id_row_map[s[e]._id]=s[e];return a.rows=o,i&&"[object Object]"===Object.prototype.toString.call(i)&&Object.keys(i).length>0&&_.LinksUtils.unarchiveRowsLinks(e,a,i),e}case u.OPERATION_TYPE.UPDATE_COLUMN_DESCRIPTION:{const{table_id:r,column_key:n,column_description:a}=t,o=_.TableUtils.getTableById(e.tables,r);let l=i()(o.columns),s=l.findIndex(e=>e.key===n),u=l[s];return u&&(u.description=a,o.columns=l),e}default:return e}}},function(e,t,r){"use strict";r.r(t);t.default=class{static getFolderById(e,t){const r=e.folders;return t&&r.find(e=>e._id===t)}static getFolderIndexById(e,t){return t?e.folders.findIndex(e=>e._id===t):-1}static getCurrentUserFolderViews(e,t,r,n){const i=this.getFolderById(e,r);let a=i?i.view_ids:e.view_ids;const o={};return t.forEach(e=>o[e._id]=e),a.filter(e=>{const t=o[e];return t&&(!t.private_for||t.private_for===n)}).map(e=>o[e])}static modifyFolder(e,t,r){const n=this.getFolderIndexById(e,t);if(n<0)return!1;let i=e.folders[n];return e.folders[n]={...i,...r},!0}static deleteFolder(e,t){const r=e.folders,n=this.getFolderIndexById(e,t);if(n<0)return!1;const i=r.splice(n,1)[0].view_ids;return i&&i.length&&e.view_ids.push(...i),!0}static addView(e,t,r){let n,i=this.getFolderIndexById(e,r);n=i>-1?e.folders[i].view_ids:e.view_ids,n.push(t)}static insertView(e,t,r,n,i){const a=this.getFolderIndexById(e,n),o=a>-1?e.folders[a].view_ids:e.view_ids;if(o.includes(t))return!1;let l=r?o.indexOf(r):-1;return l<0?(this.addView(e,t,n),!0):("move_below"===i&&l++,o.splice(l,0,t),!0)}static deleteView(e,t,r){let n=-1;n=r?this.getFolderIndexById(e,r):e.folders.findIndex(e=>e.view_ids.includes(t));const i=n>-1?e.folders[n].view_ids:e.view_ids,a=i.findIndex(e=>e===t);return!(a<0)&&(i.splice(a,1),!0)}static moveView(e,t,r,n,i,a){this.deleteView(e,t,n),this.insertView(e,t,r,i,a)}}},function(e,t,r){"use strict";r.r(t);var n=r(117),i=r.n(n),a=r(131),o=r(228);function l(e){return new o.default(e)}t.default=function(e){let t,{op_type:r}=e.clone();switch(r){case a.OPERATION_TYPE.INSERT_ROW:return t=l({type:a.OPERATION_TYPE.DELETE_ROW,table_id:e.table_id,row_id:e.row_data._id,deleted_row:i()(e.row_data),deleted_links_data:e.links_data}),t;case a.OPERATION_TYPE.INSERT_ROWS:return t=l({type:a.OPERATION_TYPE.DELETE_ROWS,table_id:e.table_id,row_ids:e.row_datas.map(e=>e._id),upper_row_ids:i()(e.row_ids),deleted_rows:i()(e.row_datas),deleted_links_data:e.links_data}),t;case a.OPERATION_TYPE.APPEND_ROWS:{const r=e.row_datas.map(e=>e._id);return t=l({type:a.OPERATION_TYPE.DELETE_ROWS,table_id:e.table_id,row_ids:r,upper_row_ids:i()(r),deleted_rows:i()(e.row_datas)}),t}case a.OPERATION_TYPE.DELETE_ROW:return t=l({type:a.OPERATION_TYPE.INSERT_ROW,table_id:e.table_id,row_id:e.upper_row_id,row_insert_position:"insert_below",row_data:i()(e.deleted_row),links_data:e.deleted_links_data}),t;case a.OPERATION_TYPE.DELETE_ROWS:return t=l({type:a.OPERATION_TYPE.INSERT_ROWS,table_id:e.table_id,row_ids:i()(e.upper_row_ids),row_insert_position:"insert_below",row_datas:i()(e.deleted_rows),links_data:e.deleted_links_data}),t;case a.OPERATION_TYPE.MOVE_ROWS:return t=l({type:a.OPERATION_TYPE.MOVE_ROWS,moved_rows:e.moved_rows,table_id:e.table_id,target_ids:e.upper_row_ids,upper_row_ids:e.target_ids,move_position:"move_below"}),t;case a.OPERATION_TYPE.MOVE_GROUP_ROWS:return t=l({type:a.OPERATION_TYPE.MOVE_GROUP_ROWS,moved_rows:e.moved_rows,table_id:e.table_id,target_ids:e.upper_row_ids,upper_row_ids:e.target_ids,move_position:"move_below",updated:i()(e.old_rows),old_rows:i()(e.updated),groupby_columns:e.groupby_columns}),t;case a.OPERATION_TYPE.INSERT_COLUMN:{let{linked_column_info:r}=e;if(r){const{table_id:e,column_key:t,column_data:n}=r;r={table_id:e,old_column:n,column_key:n.key,upper_column_key:t}}return t=l({type:a.OPERATION_TYPE.DELETE_COLUMN,table_id:e.table_id,old_column:e.column_data,column_key:e.column_data.key,upper_column_key:e.column_key,linked_column_info:r}),t}case a.OPERATION_TYPE.DELETE_COLUMN:{let{linked_column_info:r}=e;if(r){const{table_id:e,old_column:t,upper_column_key:n}=r;r={table_id:e,column_key:n,new_column:t}}return t=l({type:a.OPERATION_TYPE.RESTORE_COLUMN,table_id:e.table_id,column_key:e.upper_column_key,new_column:e.old_column,linked_column_info:r}),t}case a.OPERATION_TYPE.RENAME_COLUMN:return t=l({type:a.OPERATION_TYPE.RENAME_COLUMN,table_id:e.table_id,column_key:e.column_key,old_column_name:e.new_column_name,new_column_name:e.old_column_name}),t;case a.OPERATION_TYPE.RESIZE_COLUMN:return t=l({type:a.OPERATION_TYPE.RESIZE_COLUMN,table_id:e.table_id,column_key:e.column_key,old_column_width:e.new_column_width,new_column_width:e.old_column_width}),t;case a.OPERATION_TYPE.MOVE_COLUMN:return t=l({type:a.OPERATION_TYPE.MOVE_COLUMN,table_id:e.table_id,moved_column_key:e.moved_column_key,target_column_key:e.upper_column_key,upper_column_key:e.target_column_key,move_position:"move_right"}),t;case a.OPERATION_TYPE.MODIFY_COLUMN_TYPE:return t=l({type:a.OPERATION_TYPE.RESTORE_COLUMN_TYPE,table_id:e.table_id,column_key:e.column_key,new_column:e.old_column,old_column:e.new_column,new_rows_data:e.old_rows_data,old_rows_data:e.new_rows_data}),t;case a.OPERATION_TYPE.MODIFY_ROW:return t=l({type:a.OPERATION_TYPE.MODIFY_ROW,table_id:e.table_id,row_id:e.row_id,updated:i()(e.old_row),old_row:i()(e.updated)}),t;case a.OPERATION_TYPE.MODIFY_ROWS:return t=l({type:a.OPERATION_TYPE.MODIFY_ROWS,table_id:e.table_id,row_ids:e.row_ids,updated:i()(e.old_rows),old_rows:i()(e.updated)}),t;case a.OPERATION_TYPE.ADD_LINK:return t=l({type:a.OPERATION_TYPE.REMOVE_LINK,link_id:e.link_id,table1_id:e.table1_id,table2_id:e.table2_id,table1_row_id:e.table1_row_id,table2_row_id:e.table2_row_id}),t;case a.OPERATION_TYPE.REMOVE_LINK:return t=l({type:a.OPERATION_TYPE.ADD_LINK,link_id:e.link_id,table1_id:e.table1_id,table2_id:e.table2_id,table1_row_id:e.table1_row_id,table2_row_id:e.table2_row_id}),t;case a.OPERATION_TYPE.UPDATE_LINKS:return t=l({type:a.OPERATION_TYPE.UPDATE_LINKS,link_id:e.link_id,table_id:e.table_id,other_table_id:e.other_table_id,row_id:e.row_id,other_rows_ids:i()(e.old_other_rows_ids),old_other_rows_ids:i()(e.other_rows_ids)}),t;case a.OPERATION_TYPE.UPDATE_ROWS_LINKS:{const{other_rows_ids_map:r,old_other_rows_ids_map:n}=e;return t=l({type:a.OPERATION_TYPE.UPDATE_ROWS_LINKS,link_id:e.link_id,table_id:e.table_id,other_table_id:e.other_table_id,row_id_list:e.row_id_list,other_rows_ids_map:n&&i()(n),old_other_rows_ids_map:r&&i()(r)}),t}}}},function(e,t,r){"use strict";r.r(t);var n=r(117),i=r.n(n),a=r(156),o=r.n(a),l=r(38),s=r.n(l),u=r(121),_=r.n(u),c=r(131),d=r(147),T=r(151),E=r(154),O=r(152),p=r(216),R=r(163),f=r(228),m=r(214),y=r(234),I=r(215),h=r(235),A=r(211),b=r(236),L=r(231),N=r(210),C=r(155),g=r(164),P=r(2),M=r(201),S=r(150),U=r(145);s.a.extend(_.a);const D=o()("dtable:store");t.default=class{constructor(e){if(this.undoOperation=()=>{if(0===this.undos.length)return;const e=this.undos.pop(),t=e.invert(),{isValid:r}=T.default.canOpApply(this.value,t);return r?([c.OPERATION_TYPE.DELETE_ROW,c.OPERATION_TYPE.DELETE_ROWS].includes(t.op_type)&&this.eventBus.dispatch("SELECT_NONE"),this.redos.push(e),this.applyLocalOperation(t,!1)):null},this.redoOperation=()=>{if(0===this.redos.length)return;let e=this.redos.pop();return this.undos.push(e),this.applyLocalOperation(e,!1)},this.isNeedSyncOpOnView=e=>!!(c.LINK_OPERATIONS.includes(e.op_type)||c.VIEW_OPERATIONS.includes(e.op_type)||c.REMOTE_VIEW_OPERATIONS.includes(e.op_type)),this.syncOperationOnView=(e,t)=>{if(this.isNeedSyncOpOnView(t)){if(!this.currentTable._id)return;const r=N.default.getViewById(this.currentTable.views,this.view_id);if(N.default.isArchiveView(r))return;const{username:n,userId:a,userDepartmentIdsMap:o}=this.dtableSettings;let l=i()(t);l.current_table_id=this.currentTable._id,l.current_view_id=this.view_id,l.notifyDTableChanged=this.notifyDTableChanged.bind(this),N.default.syncOperationOnView(e,l,{username:n,userId:a,userDepartmentIdsMap:o})}},this.syncAutoNumberUpdatesOnView=(e,t)=>{const{username:r,userId:n,userDepartmentIdsMap:a}=this.dtableSettings;let o=i()(t);o.current_table_id=this.currentTable._id,o.current_view_id=this.view_id,o.notifyDTableChanged=this.notifyDTableChanged.bind(this),N.default.syncAutoNumberUpdatesOnView(e,o,{username:r,userId:n,userDepartmentIdsMap:a})},this.asyncAutoNumberUpdates=(e,t)=>{g.default.asyncAutoNumberUpdates(this,e,t),this.eventBus.dispatch("local-dtable-changed",e)},this.sendOperationCallback=(e,t)=>{if(D("server callback msg: %s",e.message),e.status){if(t&&c.AUTO_NUMBER_UPDATES_OPERATIONS.includes(t.op_type)){const e=new f.default(t);this.asyncAutoNumberUpdates(this.value,e)}this.sendingOperation=null;let r=e.dtable_version;this.value.version=r>this.value.version?r:this.value.version,this.sendNextOperation()}else this.sendingOperation=null,this.eventBus.dispatch("operation-execute-error",e),this.sendNextOperation()},this.duplicateView=(e,t,r)=>{let n=c.OPERATION_TYPE.INSERT_VIEW,i=T.default.getTableById(this.value.tables,e);const{views:a}=i,o=N.default.getViewById(a,t),{name:l,...s}=o,u=Object(O.generateNamesMap)(a),_={...s,name:Object(O.generateDuplicateName)(l,u),_id:Object(d.generatorViewId)(i.views)},E=new I.default(_);let p=this.createOperation({type:n,table_id:e,view_data:E,view_folder_id:r});return this.applyLocalOperation(p),E},this.duplicateViewAsPrivate=(e,t,r,n)=>{let i=c.OPERATION_TYPE.INSERT_VIEW,a=T.default.getTableById(this.value.tables,e);const{views:o}=a,l=N.default.getViewById(o,t),{name:s,...u}=l,_=Object(O.generateNamesMap)(o),E={...u,name:Object(O.generateDuplicateName)(s,_,"copy as private"),_id:Object(d.generatorViewId)(a.views),private_for:r},p=new I.default(E);let R=this.createOperation({type:i,table_id:e,view_data:p,view_folder_id:n});return this.applyLocalOperation(R),p},this.restoreColumn=(e,t,r,n)=>{let i=c.OPERATION_TYPE.RESTORE_COLUMN,a=T.default.getTableId(this.value.tables,e);n&&(n={table_id:n.table_id,column_key:n.upper_column_key,new_column:n.old_column});let o=this.createOperation({type:i,table_id:a,column_key:t,new_column:r,linked_column_info:n});return this.applyLocalOperation(o)},this._asyncAppendRows=(e,t,r)=>{let n=c.OPERATION_TYPE.APPEND_ROWS,i=()=>{t.length>0?setTimeout(()=>{const r=t.splice(0,c.OPERATION_ROWS_NUMBER),a=this.createOperation({type:n,table_id:e,row_datas:r});this.applyLocalOperation(a),i()},c.OPERATION_INTERVAL):r()};i()},this._asyncInsertRows=(e,t,r,n,i)=>{let a=c.OPERATION_TYPE.INSERT_ROWS,o=()=>{t.length>0&&setTimeout(()=>{const l=n.splice(0,c.OPERATION_ROWS_NUMBER),s=t.splice(0,c.OPERATION_ROWS_NUMBER),u=this.createOperation({type:a,table_id:e,row_ids:s,row_insert_position:r,row_datas:l,links_data:i});this.applyLocalOperation(u),o()},c.OPERATION_INTERVAL)};o()},this._asyncDeleteRows=(e,t)=>{let r=c.OPERATION_TYPE.DELETE_ROWS;let n=()=>{t.length>0&&setTimeout(()=>{const i=t.splice(0,5e3),a=this.createOperation({type:r,table_id:e,row_ids:i,deleted_rows:[],upper_row_ids:[],deleted_links_data:null});this.applyLocalOperation(a),n()},c.OPERATION_INTERVAL)};n()},this._asyncModifyRows=(e,t,r,n)=>{const i=c.OPERATION_TYPE.MODIFY_ROWS;let a=()=>{t.length>0&&setTimeout(()=>{const o={},l={},s=t.splice(0,c.OPERATION_ROWS_NUMBER);s.forEach(e=>{o[e]=r[e],l[e]=n[e]});const u=this.createOperation({type:i,table_id:e,row_ids:s,updated:o,old_rows:l});this.applyLocalOperation(u),a()},c.OPERATION_INTERVAL)};a()},this.deleteLinkColumn=(e,t,r,n)=>{const{tables:i}=this.value,{data:a}=r,{link_id:o,table_id:l,other_table_id:s}=a||{};if(l===s)return void this.deleteColumn(e,t,r,n);const u=T.default.getTableByIndex(i,e),_=E.default.getLinkedTableID(u._id,l,s),c=T.default.getTableById(i,_);if(!c)return void this.deleteColumn(e,t,r,n);const d=c.columns,O=d.findIndex(e=>{if(e.type!==P.CellType.LINK)return!1;const{link_id:t}=e.data||{};return o===t});if(-1===O)return void this.deleteColumn(e,t,r,n);const p=d[O],R=0!==O?d[O-1].key:null,f={table_id:c._id,column_key:p.key,old_column:p,upper_column_key:R};this.deleteColumn(e,t,r,n,f)},this.dtableSettings=e,e){let{server:t,dtableServer:r,dtableUuid:n,accessToken:i,lang:a}=e;this.dtableAPI=new A.default(r,n,i,a,t)}this.eventBus=new h.default,this.value=null,this.operations=[],this.pendingOperations=[],this.disconnectOperation=[],this.redos=[],this.undos=[],this.view_id="",this.currentTable=0,this.socketConnected=!1,this.sendingOperation=null,this.isReconnect=!1,this.collaborators=[],this.departments=[],this.externalUsers=[],this.isSendingOperation=!1,this.customPermissions=null}setCustomPermissions(e){this.customPermissions=e}initDtableSharePermission(){let{tables:e}=this.value;e=e.filter(e=>{const t=this.customPermissions.find(t=>t._id===e._id);return!!t&&null!==t.permission}),e=e.map(e=>{const t=this.customPermissions.find(t=>t._id===e._id),r=t.permission,{views:n}=e;if(e.permission=r,r===P.PERMISSION_TYPES.READ_WRITE||r===P.PERMISSION_TYPES.READ_ONLY)e.views=n.map(e=>(e.permission=r,e));else if(r===P.PERMISSION_TYPES.DETAIL){const r=[];n.forEach(e=>{const n=t.views.find(t=>t._id===e._id);n&&null!==n.permission&&(e.permission=n.permission,r.push(e))}),e.views=r}return e}),this.value.tables=e}deserializeDTable(e){return this.value=e,this.customPermissions&&this.initDtableSharePermission(),this.value.tables.forEach(e=>{Object(d.normalizeTable)(e)}),this.value}async loadFromServer(){let e=await this.dtableAPI.getTableData();this.deserializeDTable(e.data)}async loadRelatedUsers(){try{let e=await this.dtableAPI.getTableRelatedUsers();const{user_list:t,app_user_list:r}=e.data;this.collaborators=t,this.externalUsers=r,this.value.collaborators=this.collaborators}catch(e){throw new Error(e)}}async loadTableDepartments(){try{let e=await this.dtableAPI.getTableDepartments();const{departments:t}=e.data;this.departments=t}catch(e){throw new Error(e)}}syncWithServer(){this.socketClient=new b.default(this,this.dtableSettings)}updateAccessToken(e){this.dtableSettings.accessToken=e,this.dtableAPI.accessToken=e,this.socketClient.accessToken=e}applyPendingOperationsOnLocal(){if(0===this.pendingOperations.length)return;let e=this.value;this.pendingOperations.forEach(t=>{e=t.apply(e),this.syncOperationOnView(e,t)}),this.value=e}dispatchConnectState(e,t){if("connect"===e){if(this.socketConnected=!0,this.isReconnect)if(this.isReconnect=!1,t.status)if(this.redos=[],this.undos=[],D("Reconnect, local version is "+this.value.version+", remote version is "+t.dtable_version),!this.value||t.dtable_version>this.value.version){D("Reload dtable when reconnect.");let{dtableUuid:e}=this.dtableSettings;this.dtableAPI.getTableData(e).then(e=>{const{username:t,userId:r,userDepartmentIdsMap:n}=this.dtableSettings;let i=this.deserializeDTable(e.data),a=this.value.tables.findIndex(e=>e._id===this.currentTable._id);N.default.selectView(i,a,this.view_id,{username:t,userId:r,userDepartmentIdsMap:n}),this.value=i,this.applyPendingOperationsOnLocal(),this.eventBus.dispatch("local-dtable-changed",this.value),this.startSendOperation()}).catch(e=>{throw new Error(e)})}else this.startSendOperation();else this.eventBus.dispatch("operation-execute-error",t);this.eventBus.dispatch("dtable-connect")}"reconnect"===e&&(this.isReconnect=!0),"disconnect"===e&&this.onSocketDisconnect(),this.eventBus.dispatch(e,t)}onSocketDisconnect(){this.socketConnected=!1,this.isSendingOperation=!1,this.sendingOperation&&(this.pendingOperations.unshift(this.sendingOperation),this.sendingOperation=null)}createOperation(e){return new f.default(e)}getTableOperations(e){return this.dtableAPI.getTableOperations(e)}canUndoOperation(e){const t=e.op_type;if(!c.UNDO_OPERATION_TYPE.includes(e.op_type))return!1;if(t===c.OPERATION_TYPE.DELETE_ROWS){const t=e.deleted_rows;return Array.isArray(t)&&t.length>0}return!0}applyLocalOperation(e){(!(arguments.length>1&&void 0!==arguments[1])||arguments[1])&&(this.redos.length>0&&(this.redos=[]),this.undos.length>10&&(this.undos=this.undos.slice(-10)),this.canUndoOperation(e)&&this.undos.push(e)),D("apply local operation: %O",{operation:e});let t=e.apply(this.value);this.syncOperationOnView(t,e),this.operations.push(e),this.value=t,this.eventBus.dispatch("local-dtable-changed",t);const{isSharedView:r,collectionTableToken:n}=this.dtableSettings;(r||this.customPermissions||n)&&c.IGNORE_OPERATIONS_IN_SHARE_VIEW_MODE.includes(e.op_type)||this.addPendingOperations(e)}addPendingOperations(e){"r"===this.dtableSettings.permission||(this.pendingOperations.push(e),this.startSendOperation())}startSendOperation(){this.pendingOperations.length>=10&&this.eventBus.dispatch("pending-operations-exceed-limit"),this.socketConnected?this.isSendingOperation||0===this.pendingOperations.length||(this.isSendingOperation=!0,this.eventBus.dispatch("dtable-begin-saving"),this.sendNextOperation()):this.eventBus.dispatch("disconnect-operation-tip")}sendNextOperation(){if(0===this.pendingOperations.length||!this.socketConnected)return this.isSendingOperation=!1,void this.eventBus.dispatch("dtable-end-saving");let e=this.pendingOperations.shift();D("send operation: %O",{operation:e}),this.sendingOperation=e,this.socketClient.sendOperation(JSON.stringify(e),this.sendOperationCallback)}executeRemoteOperation(e,t){let r=new f.default(e);if(this.value.version=this.value.version>t?this.value.version:t,r.op_type===c.OPERATION_TYPE.DELETE_TABLE&&r.table_id===this.currentTable._id){let e=this.value.tables,t=e.findIndex(e=>e._id===r.table_id)-1,n=0;this.eventBus.dispatch("dtable-current-table-delete",this.currentTable.name);let i=r.apply(this.value);return this.currentTable=T.default.getTableByIndex(e,t),void setTimeout(()=>{this.eventBus.dispatch("remote-dtable-changed",i,t,n)},2e3)}if(r.op_type===c.OPERATION_TYPE.DELETE_VIEW&&r.table_id===this.currentTable._id){let e=N.default.getViewById(this.currentTable.views,this.view_id);if(r.view_id===e._id){this.eventBus.dispatch("dtable-current-view-delete",e.name);let t=r.apply(this.value);return void setTimeout(()=>{this.eventBus.dispatch("remote-dtable-changed",t)},2e3)}}if(this.customPermissions)if(r.op_type===c.OPERATION_TYPE.INSERT_TABLE){const{table_data:e}=r,t=this.customPermissions.find(t=>e._id===t._id);if(t&&null===t.permission)return}else{const{isValid:e}=T.default.canOpApply(this.value,r);if(!e)return}let n=r.apply(this.value);this.syncOperationOnView(n,r),this.eventBus.dispatch("remote-dtable-changed",n)}onJoinRoom(e){this.eventBus.dispatch("join-room",e)}onLeaveRoom(e){this.eventBus.dispatch("leave-room",e)}onNewNotification(e){this.eventBus.dispatch("new-notification",e)}onNewUIToastNotification(e){this.eventBus.dispatch("ui-toast",e)}onDtableShareChanged(){this.eventBus.dispatch("dtable-share-changed")}executeOperationAtServer(e){return new f.default(e).apply(this.value)}notifyDTableChanged(){this.eventBus.dispatch("local-dtable-changed",this.value)}insertTable(e){let t=c.OPERATION_TYPE.INSERT_TABLE,r=this.dtableSettings.lang,n={table_id:Object(d.generatorTableId)(this.value.tables),table_name:e,lang:r},i=new m.default(n),a=this.createOperation({type:t,table_data:i});return this.applyLocalOperation(a)}renameTable(e,t){let r=c.OPERATION_TYPE.RENAME_TABLE,n=T.default.getTableId(this.value.tables,e),i=this.createOperation({type:r,table_id:n,table_name:t});return this.applyLocalOperation(i)}deleteTable(e){let t=c.OPERATION_TYPE.DELETE_TABLE,r=T.default.getTableId(this.value.tables,e),n=T.default.getTableByIndex(this.value.tables,e),i=n.name;n.rows.length>1e3&&(n={});let a=this.createOperation({type:t,table_id:r,table_name:i,deleted_table:n});return this.applyLocalOperation(a)}moveTable(e,t,r,n){let i=c.OPERATION_TYPE.MOVE_TABLE,a=this.createOperation({type:i,target_table_id:e,move_position:t,moved_table_id:r,moved_table_name:n});return this.applyLocalOperation(a)}duplicateTable(e,t){const{table_data:r,new_linked_table_columns:n}=T.default.generateDuplicateTableInfo(this.value,e,t),i=c.OPERATION_TYPE.DUPLICATE_TABLE,a=this.createOperation({type:i,source_table_id:e,table_data:r,is_duplicate_records:t,new_linked_table_columns:n});return this.applyLocalOperation(a)}modifyTableDescription(e,t){let r=c.OPERATION_TYPE.MODIFY_TABLE_DESCRIPTION,n=T.default.getTableId(this.value.tables,e),i=this.createOperation({type:r,table_id:n,table_description:t});return this.applyLocalOperation(i)}importDataIntoNewTable(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];const n=c.OPERATION_TYPE.INSERT_TABLE,i=this.dtableSettings.lang;let{tables:a}=this.value,o=new m.default({table_id:Object(d.generatorTableId)(a),table_name:e,lang:i}),l={};if(Array.isArray(t)){let e=[];t.forEach((t,r)=>{const{name:n,type:i,data:a}=t,o=0===r?"0000":Object(d.generatorColumnKey)(e),s=new R.default({column_key:o,column_type:i,column_name:n,data:a});l[n]=s,e.push(s)}),o.columns=e}if(Array.isArray(r)){let e=[],{username:t,appName:n}=this.dtableSettings,i=t||n||"",a=i,u=s()().utc().format(M.UTC_FORMAT_DEFAULT),_=u;r.forEach(t=>{let r=new p.default({_creator:i,_last_modifier:a,_ctime:u,_mtime:_});Object.keys(t).forEach(e=>{const n=l[e];if(n){const{type:i,key:a,data:o}=n,{format:l=""}=o||{};if(i===P.CellType.DATE){let n=t[e]||"";n=n.replace("T"," ").replace("Z","");const i=!!(l&&l.indexOf("HH:mm")>-1)?"YYYY-MM-DD HH:mm":"YYYY-MM-DD";r[a]=Object(S.getDateDisplayString)(n,i)}else i===P.CellType.CTIME||i===P.CellType.MTIME?r[a]=s()(t[e]).utc().format(M.UTC_FORMAT_DEFAULT):P.READ_ONLY_COLUMN_TYPE.includes(i)||(r[a]=t[e])}}),e.push(r)}),o.rows=e}let u=this.createOperation({type:n,table_data:o});return this.applyLocalOperation(u)}restoreTable(e){let t=e;t.views=T.default.getOptimizedViews(t),t.columns=T.default.getOptimizedColumns(t);let r=c.OPERATION_TYPE.INSERT_TABLE,n=this.createOperation({type:r,table_data:t});return this.applyLocalOperation(n)}insertTableFromCommonDataset(e,t,r){let n=c.OPERATION_TYPE.INSERT_TABLE,{tables:i}=this.value,a=this.dtableSettings.lang,o=new m.default({table_id:Object(d.generatorTableId)(i),table_name:e,lang:a});o.columns=r,t.forEach(e=>{let t=new p.default,r=C.default.convertRowBack(e,o);t=Object.assign({},t,r),o.rows.push(t),o.id_row_map[t._id]=t});let l=this.createOperation({type:n,table_data:o});return this.applyLocalOperation(l)}getTableByName(e){let t=this.value.tables;return T.default.getTableByName(t,e)}getTableIdByName(e){let t=this.getTableByName(e);return t?t._id:""}updateTableSetting(e,t,r){let n=c.OPERATION_TYPE.UPDATE_TABLE_SETTING,i=T.default.getTableId(this.value.tables,e),a=this.createOperation({type:n,table_id:i,setting_key:t,setting_value:r});return this.applyLocalOperation(a)}deleteTableSetting(e,t){let r=c.OPERATION_TYPE.DELETE_TABLE_SETTING,n=T.default.getTableId(this.value.tables,e),i=this.createOperation({type:r,table_id:n,setting_key:t});return this.applyLocalOperation(i)}modifyDTableDescription(e){let t=c.OPERATION_TYPE.MODIFY_DTABLE_DESCRIPTION,r=this.createOperation({type:t,description:e});return this.applyLocalOperation(r)}modifyTablePermissions(e,t){let r=c.OPERATION_TYPE.UPDATE_TABLE_PERMISSIONS,n=T.default.getTableId(this.value.tables,e),i=this.createOperation({type:r,table_id:n,permissions:t});return this.applyLocalOperation(i)}addViewFolder(e,t){let r=c.OPERATION_TYPE.ADD_VIEW_FOLDER,n=T.default.getTableByIndex(this.value.tables,e),{_id:i,view_structure:a}=n,o=Object(d.generatorViewFolderId)(a.folders),l=new y.default({_id:o,...t}),s=this.createOperation({type:r,table_id:i,view_folder_data:l});return this.applyLocalOperation(s),l}modifyViewFolder(e,t,r){let n=c.OPERATION_TYPE.MODIFY_VIEW_FOLDER,i=T.default.getTableId(this.value.tables,e),a=this.createOperation({type:n,table_id:i,view_folder_id:t,view_folder_data:r});return this.applyLocalOperation(a)}deleteViewFolder(e,t){let r=c.OPERATION_TYPE.DELETE_VIEW_FOLDER,n=T.default.getTableByIndex(this.value.tables,e);const{_id:i,view_structure:a}=n,o=L.default.getFolderById(a,t).name;let l=this.createOperation({type:r,table_id:i,view_folder_id:t,view_folder_name:o});return this.applyLocalOperation(l)}moveViewFolder(e,t,r,n){let i=c.OPERATION_TYPE.MOVE_VIEW_FOLDER,a=T.default.getTableByIndex(this.value.tables,e);const{_id:o,view_structure:l}=a,s=L.default.getFolderById(l,t).name;let u=this.createOperation({type:i,table_id:o,moved_view_folder_id:t,target_view_folder_id:r,move_position:n,moved_view_folder_name:s});return this.applyLocalOperation(u)}insertView(e,t,r){let n=c.OPERATION_TYPE.INSERT_VIEW,i=T.default.getTableByIndex(this.value.tables,e),a=T.default.getTableId(this.value.tables,e),o=Object(d.generatorViewId)(i.views),l=new I.default({_id:o,...t}),s=this.createOperation({type:n,table_id:a,view_data:l,view_folder_id:r});return this.applyLocalOperation(s),l}moveView(e,t,r,n,i,a){let o=c.OPERATION_TYPE.MOVE_VIEW,l=T.default.getTableByIndex(this.value.tables,e),{_id:s,views:u}=l,_=N.default.getViewById(u,t).name,d=this.createOperation({type:o,table_id:s,moved_view_id:t,target_view_id:r,source_view_folder_id:n,target_view_folder_id:i,move_position:a,moved_view_name:_});return this.applyLocalOperation(d)}selectView(e,t){const{username:r,userId:n,userDepartmentIdsMap:i}=this.dtableSettings;this.currentTable=T.default.getTableByIndex(this.value.tables,e),this.view_id=t,N.default.selectView(this.value,e,t,{username:r,userId:n,userDepartmentIdsMap:i}),this.eventBus.dispatch("local-dtable-changed",this.value)}renameView(e,t,r){let n=c.OPERATION_TYPE.RENAME_VIEW,i=T.default.getTableId(this.value.tables,e),a=this.createOperation({type:n,table_id:i,view_id:t,view_name:r});return this.applyLocalOperation(a)}deleteView(e,t,r){let n=c.OPERATION_TYPE.DELETE_VIEW,i=T.default.getTableByIndex(this.value.tables,e),a=T.default.getTableId(this.value.tables,e),o=N.default.getViewById(i.views,t).name,l=this.createOperation({type:n,table_id:a,view_id:t,view_folder_id:r,view_name:o});return this.applyLocalOperation(l)}getCurrentUserViews(e){const t=T.default.getTableByIndex(this.value.tables,e),{username:r}=this.dtableSettings;return N.default.getUserViews(t.views,r)}getCurrentUserFolderViews(e,t){const r=T.default.getTableByIndex(this.value.tables,e),{view_structure:n,views:i}=r,{username:a}=this.dtableSettings;return L.default.getCurrentUserFolderViews(n,i,t,a)}modifyViewLock(e,t,r){let n=c.OPERATION_TYPE.MODIFY_VIEW_LOCK,i=T.default.getTableByIndex(this.value.tables,e)._id,a=this.createOperation({type:n,table_id:i,view_id:t,is_locked:r});return this.applyLocalOperation(a)}modifyViewType(e,t,r){let n=c.OPERATION_TYPE.MODIFY_VIEW_TYPE,i=T.default.getTableByIndex(this.value.tables,e)._id,a=this.createOperation({type:n,table_id:i,view_id:t,view_type:r});return this.applyLocalOperation(a)}changeToNonPrivateView(e,t,r){let n=c.OPERATION_TYPE.CHANGE_TO_NON_PRIVATE_VIEW,i=T.default.getTableByIndex(this.value.tables,e)._id,a=this.createOperation({type:n,table_id:i,view_id:t,private_for:r});return this.applyLocalOperation(a)}getColumn(e,t){const r=T.default.getTableByIndex(this.value.tables,e),{views:n}=r,i=N.default.getViewById(n,this.view_id);return N.default.getColumns(i,r)[t]}getColumnByKey(e,t){let r=T.default.getTableByIndex(this.value.tables,e);return r?r.columns.find(e=>e.key===t):null}getNumberOfColumns(e){return T.default.getTableByIndex(this.value.tables,e).columns.length-1}duplicateColumn(e,t,r,n){let i=c.OPERATION_TYPE.INSERT_COLUMN,a=T.default.getTableByIndex(this.value.tables,e),o=T.default.getTableId(this.value.tables,e),l=a.columns[t].key,s=r.type;const u=r.colorbys||{},_=Object(O.generateNamesMap)(a.columns);let E=Object(O.generateDuplicateName)(r.name,_),p=Object(d.generatorColumnKey)(a.columns);const f=Object(O.generateDuplicateColorbys)(p,u);let m={...r,column_key:p,column_type:s,column_name:E,colorbys:f},y=new R.default(m),I=this.createOperation({type:i,table_id:o,column_key:l,column_data:y,view_id:n});return this.applyLocalOperation(I)}insertColumn(e,t,r,n,i,a){let o=c.OPERATION_TYPE.INSERT_COLUMN,l=T.default.getTableByIndex(this.value.tables,e),s=T.default.getTableId(this.value.tables,e),u=l.columns[n].key,_={creator:"_creator",ctime:"_ctime","last-modifier":"_last_modifier",mtime:"_mtime"},E=_[r]?_[r]:Object(d.generatorColumnKey)(l.columns),O=new R.default({column_key:E,column_type:r,column_name:t,data:i}),p=this.createOperation({type:o,table_id:s,column_key:u,column_data:O,view_id:a});return this.applyLocalOperation(p)}insertColumns(e,t,r){let n=c.OPERATION_TYPE.INSERT_COLUMNS,i=T.default.getTableByIndex(this.value.tables,e),a=T.default.getTableId(this.value.tables,e),o={creator:"_creator",ctime:"_ctime","last-modifier":"_last_modifier",mtime:"_mtime"},l=[];for(;l.length!==t.length;){let e=Object(d.generatorColumnKey)(i.columns);l.includes(e)||l.push(e)}const s=t.map((e,t)=>{let{name:r,type:n,data:i}=e,a=o[n]||l[t];return new R.default({column_key:a,column_type:n,column_name:r,data:i})}),u=this.createOperation({type:n,table_id:a,insert_columns:s,view_id:r});this.applyLocalOperation(u)}deleteColumn(e,t,r,n,i){let a=c.OPERATION_TYPE.DELETE_COLUMN,o=T.default.getTableId(this.value.tables,e);const{key:l}=r,s=T.default.getTableById(this.value.tables,o),{views:u,columns:_}=s;u.forEach(t=>{if(!N.default.isDefaultView(t,_)){let{filters:r,sorts:n,groupbys:i}=t,a=r&&r.findIndex(e=>e.column_key===l);a>-1&&this.deleteFilter(e,a);let o=n&&n.findIndex(e=>e.column_key===l);o>-1&&this.deleteSort(e,o);let s=i&&i.findIndex(e=>e.column_key===l);s>-1&&this.deleteGroup(e,s)}});let d={type:a,table_id:o,column_key:t,old_column:r,upper_column_key:n};i&&(d.linked_column_info=i);let E=this.createOperation(d);return this.applyLocalOperation(E)}renameColumn(e,t,r){let n=c.OPERATION_TYPE.RENAME_COLUMN,i=T.default.getTableId(this.value.tables,e),a=this.getColumnByKey(e,t).name,o=this.createOperation({type:n,table_id:i,column_key:t,new_column_name:r,old_column_name:a});return this.applyLocalOperation(o)}setColumnData(e,t,r){let n=c.OPERATION_TYPE.MODIFY_COLUMN_DATA,i=T.default.getTableId(this.value.tables,e);const a=this.getColumnByKey(e,t);if(!Object(O.canEditMetadata)(a))return;let o=this.createOperation({type:n,table_id:i,column_key:t,column_data:r});return this.applyLocalOperation(o)}deleteOption(e,t,r){const n=this.getColumnByKey(e,t);if(!Object(O.canEditMetadata)(n))return;const{options:i}=n.data||{},a=Array.isArray(i)?i.findIndex(e=>r===e.id):-1;if(a<0)return;let o=[...i];o.splice(a,1);let l={...n.data,options:o};this.setColumnData(e,t,l),this.removeOptionFromTableRows(e,t,r)}removeOptionFromTableRows(e,t,r){let n=c.OPERATION_TYPE.MODIFY_ROWS,i=T.default.getTableByIndex(this.value.tables,e),a=this.getColumnByKey(e,t);if(!a)return;let{_id:o,rows:l}=i,{type:s}=a,{username:u,appName:_}=this.dtableSettings,d=u||_||"",E=[],O={},p={};if(l.forEach(e=>{const n=e._id,i=e[t];if(s===P.CellType.SINGLE_SELECT&&i===r)E.push(n),p[n]={[t]:null},O[n]={[t]:null,_last_modifier:d};else if(s===P.CellType.MULTIPLE_SELECT&&Array.isArray(i)&&i.includes(r)){E.push(n);let e=[...i];1===i.length?e=null:e.splice(e.indexOf(r),1),p[n]={[t]:e},O[n]={[t]:e,_last_modifier:d}}}),0!==E.length){if(E.length<=1e3){let e=this.createOperation({type:n,table_id:o,row_ids:E,updated:O,old_rows:p});return this.applyLocalOperation(e)}this._asyncModifyRows(o,E,O,p)}}resizeColumn(e,t,r){const n=this.getColumnByKey(e,t).width;let i=c.OPERATION_TYPE.RESIZE_COLUMN,a=T.default.getTableId(this.value.tables,e),o=this.createOperation({type:i,table_id:a,column_key:t,new_column_width:r,old_column_width:n});return this.applyLocalOperation(o)}modifyColumnPermission(e,t,r){const n=this.getColumnByKey(e,t),i={permission_type:n.permission_type||"",permitted_users:n.permitted_users||[],permitted_group:n.permitted_group||""};let a=c.OPERATION_TYPE.MODIFY_COLUMN_PERMISSION,o=T.default.getTableId(this.value.tables,e),l=this.createOperation({type:a,table_id:o,column_key:t,new_column_permission:r,old_column_permission:i});return this.applyLocalOperation(l)}modifyColumnMetadataPermission(e,t,r){const n=this.getColumnByKey(e,t),i={edit_metadata_permission_type:n.edit_metadata_permission_type||"",edit_metadata_permitted_users:n.edit_metadata_permitted_users||[],edit_metadata_permitted_group:n.edit_metadata_permitted_group||""};let a=c.OPERATION_TYPE.MODIFY_COLUMN_METADATA_PERMISSION,o=T.default.getTableId(this.value.tables,e),l=this.createOperation({type:a,table_id:o,column_key:t,new_column_permission:r,old_column_permission:i});return this.applyLocalOperation(l)}setColumnFreeze(e,t,r){let n=c.OPERATION_TYPE.FREEZE_COLUMN,i=T.default.getTableId(this.value.tables,e),a=this.createOperation({type:n,table_id:i,column_key:t,frozen:r});return this.applyLocalOperation(a)}setMobileColumnFreeze(e,t,r){let n=c.OPERATION_TYPE.FREEZE_MOBILE_COLUMN,i=T.default.getTableId(this.value.tables,e),a=this.createOperation({type:n,table_id:i,column_key:t,mobile_frozen:r});return this.applyLocalOperation(a)}freezeColumns(e,t){let r=c.OPERATION_TYPE.FREEZE_COLUMNS,n=T.default.getTableId(this.value.tables,e),i=this.createOperation({type:r,table_id:n,freeze_column_keys:t});return this.applyLocalOperation(i)}moveColumn(e,t,r,n,i){let a=c.OPERATION_TYPE.MOVE_COLUMN,o=T.default.getTableId(this.value.tables,e),l=this.createOperation({type:a,table_id:o,move_position:t,moved_column_key:r,target_column_key:n,upper_column_key:i});return this.applyLocalOperation(l)}updateColumnColorRules(e,t,r){let n=c.OPERATION_TYPE.UPDATE_COLUMN_COLORBYS,i=this.createOperation({type:n,table_id:e,column_key:t,colorbys:r});return this.applyLocalOperation(i)}hideColumn(e,t){let r=c.OPERATION_TYPE.MODIFY_HIDDEN_COLUMNS,n=T.default.getTableByIndex(this.value.tables,e),i=T.default.getTableId(this.value.tables,e),a=this.view_id,o=N.default.getViewById(n.views,a),l=o.hidden_columns?o.hidden_columns.slice(0):[];l.push(t);let s=this.createOperation({type:r,table_id:i,view_id:a,hidden_columns:l});return this.applyLocalOperation(s)}showColumn(e,t){let r=c.OPERATION_TYPE.MODIFY_HIDDEN_COLUMNS,n=T.default.getTableByIndex(this.value.tables,e),i=T.default.getTableId(this.value.tables,e),a=this.view_id,o=N.default.getViewById(n.views,a),l=o.hidden_columns?o.hidden_columns.slice(0):[];l=l?l.filter(e=>e!==t):[];let s=this.createOperation({type:r,table_id:i,view_id:a,hidden_columns:l});return this.applyLocalOperation(s)}hideAllColumns(e){let t=c.OPERATION_TYPE.MODIFY_HIDDEN_COLUMNS,r=T.default.getTableByIndex(this.value.tables,e),n=T.default.getTableId(this.value.tables,e),i=this.view_id,a=r.columns?r.columns:[],o=[];a.forEach((e,t)=>{t>0&&o.push(e.key)});let l=this.createOperation({type:t,table_id:n,view_id:i,hidden_columns:o});return this.applyLocalOperation(l)}showAllColumns(e){let t=c.OPERATION_TYPE.MODIFY_HIDDEN_COLUMNS,r=T.default.getTableId(this.value.tables,e),n=this.view_id,i=this.createOperation({type:t,table_id:r,view_id:n,hidden_columns:[]});return this.applyLocalOperation(i)}modifyColumnType(e,t,r,n){let i=c.OPERATION_TYPE.MODIFY_COLUMN_TYPE,a=T.default.getTableId(this.value.tables,e);const o=T.default.getTableByIndex(this.value.tables,e),l=this.getColumnByKey(e,t),s=C.default.getRowsDataByColumnKey(o.rows,t),{newColumn:u,newRowsData:_}=Object(O.updateColumnAndColumnRowsData)(o,t,r,l,s,n);let d=this.createOperation({type:i,table_id:a,column_key:t,new_column:u,old_column:l,new_rows_data:_,old_rows_data:s});return this.applyLocalOperation(d)}restoreColumnType(e,t,r,n,i,a){let o=c.OPERATION_TYPE.RESTORE_COLUMN_TYPE,l=T.default.getTableId(this.value.tables,e),s=this.createOperation({type:o,table_id:l,column_key:t,new_column:r,old_column:n,new_rows_data:i,old_rows_data:a});return this.applyLocalOperation(s)}getTableColumnsByName(e){let t=this.getTableByName(e);return t?t.columns:[]}getRow(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:this.view_id,i=T.default.getTableByIndex(this.value.tables,e);const{views:a}=i,o=N.default.getViewById(a,n);return N.default.getRow(o,i,t,r)}insertRow(e,t,r,n,i){const{tables:a,links:o}=this.value,l=T.default.getTableId(a,e);let s={};return Array.isArray(i)&&i.forEach(e=>{const{link_id:r,table_id:n,other_table_id:i}=e.data||{},a=E.default.getLinkTableID(l,n,i),u=E.default.getLinkedTableID(l,n,i),_=E.default.getLinkCellValue(o,r,a,u,t);s[r]={link_table_id:a,linked_table_id:u,linked_rows_ids:_}}),this.insertRowWithLinksData(e,t,r,n,s)}insertRowWithLinksData(e,t,r,n,i){const{tables:a,collaborators:o}=this.value,l=T.default.getTableByIndex(a,e);if(!T.default.canAddRows(l))return;const s=c.OPERATION_TYPE.INSERT_ROW,u=T.default.getTableId(a,e),{username:_,appName:d,userId:E,userDepartmentIdsMap:O}=this.dtableSettings,R=_||d||"",f=R,m=T.default.getRowDefaultData(l,o,{username:_,userId:E,userDepartmentIdsMap:O}),y=Object.assign({},m,n),I=Object.assign(new p.default,y,{_creator:R,_last_modifier:f}),h=i&&Object.keys(i);let A=null;h&&h.length>0&&(A={},h.forEach(e=>{const t=i[e],{link_table_id:r,linked_table_id:n,linked_rows_ids:a}=t;if(r&&n&&Array.isArray(a)&&a.length>0){const{link_table_id:r,linked_table_id:n}=t;A[e]={link_table_id:r,linked_table_id:n,id_linked_rows_ids:{[I._id]:a}}}}));const b=this.createOperation({type:s,table_id:u,row_id:t,row_insert_position:r,row_data:I,links_data:A});return this.applyLocalOperation(b),I}restoreRow(e,t,r,n,i){let a=c.OPERATION_TYPE.INSERT_ROW;const{tables:o}=this.value,l=T.default.getTableById(o,e);if(!T.default.canAddRows(l))return;let s=this.createOperation({type:a,table_id:e,row_id:t,row_insert_position:r,row_data:n,links_data:i});return this.applyLocalOperation(s),n}restoreRows(e,t,r,n,i){const a=T.default.getTableByIndex(this.value.tables,e);T.default.canAddRows(a)&&this._insertRows(e,t,r,n,i)}insertRows(e,t,r,n,i){if(!Array.isArray(n)||0===n.length)return;const{tables:a,links:o,collaborators:l}=this.value,s=T.default.getTableByIndex(a,e);if(!T.default.canAddRows(s))return;const u=T.default.getTableId(a,e),{username:_,appName:c,userId:d,userDepartmentIdsMap:O}=this.dtableSettings,R=_||c||"",f=R,m=T.default.getRowDefaultData(s,l,{username:_,userId:d,userDepartmentIdsMap:O}),y=n.map(e=>Object.assign(new p.default,m,e,{_creator:R,_last_modifier:f})),I=t[t.length-1];let h=y.slice(0,y.length-1).map(e=>e._id);h.unshift(I);let A={};if(Array.isArray(i)&&i.length>0&&o){const e=E.default.getRowsLinksData(t,u,i,o);y.forEach((r,n)=>{const a=t[n];a&&i.forEach(t=>{const{link_id:n}=t.data||{},i=e[n],o=i&&i.id_linked_rows_ids[a];o&&(A[n]?A[n].id_linked_rows_ids[r._id]=o:A[n]={...i,id_linked_rows_ids:{[r._id]:o}})})})}this._insertRows(e,h,r,y,A)}_insertRows(e,t,r,n,i){const a=c.OPERATION_TYPE.INSERT_ROWS,o=T.default.getTableId(this.value.tables,e);if(t.length<=1e3){let e=this.createOperation({type:a,table_id:o,row_ids:t,row_insert_position:r,row_datas:n,links_data:i});return this.applyLocalOperation(e),n}return this._asyncInsertRows(o,t,r,n,i),n}appendRows(e,t){let{useDefaultValue:r=!1}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const{tables:n,collaborators:i}=this.value,a=T.default.getTableByIndex(n,e),o=T.default.getTableId(n,e);if(!T.default.canAddRows(a))return;let l=c.OPERATION_TYPE.APPEND_ROWS,{username:u,appName:_,userId:d,userDepartmentIdsMap:E}=this.dtableSettings,O=u||_||"",R=O,f=s()().utc().format(M.UTC_FORMAT_DEFAULT),m={_creator:O,_last_modifier:R,_ctime:f,_mtime:f},y=r?T.default.getRowDefaultData(a,i,{username:u,userId:d,userDepartmentIdsMap:E}):{};if((t=t.map(e=>Object.assign({},new p.default,y,e,{...m}))).length<=1e3){let e=this.createOperation({type:l,table_id:o,row_datas:t});return this.applyLocalOperation(e)}return new Promise(e=>{setTimeout(()=>{this._asyncAppendRows(o,t,e)},0)})}deleteRow(e,t,r,n){let i=c.OPERATION_TYPE.DELETE_ROW,{tables:a,links:o}=this.value,l=T.default.getTableByIndex(a,e);const{_id:s,columns:u}=l;if(!T.default.canDeleteRows(l))return;let _=T.default.getRowById(l,t);if(!_||_._locked)return;let d=u.filter(e=>e.type===P.CellType.LINK),O=E.default.getRowsLinksData([t],s,d,o),p=this.createOperation({type:i,table_id:s,row_id:t,deleted_row:r,upper_row_id:n,deleted_links_data:O});return this.applyLocalOperation(p)}deleteRowById(e,t){let r=c.OPERATION_TYPE.DELETE_ROW,{tables:n,links:i}=this.value,a=n.find(t=>t._id===e);if(!T.default.canDeleteRows(a))return;let o=T.default.getRowById(a,t);if(!o||o._locked)return;let{rows:l,columns:s}=a,u=l.findIndex(e=>e._id===t),_=u-1>-1?l[u-1]._id:null,d=s.filter(e=>e.type===P.CellType.LINK),O=E.default.getRowsLinksData([t],e,d,i),p=this.createOperation({type:r,table_id:e,row_id:t,deleted_row:o,upper_row_id:_,deleted_links_data:O});return this.applyLocalOperation(p)}deleteRowsByIds(e,t){let r=c.OPERATION_TYPE.DELETE_ROWS,{tables:n,links:i}=this.value,a=T.default.getTableById(n,e);if(!T.default.canDeleteRows(a))return;let o=[],l=[],s=[];if(t.forEach(e=>{let t=T.default.getRowById(a,e);if(t&&!t._locked){o.push(e),l.push(t);let r=a.rows.findIndex(t=>t._id===e),n=r-1>-1?a.rows[r-1]._id:null;s.push(n)}}),0===o.length)return;const u=o.length,_=u<=U.RECORD_DELETED_ROWS_LIMIT;if(u<=5e3){let t=[],n=[],u=null;if(_){t=l,n=s;const r=a.columns.filter(e=>e.type===P.CellType.LINK);u=E.default.getRowsLinksData(o,e,r,i)}let c=this.createOperation({type:r,table_id:e,row_ids:o,deleted_rows:t,upper_row_ids:n,deleted_links_data:u});return this.applyLocalOperation(c)}return this._asyncDeleteRows(e,o),null}deleteRows(e,t,r,n){let i=c.OPERATION_TYPE.DELETE_ROWS,{tables:a,links:o}=this.value,l=T.default.getTableByIndex(a,e);if(!T.default.canDeleteRows(l))return;let s=[],u=[],_=[];if(t.forEach((e,t)=>{let i=T.default.getRowById(l,e);i&&!i._locked&&(s.push(e),u.push(r[t]),_.push(n[t]))}),0===s.length)return;const d=s.length,O=d<=U.RECORD_DELETED_ROWS_LIMIT,p=l._id;if(d<=5e3){let e=[],t=[],r=null;if(O){e=u,t=_;const n=l.columns.filter(e=>e.type===P.CellType.LINK);r=E.default.getRowsLinksData(s,p,n,o)}let n=this.createOperation({type:i,table_id:p,row_ids:s,deleted_rows:e,upper_row_ids:t,deleted_links_data:r});return this.applyLocalOperation(n)}return this._asyncDeleteRows(p,s),null}moveRows(e,t,r,n,i){let a=c.OPERATION_TYPE.MOVE_ROWS,o=T.default.getTableId(this.value.tables,e),l=this.createOperation({type:a,table_id:o,target_ids:t,move_position:r,moved_rows:n,upper_row_ids:i});return this.applyLocalOperation(l)}moveGroupRows(e,t,r,n,i,a,o,l){let s=c.OPERATION_TYPE.MOVE_GROUP_ROWS,u=T.default.getTableId(this.value.tables,e),_=this.createOperation({type:s,table_id:u,target_ids:t,move_position:r,moved_rows:n,upper_row_ids:i,updated:a,old_rows:o,groupby_columns:l});return this.applyLocalOperation(_)}modifyRow(e,t,r,n){for(let e in r)if("_id"===e)throw new Error("It is forbidden to modify the value which key value is _id, please check the program and modify the error.");let i=T.default.getTableByIndex(this.value.tables,e);if(!T.default.canEditRows(i))return;let a=T.default.getRowById(i,t);if(!a||a._locked)return;if(delete r._creator,delete r._ctime,delete r._last_modifier,delete r._mtime,1===Object.keys(r).length&&"_participants"===Object.keys(r)[0])r=Object.assign({},r);else{let{username:e,appName:t}=this.dtableSettings,n=e||t||"";r=Object.assign({},r,{_last_modifier:n})}let o=c.OPERATION_TYPE.MODIFY_ROW,l=this.createOperation({type:o,table_id:i._id,row_id:t,updated:r,old_row:n});return this.applyLocalOperation(l)}modifyRows(e,t,r,n){let i=c.OPERATION_TYPE.MODIFY_ROWS,a=T.default.getTableByIndex(this.value.tables,e);if(!T.default.canEditRows(a))return;let o=t.filter(e=>{let t=T.default.getRowById(a,e);return t&&!t._locked});if(0===o.length)return;let{username:l,appName:s}=this.dtableSettings,u=l||s||"";for(let e in r)delete r[e]._creator,delete r[e]._ctime,delete r[e]._last_modifier,delete r[e]._mtime,r[e]=Object.assign({},r[e],{_last_modifier:u});const _=a._id;if(o.length<=1e3){let e=this.createOperation({type:i,table_id:_,row_ids:o,updated:r,old_rows:n});return this.applyLocalOperation(e)}return this._asyncModifyRows(_,o,r,n),null}modifyRowLock(e,t,r){let n=c.OPERATION_TYPE.MODIFY_ROW_LOCK,i=r?this.dtableSettings.username:null,a=this.createOperation({type:n,table_id:e,row_id:t,is_locked:r,locked_by:i});return this.applyLocalOperation(a)}lockRows(e,t){let r=c.OPERATION_TYPE.LOCK_ROWS,n=T.default.getTableId(this.value.tables,e),i=this.createOperation({type:r,table_id:n,row_ids:t,locked_by:this.dtableSettings.username});return this.applyLocalOperation(i)}unlockRows(e,t){let r=c.OPERATION_TYPE.UNLOCK_ROWS,n=T.default.getTableId(this.value.tables,e),i=this.createOperation({type:r,table_id:n,row_ids:t});return this.applyLocalOperation(i)}getRowsByID(e,t){const r=T.default.getTableById(this.value.tables,e);return T.default.getRowsByIds(r,t)}getTableRowsByName(e){let t=this.getTableByName(e);return t?t.rows:[]}getViewRowsByNames(e,t){const r=this.getTableByName(e);if(!r)return null;const n=N.default.getViewByName(r.views,t);if(!n)return null;return this.getViewRows(r._id,n._id)}getViewRows(e,t){const r=this.value.tables,n=T.default.getTableById(r,e),{views:i}=n,a=N.default.getViewById(i,t),{username:o,userId:l,userDepartmentIdsMap:s}=this.dtableSettings;return N.default.getViewRows(a,n,this.value,o,l,s)}getViewRowsWithoutRecalculation(e,t){const r=this.value.tables,{username:n,userId:i,userDepartmentIdsMap:a}=this.dtableSettings,o=T.default.getTableById(r,e),{views:l}=o,s=N.default.getViewById(l,t);return N.default.getViewRowsWithoutRecalculation(s,o,this.value,n,i,a)}modifyRowColor(e,t){let r=c.OPERATION_TYPE.MODIFY_ROW_COLOR,n=T.default.getTableId(this.value.tables,e),i=this.view_id,a=this.createOperation({type:r,table_id:n,view_id:i,colorbys:t});return this.applyLocalOperation(a)}modifyRowHeight(e,t){let r=c.OPERATION_TYPE.MODIFY_ROW_HEIGHT,n=T.default.getTableId(this.value.tables,e),i=this.view_id,a=this.createOperation({type:r,table_id:n,view_id:i,row_height:t});return this.applyLocalOperation(a)}addLinkColumn(e,t,r,n,i,a){const o=this.value.links||[],l=Object(d.generatorLinkId)(o),s=Object.assign({},i,{link_id:l}),u=T.default.getTableByIndex(this.value.tables,t),_=P.CellType.LINK,E=Object(d.generatorColumnKey)(u.columns),O=new R.default({column_key:E,column_type:_,column_name:e,data:s}),p=u._id,f={type:c.OPERATION_TYPE.INSERT_COLUMN,table_id:p,view_id:a,column_key:u.columns[n].key,column_data:O};if(t===r){const e=this.createOperation(f);return this.applyLocalOperation(e)}const m=T.default.getTableByIndex(this.value.tables,r),y=m.columns||[],I=Object(d.generatorColumnKey)(y),h=Object(d.generatorLinkedColumnName)(u.name,y),A=u.columns[0].key,b=Object.assign({},s,{display_column_key:A,is_multiple:!0,is_row_from_view:!1,other_view_id:""}),L=new R.default({column_key:I,column_type:P.CellType.LINK,column_name:h,data:b}),N=y.length>0?y[y.length-1].key:null,C={table_id:m._id,column_key:N,column_data:L},g=this.createOperation(Object.assign({},f,{linked_column_info:C}));return this.applyLocalOperation(g)}addLink(e,t,r,n,i){const a=E.default.transLinkOptions(t,r,n,i);let o=this.createOperation(Object.assign(a,{link_id:e,type:c.OPERATION_TYPE.ADD_LINK}));this.applyLocalOperation(o)}removeLink(e,t,r,n,i){const a=E.default.transLinkOptions(t,r,n,i);let o=this.createOperation(Object.assign(a,{link_id:e,type:c.OPERATION_TYPE.REMOVE_LINK}));return this.applyLocalOperation(o)}updateLinks(e,t,r,n,i,a){const o=c.OPERATION_TYPE.UPDATE_LINKS;let l=this.createOperation({link_id:e,table_id:t,other_table_id:r,row_id:n,other_rows_ids:i,old_other_rows_ids:a,type:o});return this.applyLocalOperation(l)}updateRowsLinks(e,t,r,n,i,a){const o=c.OPERATION_TYPE.UPDATE_ROWS_LINKS;let l=this.createOperation({link_id:e,table_id:t,other_table_id:r,row_id_list:n,other_rows_ids_map:i,old_other_rows_ids_map:a,type:o});return this.applyLocalOperation(l)}getLinkCellValue(e,t,r,n){const i=this.value.links;return E.default.getLinkCellValue(i,e,t,r,n)}addGroup(e,t){let r=c.OPERATION_TYPE.MODIFY_GROUPBYS,n=T.default.getTableByIndex(this.value.tables,e),a=T.default.getTableId(this.value.tables,e),o=this.view_id,l=N.default.getViewById(n.views,o),s=l.groupbys?i()(l.groupbys):[];s.push(t);let u=this.createOperation({type:r,table_id:a,view_id:o,groupbys:s});return this.applyLocalOperation(u)}updateGroup(e,t,r){let n=c.OPERATION_TYPE.MODIFY_GROUPBYS,a=T.default.getTableByIndex(this.value.tables,e),o=T.default.getTableId(this.value.tables,e),l=this.view_id,s=N.default.getViewById(a.views,l),u=i()(s.groupbys),_=u[t];_=Object.assign({},_,r),u[t]=_;let d=this.createOperation({type:n,table_id:o,view_id:l,groupbys:u});return this.applyLocalOperation(d)}updateGroups(e,t){let r=c.OPERATION_TYPE.MODIFY_GROUPBYS,n=this.value.tables,i=T.default.getTableId(n,e),a=this.view_id,o=this.createOperation({type:r,table_id:i,view_id:a,groupbys:t});return this.applyLocalOperation(o)}deleteGroup(e,t){let r=c.OPERATION_TYPE.MODIFY_GROUPBYS,n=T.default.getTableByIndex(this.value.tables,e),a=T.default.getTableId(this.value.tables,e),o=this.view_id,l=N.default.getViewById(n.views,o),s=i()(l.groupbys);s.splice(t,1);let u=this.createOperation({type:r,table_id:a,view_id:o,groupbys:s});return this.applyLocalOperation(u)}addFilter(e,t){let r=c.OPERATION_TYPE.MODIFY_FILTERS,n=T.default.getTableByIndex(this.value.tables,e),a=T.default.getTableId(this.value.tables,e),o=this.view_id,l=N.default.getViewById(n.views,o),s=l.filter_conjunction;s||(s=P.FILTER_CONJUNCTION_TYPE.AND);let u=l.filters?i()(l.filters):[];u.push(t);let _=this.createOperation({type:r,table_id:a,view_id:o,filter_conjunction:s,filters:u});return this.applyLocalOperation(_)}updateFilter(e,t,r){let n=c.OPERATION_TYPE.MODIFY_FILTERS,a=T.default.getTableByIndex(this.value.tables,e),o=T.default.getTableId(this.value.tables,e),l=this.view_id,s=N.default.getViewById(a.views,l),u=s.filter_conjunction,_=i()(s.filters);_[t]=Object.assign({},_[t],r);let d=this.createOperation({type:n,table_id:o,view_id:l,filter_conjunction:u,filters:_});return this.applyLocalOperation(d)}updateFilters(e,t,r){let n=c.OPERATION_TYPE.MODIFY_FILTERS,i=this.value.tables,a=T.default.getTableId(i,e),o=this.view_id,l=this.createOperation({type:n,table_id:a,view_id:o,filter_conjunction:r,filters:t});return this.applyLocalOperation(l)}deleteFilter(e,t){let r=c.OPERATION_TYPE.MODIFY_FILTERS,n=T.default.getTableByIndex(this.value.tables,e),a=T.default.getTableId(this.value.tables,e),o=this.view_id,l=N.default.getViewById(n.views,o),s=l.filter_conjunction,u=i()(l.filters);u.splice(t,1),0===u.length&&(s="");let _=this.createOperation({type:r,table_id:a,view_id:o,filter_conjunction:s,filters:u});return this.applyLocalOperation(_)}updateFilterConjunction(e,t){let r=c.OPERATION_TYPE.MODIFY_FILTERS,n=T.default.getTableByIndex(this.value.tables,e),i=T.default.getTableId(this.value.tables,e),a=this.view_id,o=t,l=N.default.getViewById(n.views,a).filters,s=this.createOperation({type:r,table_id:i,view_id:a,filter_conjunction:o,filters:l});return this.applyLocalOperation(s)}addSort(e,t){let r=c.OPERATION_TYPE.MODIFY_SORTS,n=T.default.getTableByIndex(this.value.tables,e),i=T.default.getTableId(this.value.tables,e),a=this.view_id,o=N.default.getViewById(n.views,a).sorts;o instanceof Array?o.push(t):o=[t];let l=this.createOperation({type:r,table_id:i,view_id:a,sort:t,sorts:o});return this.applyLocalOperation(l)}updateSort(e,t,r){let n=c.OPERATION_TYPE.MODIFY_SORTS,i=T.default.getTableByIndex(this.value.tables,e),a=T.default.getTableId(this.value.tables,e),o=this.view_id,l=N.default.getViewById(i.views,o).sorts;l[r]=t;let s=this.createOperation({type:n,table_id:a,view_id:o,sorts:l});return this.applyLocalOperation(s)}updateSorts(e,t){let r=c.OPERATION_TYPE.MODIFY_SORTS,n=this.value.tables,i=T.default.getTableId(n,e),a=this.view_id,o=this.createOperation({type:r,table_id:i,view_id:a,sorts:t});return this.applyLocalOperation(o)}deleteSort(e,t){let r=c.OPERATION_TYPE.MODIFY_SORTS,n=T.default.getTableByIndex(this.value.tables,e),i=T.default.getTableId(this.value.tables,e),a=this.view_id,o=N.default.getViewById(n.views,a);o.sorts.splice(t,1);const l=o.sorts;let s=this.createOperation({type:r,table_id:i,view_id:a,sorts:l});return this.applyLocalOperation(s)}addScript(e){let t=c.OPERATION_TYPE.ADD_SCRIPT,r=this.createOperation({type:t,script_name:e.name,url:e.url,script_id:e._id,script_type:e.type});return this.applyLocalOperation(r)}deleteScript(e){let t=c.OPERATION_TYPE.DELETE_SCRIPT,r=this.createOperation({type:t,script_id:e});return this.applyLocalOperation(r)}renameScript(e,t){let r=c.OPERATION_TYPE.RENAME_SCRIPT,n=this.createOperation({type:r,script_id:e,new_script_name:t});return this.applyLocalOperation(n)}addPlugin(e){let t=c.OPERATION_TYPE.ADD_PLUGIN,r=this.createOperation({type:t,plugin_name:e});return this.applyLocalOperation(r)}deletePlugin(e){let t=c.OPERATION_TYPE.DELETE_PLUGIN,r=this.createOperation({type:t,plugin_name:e});return this.applyLocalOperation(r)}updatePluginSettings(e,t){let r=c.OPERATION_TYPE.UPDATE_PLUGIN_SETTINGS,n=this.createOperation({type:r,plugin_name:e,plugin_settings:t});return this.applyLocalOperation(n)}deletePluginSettings(e){let t=c.OPERATION_TYPE.DELETE_PLUGIN_SETTINGS,r=this.createOperation({type:t,plugin_name:e});return this.applyLocalOperation(r)}updateToolbarPlugin(e){let t={setting_key:"extra_toolbar_items",setting_value:e},r=this.createOperation(Object.assign(t,{type:c.OPERATION_TYPE.UPDATE_SETTING}));this.applyLocalOperation(r)}getAllFormulaColumns(e){return N.default.getAllFormulaColumns(e.columns)}getTableFormulaResults(e,t,r){const{username:n,userId:i,userDepartmentIdsMap:a}=this.dtableSettings;return N.default.getTableFormulaResults(e,t,r,null,{userId:i,username:n,userDepartmentIdsMap:a})}addStatistics(e){let t=c.OPERATION_TYPE.ADD_STATISTICS,r=this.value.statistics,n=Object(d.generatorStatId)(r);e._id=n;let i=this.createOperation({type:t,stat_item:e});return this.applyLocalOperation(i)}deleteStatistics(e,t){let r=c.OPERATION_TYPE.DELETE_STATISTICS,n=this.createOperation({type:r,stat_id:e,stat_name:t});return this.applyLocalOperation(n)}editStatistics(e,t){let r=c.OPERATION_TYPE.EDIT_STATISTICS;t._id=e;let n=this.createOperation({type:r,stat_id:e,stat_item:t});return this.applyLocalOperation(n)}updateStatisticsList(e){let t=c.OPERATION_TYPE.UPDATE_STATISTICS_LIST,r=this.createOperation({type:t,statistics:e});return this.applyLocalOperation(r)}addDataProcess(e){let t=c.OPERATION_TYPE.ADD_DATA_PROCESS;e.id=Object(d.generatorDataProcessId)(this.value.data_process);let r=this.createOperation({type:t,options:e});return this.applyLocalOperation(r)}deleteDataProcess(e){let t=c.OPERATION_TYPE.DELETE_DATA_PROCESS,r=this.createOperation({type:t,data_process_id:e});return this.applyLocalOperation(r)}modifyDataProcess(e,t){let r=c.OPERATION_TYPE.MODIFY_DATA_PROCESS;e.id=t;let n=this.createOperation({type:r,options:e,data_process_id:t});return this.applyLocalOperation(n)}getSelectOptionName(e,t){const r=e.data&&e.data.options;return Object(S.getOptionName)(r,t)}updateSummaryConfig(e,t,r){let n=c.OPERATION_TYPE.UPDATE_SUMMARY_CONFIG,i=T.default.getTableId(this.value.tables,e),a=this.createOperation({type:n,table_id:i,column_key:t,summary_method:r});return this.applyLocalOperation(a)}modifyHeaderLock(e,t){let r=c.OPERATION_TYPE.MODIFY_HEADER_LOCK,n=T.default.getTableId(this.value.tables,e),i=this.createOperation({type:r,table_id:n,is_header_locked:t});return this.applyLocalOperation(i)}modifyHeaderSettings(e,t){let r=c.OPERATION_TYPE.MODIFY_HEADER_SETTINGS,n=T.default.getTableId(this.value.tables,e),i=this.createOperation({type:r,table_id:n,header_settings:t});return this.applyLocalOperation(i)}modifySettings(e,t){let r=c.OPERATION_TYPE.UPDATE_SETTING,n=this.createOperation({type:r,setting_key:e,setting_value:t});return this.applyLocalOperation(n)}modifyColumnDescription(e,t,r){const n=c.OPERATION_TYPE.UPDATE_COLUMN_DESCRIPTION,i=T.default.getTableId(this.value.tables,e),a=this.createOperation({type:n,table_id:i,column_key:t,column_description:r});return this.applyLocalOperation(a)}}},function(e,t,r){"use strict";r.r(t);t.default=class{constructor(e){this._id=e._id,this.name=e.name,this.view_ids=e.view_ids||[]}}},function(e,t,r){"use strict";r.r(t);t.default=class{constructor(){this.subscribers={}}subscribe(e,t){this.subscribers[e]||(this.subscribers[e]=[]);const r=this.subscribers[e];return r.push(t),()=>{const e=r.indexOf(t);e>-1&&r.splice(e,1)}}dispatch(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];const i=this.subscribers[e];Array.isArray(i)&&i.forEach(e=>e(...r))}}},function(e,t,r){"use strict";r.r(t);var n=r(156),i=r.n(n),a=r(237),o=r.n(a);const l=i()("dtable:socket-client");t.default=class{constructor(e,t){const{dtableUuid:r,dtableSocket:n,accessToken:i,lang:a}=t;this.dtableUuid=r,this.tableStore=e,this.accessToken=i,this.socket=o()(n,{reconnect:!0,query:{dtable_uuid:r,lang:a}}),this.socket.on("connect",()=>{this.onConnected()}),this.socket.on("reconnect",e=>{this.onReconnect(e)}),this.socket.on("reconnecting",e=>{this.onReconnecting(e)}),this.socket.on("disconnect",e=>{this.onDisconnect(e)}),this.socket.on("join-room",e=>this.onJoinRoom(e)),this.socket.on("leave-room",e=>this.onLeaveRoom(e)),this.socket.on("update-dtable",(e,t)=>this.onUpdateDtable(e,t)),this.socket.on("new-notification",e=>this.onNewNotification(e)),this.socket.on("ui-toast",e=>this.onNewUIToastNotification(e)),this.socket.on("dtable-share-changed",()=>this.onDtableShareChanged()),"undefined"!=typeof window&&(window.onbeforeunload=()=>this.close()),this.retry_on_join_room=0}connect(){this.socket.open()}close(){this.socket.emit("leave room")}onConnected(){l("connected to server"),this.socket.emit("join-room",this.dtableUuid,this.accessToken,e=>{if(e.status)this.retry_on_join_room=0,l("join room success."),this.tableStore.dispatchConnectState("connect",e);else{if(l("join room failed."),0===this.retry_on_join_room)return void(this.retry_on_join_room=1);this.socket.disconnect(),this.tableStore.dispatchConnectState("connect-error",e)}})}onReconnect(e){l("reconnect."),this.tableStore.dispatchConnectState("reconnect")}onReconnecting(e){l("reconnecting.",e),this.retry_on_join_room=0,this.tableStore.dispatchConnectState("reconnecting",e)}onJoinRoom(e){l("user ".concat(e," has joined")),this.tableStore.onJoinRoom(e)}onLeaveRoom(e){l("user ".concat(e," left")),this.tableStore.onLeaveRoom(e)}onUpdateDtable(e,t){l("=================================="),l("message from server: %s"+e.toString()),l("=================================="),this.tableStore.executeRemoteOperation(JSON.parse(e),t)}onNewNotification(e){l("Received new notification from server: %s"+e.toString()),this.tableStore.onNewNotification(JSON.parse(e))}onNewUIToastNotification(e){l("Received new toast notification from server: %s"+e.toString()),this.tableStore.onNewUIToastNotification(JSON.parse(e))}onDtableShareChanged(){l("Received dtable share signal from server"),this.tableStore.onDtableShareChanged()}onDisconnect(e){l("disconnect message: %s",e),this.tableStore.dispatchConnectState("disconnect"),"io server disconnect"===e&&setTimeout(()=>{this.connect()},3e3)}sendOperation(e,t){let r=this.dtableUuid;this.socket.emit("update-dtable",r,e,(e,r)=>{r?t&&t(e,JSON.parse(r)):t&&t(e)})}}},function(e,t){e.exports=r}])}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dtable-store",
3
- "version": "4.4.4",
3
+ "version": "4.4.5",
4
4
  "author": "seafile",
5
5
  "private": false,
6
6
  "dependencies": {