-
Notifications
You must be signed in to change notification settings - Fork 216
/
Copy pathdeep-diff.min.js
1 lines (1 loc) · 5.81 KB
/
deep-diff.min.js
1
!function(e,t){var n=function(e){var l=["N","E","A","D"];function t(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}function n(e,t){Object.defineProperty(this,"kind",{value:e,enumerable:!0}),t&&t.length&&Object.defineProperty(this,"path",{value:t,enumerable:!0})}function k(e,t,n){k.super_.call(this,"E",e),Object.defineProperty(this,"lhs",{value:t,enumerable:!0}),Object.defineProperty(this,"rhs",{value:n,enumerable:!0})}function O(e,t){O.super_.call(this,"N",e),Object.defineProperty(this,"rhs",{value:t,enumerable:!0})}function w(e,t){w.super_.call(this,"D",e),Object.defineProperty(this,"lhs",{value:t,enumerable:!0})}function x(e,t,n){x.super_.call(this,"A",e),Object.defineProperty(this,"index",{value:t,enumerable:!0}),Object.defineProperty(this,"item",{value:n,enumerable:!0})}function f(e,t,n){var r=e.slice((n||t)+1||e.length);return e.length=t<0?e.length+t:t,e.push.apply(e,r),e}function P(e){var t=typeof e;return"object"!==t?t:e===Math?"math":null===e?"null":Array.isArray(e)?"array":"[object Date]"===Object.prototype.toString.call(e)?"date":"function"==typeof e.toString&&/^\/.*\//.test(e.toString())?"regexp":"object"}function u(e){var t=0;if(0===e.length)return t;for(var n=0;n<e.length;n++){var r=e.charCodeAt(n);t=(t<<5)-t+r,t&=t}return t}function A(e){var t=0,n=P(e);if("array"===n){e.forEach(function(e){t+=A(e)});var r="[type: array, hash: "+t+"]";return t+u(r)}if("object"===n){for(var a in e)if(e.hasOwnProperty(a)){var i="[ type: object, key: "+a+", value hash: "+A(e[a])+"]";t+=u(i)}return t}var l="[ type: "+n+" ; value: "+e+"]";return t+u(l)}function N(e,t,n,r,a,i,l,f,u){var o=function(){return u&&n.length===u};n=n||[],l=l||[];var h=(a=a||[]).slice(0);if(null!=i){if(r){if("function"==typeof r&&r(h,i))return;if("object"==typeof r){if(r.prefilter&&r.prefilter(h,i))return;if(r.normalize){var c=r.normalize(h,i,e,t);c&&(e=c[0],t=c[1])}}}h.push(i)}"regexp"===P(e)&&"regexp"===P(t)&&(e=e.toString(),t=t.toString());var s,p,d,b,v=typeof e,g=typeof t,y="undefined"!==v||l&&0<l.length&&l[l.length-1].lhs&&Object.getOwnPropertyDescriptor(l[l.length-1].lhs,i),m="undefined"!==g||l&&0<l.length&&l[l.length-1].rhs&&Object.getOwnPropertyDescriptor(l[l.length-1].rhs,i);if(!y&&m)n.push(new O(h,t));else if(!m&&y)n.push(new w(h,e));else if(P(e)!==P(t))n.push(new k(h,e,t));else if("date"===P(e)&&e-t!=0)n.push(new k(h,e,t));else if("object"===v&&null!==e&&null!==t){for(s=l.length-1;-1<s;--s)if(l[s].lhs===e){b=!0;break}if(b)e!==t&&n.push(new k(h,e,t));else{if(l.push({lhs:e,rhs:t}),Array.isArray(e)){for(f&&(e.sort(function(e,t){return A(e)-A(t)}),t.sort(function(e,t){return A(e)-A(t)})),s=t.length-1,p=e.length-1;p<s;)if(n.push(new x(h,s,new O(void 0,t[s--]))),o())return;for(;s<p;)if(n.push(new x(h,p,new w(void 0,e[p--]))),o())return;for(;0<=s;--s)if(N(e[s],t[s],n,r,h,s,l,f,u),o())return}else{var D=Object.keys(e).concat(Object.getOwnPropertySymbols(e)),j=Object.keys(t).concat(Object.getOwnPropertySymbols(t));for(s=0;s<D.length;++s)if(d=D[s],0<=(b=j.indexOf(d))?(N(e[d],t[d],n,r,h,d,l,f,u),j[b]=null):N(e[d],void 0,n,r,h,d,l,f,u),o())return;for(s=0;s<j.length;++s)if((d=j[s])&&(N(void 0,t[d],n,r,h,d,l,f,u),o()))return}l.length=l.length-1}}else e!==t&&("number"===v&&isNaN(e)&&isNaN(t)||n.push(new k(h,e,t)))}function o(e,t,n,r,a,i){var l=[];if(N(e,t,l,r,null,null,null,a,i),n)for(var f=0;f<l.length;++f)n(l[f]);return l}function r(e,t,n,r,a){var i=r?function(e){e&&r.push(e)}:void 0,l=o(e,t,i,n,null,a);return r||(l.length?l:void 0)}function a(e,t,n){if(void 0===n&&t&&~l.indexOf(t.kind)&&(n=t),e&&n&&n.kind){for(var r=e,a=-1,i=n.path?n.path.length-1:0;++a<i;)void 0===r[n.path[a]]&&(r[n.path[a]]=void 0!==n.path[a+1]&&"number"==typeof n.path[a+1]?[]:{}),r=r[n.path[a]];switch(n.kind){case"A":n.path&&void 0===r[n.path[a]]&&(r[n.path[a]]=[]),function e(t,n,r){if(r.path&&r.path.length){var a,i=t[n],l=r.path.length-1;for(a=0;a<l;a++)i=i[r.path[a]];switch(r.kind){case"A":e(i[r.path[a]],r.index,r.item);break;case"D":delete i[r.path[a]];break;case"E":case"N":i[r.path[a]]=r.rhs}}else switch(r.kind){case"A":e(t[n],r.index,r.item);break;case"D":t=f(t,n);break;case"E":case"N":t[n]=r.rhs}return t}(n.path?r[n.path[a]]:r,n.index,n.item);break;case"D":delete r[n.path[a]];break;case"E":case"N":r[n.path[a]]=n.rhs}}}t(k,n),t(O,n),t(w,n),t(x,n),Object.defineProperties(r,{diff:{value:r,enumerable:!0},orderIndependentDiff:{value:function(e,t,n,r){var a=r?function(e){e&&r.push(e)}:void 0,i=o(e,t,a,n,!0);return r||(i.length?i:void 0)},enumerable:!0},observableDiff:{value:o,enumerable:!0},orderIndependentObservableDiff:{value:function(e,t,n,r,a,i,l){return N(e,t,n,r,a,i,l,!0)},enumerable:!0},orderIndepHash:{value:A,enumerable:!0},applyDiff:{value:function(t,n,r){t&&n&&o(t,n,function(e){r&&!r(t,n,e)||a(t,n,e)})},enumerable:!0},applyChange:{value:a,enumerable:!0},revertChange:{value:function(e,t,n){if(e&&t&&n&&n.kind){var r,a,i=e;for(a=n.path.length-1,r=0;r<a;r++)void 0===i[n.path[r]]&&(i[n.path[r]]={}),i=i[n.path[r]];switch(n.kind){case"A":!function e(t,n,r){if(r.path&&r.path.length){var a,i=t[n],l=r.path.length-1;for(a=0;a<l;a++)i=i[r.path[a]];switch(r.kind){case"A":e(i[r.path[a]],r.index,r.item);break;case"D":case"E":i[r.path[a]]=r.lhs;break;case"N":delete i[r.path[a]]}}else switch(r.kind){case"A":e(t[n],r.index,r.item);break;case"D":case"E":t[n]=r.lhs;break;case"N":t=f(t,n)}return t}(i[n.path[r]],n.index,n.item);break;case"D":case"E":i[n.path[r]]=n.lhs;break;case"N":delete i[n.path[r]]}}},enumerable:!0},isConflict:{value:function(){return"undefined"!=typeof $conflict},enumerable:!0}}),r.DeepDiff=r,e&&(e.DeepDiff=r);return r}(e);if("function"==typeof define&&define.amd)define("DeepDiff",function(){return n});else if("object"==typeof exports||"object"==typeof navigator&&navigator.product.match(/ReactNative/i))module.exports=n;else{var r=e.DeepDiff;n.noConflict=function(){return e.DeepDiff===n&&(e.DeepDiff=r),n},e.DeepDiff=n}}(this);