{"version":3,"sources":["../src/object/deepClone.ts"],"names":["deepClone","obj","isPrimitive","isFunction","item","isCollection","newSet","newMap","key","value","results"],"mappings":";;;;AAaO,SAASA,CAAwBC,CAAAA,CAAAA,CAAQ,CAQ5C,GAPGA,CAAK,EAAA,IAAA,EAOJC,CAAYD,CAAAA,CAAG,CAAKE,EAAAA,GAAAA,CAAWF,CAAG,CAAA,CAClC,OAAOA,CAAAA,CACL,GAAG,KAAA,CAAM,OAAQA,CAAAA,CAAG,CACtB,CAAA,OAAOA,CAAI,CAAA,GAAA,CAAKG,CACTC,EAAAA,GAAAA,CAAaD,CAAI,CAAA,CACTJ,CAAUI,CAAAA,CAAI,EAEdA,CAEb,CAAA,CACA,GAAGH,CAAAA,YAAe,GAAK,CAAA,CACzB,IAAIK,CAAAA,CAAS,IAAI,GAAA,CACjB,IAAUF,IAAAA,CAAAA,IAAQH,CAAI,CAAA,MAAA,EACfI,CAAAA,GAAAA,CAAaD,CAAI,CAChBE,CAAAA,CAAAA,CAAO,GAAIN,CAAAA,CAAAA,CAAUI,CAAI,CAAC,CAE1BE,CAAAA,CAAAA,CAAO,GAAIF,CAAAA,CAAI,CAGvB,CAAA,OAAOE,CACX,CAAA,KAAA,GAASL,CAAe,YAAA,GAAA,CAAK,CACzB,IAAIM,CAAAA,CAAS,IAAI,GAAA,CACjB,IAAU,GAAA,CAACC,CAAIC,CAAAA,CAAK,CAAKR,GAAAA,CAAAA,CAAI,OAAQ,EAAA,CAC9BI,GAAaI,CAAAA,CAAK,CACjBF,CAAAA,CAAAA,CAAO,GAAIC,CAAAA,CAAAA,CAAIR,CAAUS,CAAAA,CAAK,CAAC,CAAA,CAE/BF,CAAO,CAAA,GAAA,CAAIC,CAAIC,CAAAA,CAAK,CAG5B,CAAA,OAAOF,CACX,CAAA,KAAA,GAAS,OAAON,CAAAA,EAAM,SAAS,CAC3B,IAAIS,CAAc,CAAA,EAClB,CAAA,OAAA,MAAA,CAAO,OAAQT,CAAAA,CAAG,CAAE,CAAA,OAAA,CAAQ,CAAC,CAACO,CAAIC,CAAAA,CAAK,CAAI,GAAA,CACpCJ,IAAaI,CAAK,CAAA,CACjBC,CAAQF,CAAAA,CAAG,CAAIR,CAAAA,CAAAA,CAAUS,CAAK,CAAA,CAE9BC,CAAQF,CAAAA,CAAG,CAAIC,CAAAA,EAEvB,CAAC,CAAA,CACMC,CACX,CAAA,YACWT,CAEf","file":"chunk-TXFJB42F.mjs","sourcesContent":["/**\n * \n * 深度克隆对象\n * \n * \n */\n\nimport { isCollection } from \"../typecheck\";\nimport { isFunction } from \"../typecheck/isFunction\";\nimport { isPrimitive } from \"../typecheck/isPrimitive\";\nimport type { Collection } from \"../types\";\n \n\nexport function deepClone<T=Collection>(obj:T):T{\n    if(obj==undefined) return obj    \n    \n    // structuredClone虽然高效但不支持成员中包含函数\n    // if(globalThis.structuredClone){\n    //     return globalThis.structuredClone(obj)\n    // }\n\n    if (isPrimitive(obj) || isFunction(obj)){\n        return obj\n    }else if(Array.isArray(obj)){        \n        return obj.map((item:any) => {\n            if(isCollection(item)){\n                return deepClone(item)\n            }else{\n                return item\n            }\n         }) as T       \n    }else if(obj instanceof Set ){\n        let newSet = new Set()   \n        for(const item of obj.values()){\n            if(isCollection(item)){\n                newSet.add(deepClone(item))\n            }else{\n                newSet.add(item)\n            }\n        }\n        return newSet as T\n    }else if(obj instanceof Map ){\n        let newMap = new Map()        \n        for(const [key,value] of obj.entries()){\n            if(isCollection(value) ){\n                newMap.set(key,deepClone(value))\n            }else{\n                newMap.set(key,value)\n            }\n        }    \n        return newMap as T \n    }else if(typeof(obj)==\"object\"){\n        let results:any = {}\n        Object.entries(obj).forEach(([key,value])=>{\n            if(isCollection(value)){\n                results[key] = deepClone(value)         \n            }else{\n                results[key] = value\n            }\n        })\n        return results as T\n    }else{\n        return obj\n    }    \n}\n"]}