UNPKG

@stanfordspezi/spezi-web-design-system

Version:

Stanford Biodesign Digital Health Spezi Web Design System

2 lines (1 loc) 3.65 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function d(e,t){const n={};for(let c=0;c<e.length;c++){const i=e[c],f=t(i);n[f]=i}return n}function w(e){return Array.from(new Set(e))}function S(){}function m(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}function A(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}const I="[object RegExp]",B="[object String]",U="[object Number]",P="[object Boolean]",O="[object Arguments]",N="[object Symbol]",x="[object Date]",z="[object Map]",D="[object Set]",L="[object Array]",E="[object Function]",F="[object ArrayBuffer]",p="[object Object]",K="[object Error]",M="[object DataView]",R="[object Uint8Array]",v="[object Uint8ClampedArray]",C="[object Uint16Array]",W="[object Uint32Array]",q="[object BigUint64Array]",G="[object Int8Array]",H="[object Int16Array]",J="[object Int32Array]",Q="[object BigInt64Array]",X="[object Float32Array]",Y="[object Float64Array]";function T(e){if(!e||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);return t===null||t===Object.prototype||Object.getPrototypeOf(t)===null?Object.prototype.toString.call(e)==="[object Object]":!1}function Z(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function _(e,t,n){return g(e,t,void 0,void 0,void 0,void 0,n)}function g(e,t,n,c,i,f,a){const y=a(e,t,n,c,i,f);if(y!==void 0)return y;if(typeof e==typeof t)switch(typeof e){case"bigint":case"string":case"boolean":case"symbol":case"undefined":return e===t;case"number":return e===t||Object.is(e,t);case"function":return e===t;case"object":return j(e,t,f,a)}return j(e,t,f,a)}function j(e,t,n,c){if(Object.is(e,t))return!0;let i=A(e),f=A(t);if(i===O&&(i=p),f===O&&(f=p),i!==f)return!1;switch(i){case B:return e.toString()===t.toString();case U:{const r=e.valueOf(),u=t.valueOf();return Z(r,u)}case P:case x:case N:return Object.is(e.valueOf(),t.valueOf());case I:return e.source===t.source&&e.flags===t.flags;case E:return e===t}n=n??new Map;const a=n.get(e),y=n.get(t);if(a!=null&&y!=null)return a===t;n.set(e,t),n.set(t,e);try{switch(i){case z:{if(e.size!==t.size)return!1;for(const[r,u]of e.entries())if(!t.has(r)||!g(u,t.get(r),r,e,t,n,c))return!1;return!0}case D:{if(e.size!==t.size)return!1;const r=Array.from(e.values()),u=Array.from(t.values());for(let l=0;l<r.length;l++){const s=r[l],o=u.findIndex(b=>g(s,b,void 0,e,t,n,c));if(o===-1)return!1;u.splice(o,1)}return!0}case L:case R:case v:case C:case W:case q:case G:case H:case J:case Q:case X:case Y:{if(typeof Buffer<"u"&&Buffer.isBuffer(e)!==Buffer.isBuffer(t)||e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!g(e[r],t[r],r,e,t,n,c))return!1;return!0}case F:return e.byteLength!==t.byteLength?!1:j(new Uint8Array(e),new Uint8Array(t),n,c);case M:return e.byteLength!==t.byteLength||e.byteOffset!==t.byteOffset?!1:j(new Uint8Array(e),new Uint8Array(t),n,c);case K:return e.name===t.name&&e.message===t.message;case p:{if(!(j(e.constructor,t.constructor,n,c)||T(e)&&T(t)))return!1;const u=[...Object.keys(e),...m(e)],l=[...Object.keys(t),...m(t)];if(u.length!==l.length)return!1;for(let s=0;s<u.length;s++){const o=u[s],b=e[o];if(!Object.hasOwn(t,o))return!1;const h=t[o];if(!g(b,h,o,e,t,n,c))return!1}return!0}default:return!1}}finally{n.delete(e),n.delete(t)}}function $(e,t){return _(e,t,S)}const V=({oldItems:e,newItems:t,getId:n,onDelete:c,onCreate:i,onUpdate:f,isEqual:a=$})=>{const y=d(e,n),r=d(t,n);w([...Object.keys(y),...Object.keys(r)]).forEach(l=>{const s=y[l],o=r[l];!o&&s?c(n(s),s):o&&!s?i(n(o),o):s&&o&&!a(s,o)&&f(n(o),o,s)})};exports.syncData=V;