{"version":3,"file":"valueUtil.cjs","sources":["../../../../../../../packages/components/form/src/utils/valueUtil.ts"],"sourcesContent":["import type { InternalNamePath, NamePath } from '../interface';\nimport { get, set, toArray } from '@antdv/utils';\n\n/**\n * Convert name to internal supported format.\n * This function should keep since we still thinking if need support like `a.b.c` format.\n * 'a' => ['a']\n * 123 => [123]\n * ['a', 123] => ['a', 123]\n */\nexport function getNamePath(path: NamePath | null): InternalNamePath {\n  return toArray(path);\n}\n\nexport function getValue<T>(store: T, namePath: InternalNamePath) {\n  const value = get(store, namePath);\n  return value;\n}\n\nexport function setValue<T>(\n  store: T,\n  namePath: InternalNamePath,\n  value: any,\n  removeIfUndefined = false,\n): T {\n  const newStore = set(store, namePath, value, removeIfUndefined);\n  return newStore;\n}\n\nexport function containsNamePath(namePathList: InternalNamePath[], namePath: InternalNamePath) {\n  return namePathList && namePathList.some(path => matchNamePath(path, namePath));\n}\n\nfunction isObject(obj: any) {\n  return typeof obj === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;\n}\n\n/**\n * Copy values into store and return a new values object\n * ({ a: 1, b: { c: 2 } }, { a: 4, b: { d: 5 } }) => { a: 4, b: { c: 2, d: 5 } }\n */\nfunction internalSetValues<T>(store: T, values: T): T {\n  const newStore: T = (Array.isArray(store) ? [...store] : { ...store }) as T;\n\n  if (!values)\n    return newStore;\n\n  Object.keys(values).forEach((key) => {\n    const prevValue = newStore[key];\n    const value = values[key];\n\n    // If both are object (but target is not array), we use recursion to set deep value\n    const recursive = isObject(prevValue) && isObject(value);\n    newStore[key] = recursive ? internalSetValues(prevValue, value || {}) : value;\n  });\n\n  return newStore;\n}\n\nexport function setValues<T>(store: T, ...restValues: T[]): T {\n  return restValues.reduce(\n    (current: T, newStore: T) => internalSetValues(current, newStore),\n    store,\n  );\n}\n\nexport function cloneByNamePathList<T>(store: T, namePathList: InternalNamePath[]): T {\n  let newStore = {} as T;\n  namePathList.forEach((namePath) => {\n    const value = getValue(store, namePath);\n    newStore = setValue(newStore, namePath, value);\n  });\n\n  return newStore;\n}\n\nexport function matchNamePath(\n  namePath: InternalNamePath,\n  changedNamePath: InternalNamePath | null,\n) {\n  if (!namePath || !changedNamePath || namePath.length !== changedNamePath.length)\n    return false;\n\n  return namePath.every((nameUnit, i) => changedNamePath[i] === nameUnit);\n}\n"],"names":["toArray","get","set"],"mappings":";;;;;;;AAUO,SAAS,YAAY,IAAyC,EAAA;AACnE,EAAA,OAAOA,cAAQ,IAAI,CAAA,CAAA;AACrB,CAAA;AAEgB,SAAA,QAAA,CAAY,OAAU,QAA4B,EAAA;AAChE,EAAM,MAAA,KAAA,GAAQC,OAAI,CAAA,KAAA,EAAO,QAAQ,CAAA,CAAA;AACjC,EAAO,OAAA,KAAA,CAAA;AACT,CAAA;AAEO,SAAS,QACd,CAAA,KAAA,EACA,QACA,EAAA,KAAA,EACA,oBAAoB,KACjB,EAAA;AACH,EAAA,MAAM,QAAW,GAAAC,OAAA,CAAI,KAAO,EAAA,QAAA,EAAU,OAAO,iBAAiB,CAAA,CAAA;AAC9D,EAAO,OAAA,QAAA,CAAA;AACT,CAAA;AAEgB,SAAA,gBAAA,CAAiB,cAAkC,QAA4B,EAAA;AAC7F,EAAA,OAAO,gBAAgB,YAAa,CAAA,IAAA,CAAK,UAAQ,aAAc,CAAA,IAAA,EAAM,QAAQ,CAAC,CAAA,CAAA;AAChF,CAAA;AAEA,SAAS,SAAS,GAAU,EAAA;AAC1B,EAAO,OAAA,OAAO,QAAQ,QAAY,IAAA,GAAA,KAAQ,QAAQ,MAAO,CAAA,cAAA,CAAe,GAAG,CAAA,KAAM,MAAO,CAAA,SAAA,CAAA;AAC1F,CAAA;AAMA,SAAS,iBAAA,CAAqB,OAAU,MAAc,EAAA;AACpD,EAAM,MAAA,QAAA,GAAe,KAAM,CAAA,OAAA,CAAQ,KAAK,CAAA,GAAI,CAAC,GAAG,KAAK,CAAA,GAAI,EAAE,GAAG,KAAM,EAAA,CAAA;AAEpE,EAAA,IAAI,CAAC,MAAA;AACH,IAAO,OAAA,QAAA,CAAA;AAET,EAAA,MAAA,CAAO,IAAK,CAAA,MAAM,CAAE,CAAA,OAAA,CAAQ,CAAC,GAAQ,KAAA;AACnC,IAAM,MAAA,SAAA,GAAY,SAAS,GAAG,CAAA,CAAA;AAC9B,IAAM,MAAA,KAAA,GAAQ,OAAO,GAAG,CAAA,CAAA;AAGxB,IAAA,MAAM,SAAY,GAAA,QAAA,CAAS,SAAS,CAAA,IAAK,SAAS,KAAK,CAAA,CAAA;AACvD,IAAS,QAAA,CAAA,GAAG,IAAI,SAAY,GAAA,iBAAA,CAAkB,WAAW,KAAS,IAAA,EAAE,CAAI,GAAA,KAAA,CAAA;AAAA,GACzE,CAAA,CAAA;AAED,EAAO,OAAA,QAAA,CAAA;AACT,CAAA;AAEgB,SAAA,SAAA,CAAa,UAAa,UAAoB,EAAA;AAC5D,EAAA,OAAO,UAAW,CAAA,MAAA;AAAA,IAChB,CAAC,OAAA,EAAY,QAAgB,KAAA,iBAAA,CAAkB,SAAS,QAAQ,CAAA;AAAA,IAChE,KAAA;AAAA,GACF,CAAA;AACF,CAAA;AAEgB,SAAA,mBAAA,CAAuB,OAAU,YAAqC,EAAA;AACpF,EAAA,IAAI,WAAW,EAAC,CAAA;AAChB,EAAa,YAAA,CAAA,OAAA,CAAQ,CAAC,QAAa,KAAA;AACjC,IAAM,MAAA,KAAA,GAAQ,QAAS,CAAA,KAAA,EAAO,QAAQ,CAAA,CAAA;AACtC,IAAW,QAAA,GAAA,QAAA,CAAS,QAAU,EAAA,QAAA,EAAU,KAAK,CAAA,CAAA;AAAA,GAC9C,CAAA,CAAA;AAED,EAAO,OAAA,QAAA,CAAA;AACT,CAAA;AAEgB,SAAA,aAAA,CACd,UACA,eACA,EAAA;AACA,EAAA,IAAI,CAAC,QAAY,IAAA,CAAC,eAAmB,IAAA,QAAA,CAAS,WAAW,eAAgB,CAAA,MAAA;AACvE,IAAO,OAAA,KAAA,CAAA;AAET,EAAO,OAAA,QAAA,CAAS,MAAM,CAAC,QAAA,EAAU,MAAM,eAAgB,CAAA,CAAC,MAAM,QAAQ,CAAA,CAAA;AACxE;;;;;;;;;;"}