{"version":3,"file":"timelineSnapshotEqual.mjs","names":[],"sources":["../../../src/hooks/core/timelineSnapshotEqual.ts"],"sourcesContent":["/** Compares scalar or shallow collection snapshots without allocating another value. */\nexport function shallowEqual<Value>(previous: Value, next: Value): boolean {\n  if (Object.is(previous, next)) {\n    return true;\n  }\n  if (\n    typeof previous !== 'object' ||\n    previous === null ||\n    typeof next !== 'object' ||\n    next === null\n  ) {\n    return false;\n  }\n  if (Object.getPrototypeOf(previous) !== Object.getPrototypeOf(next)) {\n    return false;\n  }\n  if (!Array.isArray(next) && Object.getPrototypeOf(next) !== Object.prototype) {\n    return false;\n  }\n  if (Array.isArray(previous) && Array.isArray(next) && previous.length !== next.length) {\n    return false;\n  }\n  const keys = Object.keys(next) as (keyof Value)[];\n  return (\n    keys.length === Object.keys(previous).length &&\n    keys.every((key) => Object.hasOwn(previous, key) && Object.is(previous[key], next[key]))\n  );\n}\n"],"mappings":";;AACA,SAAgB,aAAoB,UAAiB,MAAsB;CACzE,IAAI,OAAO,GAAG,UAAU,IAAI,GAC1B,OAAO;CAET,IACE,OAAO,aAAa,YACpB,aAAa,QACb,OAAO,SAAS,YAChB,SAAS,MAET,OAAO;CAET,IAAI,OAAO,eAAe,QAAQ,MAAM,OAAO,eAAe,IAAI,GAChE,OAAO;CAET,IAAI,CAAC,MAAM,QAAQ,IAAI,KAAK,OAAO,eAAe,IAAI,MAAM,OAAO,WACjE,OAAO;CAET,IAAI,MAAM,QAAQ,QAAQ,KAAK,MAAM,QAAQ,IAAI,KAAK,SAAS,WAAW,KAAK,QAC7E,OAAO;CAET,MAAM,OAAO,OAAO,KAAK,IAAI;CAC7B,OACE,KAAK,WAAW,OAAO,KAAK,QAAQ,CAAC,CAAC,UACtC,KAAK,OAAO,QAAQ,OAAO,OAAO,UAAU,GAAG,KAAK,OAAO,GAAG,SAAS,MAAM,KAAK,IAAI,CAAC;AAE3F"}