{"version":3,"names":["isMergeableObject","val","nonNullObject","Object","prototype","toString","call","emptyTarget","Array","isArray","cloneIfNecessary","value","optionsArgument","clone","deepmerge","defaultArrayMerge","target","source","destination","slice","forEach","e","i","indexOf","push","mergeObject","keys","key","array","options","arrayMerge"],"sources":["src/utils/deep-merge.ts"],"sourcesContent":["function isMergeableObject(val) {\n var nonNullObject = val && typeof val === \"object\";\n\n return (\n nonNullObject &&\n Object.prototype.toString.call(val) !== \"[object RegExp]\" &&\n Object.prototype.toString.call(val) !== \"[object Date]\"\n );\n}\n\nfunction emptyTarget(val) {\n return Array.isArray(val) ? [] : {};\n}\n\nfunction cloneIfNecessary(value, optionsArgument) {\n var clone = optionsArgument && optionsArgument.clone === true;\n return clone && isMergeableObject(value) ? deepmerge(emptyTarget(value), value, optionsArgument) : value;\n}\n\nfunction defaultArrayMerge(target, source, optionsArgument) {\n var destination = target.slice();\n source.forEach(function (e, i) {\n if (typeof destination[i] === \"undefined\") {\n destination[i] = cloneIfNecessary(e, optionsArgument);\n } else if (isMergeableObject(e)) {\n destination[i] = deepmerge(target[i], e, optionsArgument);\n } else if (target.indexOf(e) === -1) {\n destination.push(cloneIfNecessary(e, optionsArgument));\n }\n });\n return destination;\n}\n\nfunction mergeObject(target, source, optionsArgument) {\n var destination = {};\n if (isMergeableObject(target)) {\n Object.keys(target).forEach(function (key) {\n destination[key] = cloneIfNecessary(target[key], optionsArgument);\n });\n }\n Object.keys(source).forEach(function (key) {\n if (!isMergeableObject(source[key]) || !target[key]) {\n destination[key] = cloneIfNecessary(source[key], optionsArgument);\n } else {\n destination[key] = deepmerge(target[key], source[key], optionsArgument);\n }\n });\n return destination;\n}\n\nexport function deepmerge(target: object, source: object, optionsArgument?: any) {\n var array = Array.isArray(source);\n var options = optionsArgument || { arrayMerge: defaultArrayMerge };\n var arrayMerge = options.arrayMerge || defaultArrayMerge;\n\n if (array) {\n return Array.isArray(target)\n ? arrayMerge(target, source, optionsArgument)\n : cloneIfNecessary(source, optionsArgument);\n } else {\n return mergeObject(target, source, optionsArgument);\n }\n}\n"],"mappings":"AAAA,SAASA,EAAkBC,GACzB,IAAIC,EAAgBD,UAAcA,IAAQ,SAE1C,OACEC,GACAC,OAAOC,UAAUC,SAASC,KAAKL,KAAS,mBACxCE,OAAOC,UAAUC,SAASC,KAAKL,KAAS,eAE5C,CAEA,SAASM,EAAYN,GACnB,OAAOO,MAAMC,QAAQR,GAAO,GAAK,EACnC,CAEA,SAASS,EAAiBC,EAAOC,GAC/B,IAAIC,EAAQD,GAAmBA,EAAgBC,QAAU,KACzD,OAAOA,GAASb,EAAkBW,GAASG,EAAUP,EAAYI,GAAQA,EAAOC,GAAmBD,CACrG,CAEA,SAASI,EAAkBC,EAAQC,EAAQL,GACzC,IAAIM,EAAcF,EAAOG,QACzBF,EAAOG,SAAQ,SAAUC,EAAGC,GAC1B,UAAWJ,EAAYI,KAAO,YAAa,CACzCJ,EAAYI,GAAKZ,EAAiBW,EAAGT,E,MAChC,GAAIZ,EAAkBqB,GAAI,CAC/BH,EAAYI,GAAKR,EAAUE,EAAOM,GAAID,EAAGT,E,MACpC,GAAII,EAAOO,QAAQF,MAAQ,EAAG,CACnCH,EAAYM,KAAKd,EAAiBW,EAAGT,G,KAGzC,OAAOM,CACT,CAEA,SAASO,EAAYT,EAAQC,EAAQL,GACnC,IAAIM,EAAc,GAClB,GAAIlB,EAAkBgB,GAAS,CAC7Bb,OAAOuB,KAAKV,GAAQI,SAAQ,SAAUO,GACpCT,EAAYS,GAAOjB,EAAiBM,EAAOW,GAAMf,E,IAGrDT,OAAOuB,KAAKT,GAAQG,SAAQ,SAAUO,GACpC,IAAK3B,EAAkBiB,EAAOU,MAAUX,EAAOW,GAAM,CACnDT,EAAYS,GAAOjB,EAAiBO,EAAOU,GAAMf,E,KAC5C,CACLM,EAAYS,GAAOb,EAAUE,EAAOW,GAAMV,EAAOU,GAAMf,E,KAG3D,OAAOM,CACT,C,SAEgBJ,EAAUE,EAAgBC,EAAgBL,GACxD,IAAIgB,EAAQpB,MAAMC,QAAQQ,GAC1B,IAAIY,EAAUjB,GAAmB,CAAEkB,WAAYf,GAC/C,IAAIe,EAAaD,EAAQC,YAAcf,EAEvC,GAAIa,EAAO,CACT,OAAOpB,MAAMC,QAAQO,GACjBc,EAAWd,EAAQC,EAAQL,GAC3BF,EAAiBO,EAAQL,E,KACxB,CACL,OAAOa,EAAYT,EAAQC,EAAQL,E,CAEvC,Q"}