valueUtil.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import _typeof from "@babel/runtime/helpers/esm/typeof";
  2. var INTERNAL_KEY_PREFIX = 'RC_TABLE_KEY';
  3. function toArray(arr) {
  4. if (arr === undefined || arr === null) {
  5. return [];
  6. }
  7. return Array.isArray(arr) ? arr : [arr];
  8. }
  9. export function getPathValue(record, path) {
  10. // Skip if path is empty
  11. if (!path && typeof path !== 'number') {
  12. return record;
  13. }
  14. var pathList = toArray(path);
  15. var current = record;
  16. for (var i = 0; i < pathList.length; i += 1) {
  17. if (!current) {
  18. return null;
  19. }
  20. var prop = pathList[i];
  21. current = current[prop];
  22. }
  23. return current;
  24. }
  25. export function getColumnsKey(columns) {
  26. var columnKeys = [];
  27. var keys = {};
  28. columns.forEach(function (column) {
  29. var _ref = column || {},
  30. key = _ref.key,
  31. dataIndex = _ref.dataIndex;
  32. var mergedKey = key || toArray(dataIndex).join('-') || INTERNAL_KEY_PREFIX;
  33. while (keys[mergedKey]) {
  34. mergedKey = "".concat(mergedKey, "_next");
  35. }
  36. keys[mergedKey] = true;
  37. columnKeys.push(mergedKey);
  38. });
  39. return columnKeys;
  40. }
  41. export function mergeObject() {
  42. var merged = {};
  43. /* eslint-disable no-param-reassign */
  44. function fillProps(obj, clone) {
  45. if (clone) {
  46. Object.keys(clone).forEach(function (key) {
  47. var value = clone[key];
  48. if (value && _typeof(value) === 'object') {
  49. obj[key] = obj[key] || {};
  50. fillProps(obj[key], value);
  51. } else {
  52. obj[key] = value;
  53. }
  54. });
  55. }
  56. }
  57. /* eslint-enable */
  58. for (var _len = arguments.length, objects = new Array(_len), _key = 0; _key < _len; _key++) {
  59. objects[_key] = arguments[_key];
  60. }
  61. objects.forEach(function (clone) {
  62. fillProps(merged, clone);
  63. });
  64. return merged;
  65. }
  66. export function validateValue(val) {
  67. return val !== null && val !== undefined;
  68. }