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 o=0;o<e.length;o++){const i=e[o],f=t(i,o,e);n[f]=i}return n}function w(e){return[...new Set(e)]}function S(){}function m(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}function O(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]",A="[object Arguments]",N="[object Symbol]",x="[object Date]",z="[object Map]",D="[object Set]",E="[object Array]",L="[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]",Z="[object Int8Array]",G="[object Int16Array]",H="[object Int32Array]",J="[object BigInt64Array]",Q="[object Float32Array]",X="[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 Y(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,o,i,f,a){const y=a(e,t,n,o,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,o){if(Object.is(e,t))return!0;let i=O(e),f=O(t);if(i===A&&(i=p),f===A&&(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 Y(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 L: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,o))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],c=u.findIndex(b=>g(s,b,void 0,e,t,n,o));if(c===-1)return!1;u.splice(c,1)}return!0}case E:case R:case v:case C:case W:case q:case Z:case G:case H:case J:case Q:case X:{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,o))return!1;return!0}case F:return e.byteLength!==t.byteLength?!1:j(new Uint8Array(e),new Uint8Array(t),n,o);case M:return e.byteLength!==t.byteLength||e.byteOffset!==t.byteOffset?!1:j(new Uint8Array(e),new Uint8Array(t),n,o);case K:return e.name===t.name&&e.message===t.message;case p:{if(!(j(e.constructor,t.constructor,n,o)||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 c=u[s],b=e[c];if(!Object.hasOwn(t,c))return!1;const h=t[c];if(!g(b,h,c,e,t,n,o))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:o,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],c=r[l];!c&&s?o(n(s),s):c&&!s?i(n(c),c):s&&c&&!a(s,c)&&f(n(c),c,s)})};exports.syncData=V;