{"version":3,"file":"valueUtil.mjs","sources":["../../../../../../../packages/vue-components/vc-table/src/utils/valueUtil.tsx"],"sourcesContent":["import type { DataIndex, Key } from '../interface';\n\nconst INTERNAL_KEY_PREFIX = 'RC_TABLE_KEY';\n\nfunction toArray<T>(arr: T | readonly T[]): T[] {\n  if (arr === undefined || arr === null)\n    return [];\n\n  return (Array.isArray(arr) ? arr : [arr]) as T[];\n}\n\nexport function getPathValue<ValueType, ObjectType extends object>(\n  record: ObjectType,\n  path: DataIndex,\n): ValueType {\n  // Skip if path is empty\n  if (!path && typeof path !== 'number')\n    return record as unknown as ValueType;\n\n  const pathList = toArray(path);\n\n  let current: ValueType | ObjectType = record;\n\n  for (let i = 0; i < pathList.length; i += 1) {\n    if (!current)\n      return null;\n\n    const prop = pathList[i];\n    current = current[prop];\n  }\n\n  return current as ValueType;\n}\n\ninterface GetColumnKeyColumn {\n  key?: Key;\n  dataIndex?: DataIndex;\n}\n\nexport function getColumnsKey(columns: readonly GetColumnKeyColumn[]) {\n  const columnKeys: Key[] = [];\n  const keys: Record<Key, boolean> = {};\n\n  columns.forEach((column) => {\n    const { key, dataIndex } = column || {};\n\n    let mergedKey = key || toArray(dataIndex).join('-') || INTERNAL_KEY_PREFIX;\n    while (keys[mergedKey])\n      mergedKey = `${mergedKey}_next`;\n\n    keys[mergedKey] = true;\n\n    columnKeys.push(mergedKey);\n  });\n\n  return columnKeys;\n}\n\nexport function mergeObject<ReturnObject extends object>(\n  ...objects: Array<Partial<ReturnObject>>\n): ReturnObject {\n  const merged: Partial<ReturnObject> = {};\n\n  function fillProps(obj: object, clone: object) {\n    if (clone) {\n      Object.keys(clone).forEach((key) => {\n        const value = clone[key];\n        if (value && typeof value === 'object') {\n          obj[key] = obj[key] || {};\n          fillProps(obj[key], value);\n        } else {\n          obj[key] = value;\n        }\n      });\n    }\n  }\n\n  objects.forEach((clone) => {\n    fillProps(merged, clone);\n  });\n\n  return merged as ReturnObject;\n}\n\nexport function validateValue<T>(val: T) {\n  return val !== null && val !== undefined;\n}\n"],"names":["INTERNAL_KEY_PREFIX","toArray","arr","undefined","Array","isArray","getPathValue","record","path","pathList","current","i","length","prop","getColumnsKey","columns","columnKeys","keys","forEach","column","key","dataIndex","mergedKey","join","push","mergeObject","objects","merged","fillProps","obj","clone","Object","value","validateValue","val"],"mappings":"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"}