legacyUtil.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
  3. var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
  4. Object.defineProperty(exports, "__esModule", {
  5. value: true
  6. });
  7. exports.convertChildrenToData = convertChildrenToData;
  8. exports.fillAdditionalInfo = fillAdditionalInfo;
  9. exports.fillLegacyProps = fillLegacyProps;
  10. var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
  11. var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
  12. var React = _interopRequireWildcard(require("react"));
  13. var _toArray = _interopRequireDefault(require("rc-util/lib/Children/toArray"));
  14. var _warning = _interopRequireDefault(require("rc-util/lib/warning"));
  15. var _TreeNode = _interopRequireDefault(require("../TreeNode"));
  16. var _excluded = ["children", "value"];
  17. function convertChildrenToData(nodes) {
  18. return (0, _toArray.default)(nodes).map(function (node) {
  19. if (! /*#__PURE__*/React.isValidElement(node) || !node.type) {
  20. return null;
  21. }
  22. var _ref = node,
  23. key = _ref.key,
  24. _ref$props = _ref.props,
  25. children = _ref$props.children,
  26. value = _ref$props.value,
  27. restProps = (0, _objectWithoutProperties2.default)(_ref$props, _excluded);
  28. var data = (0, _objectSpread2.default)({
  29. key: key,
  30. value: value
  31. }, restProps);
  32. var childData = convertChildrenToData(children);
  33. if (childData.length) {
  34. data.children = childData;
  35. }
  36. return data;
  37. }).filter(function (data) {
  38. return data;
  39. });
  40. }
  41. function fillLegacyProps(dataNode) {
  42. if (!dataNode) {
  43. return dataNode;
  44. }
  45. var cloneNode = (0, _objectSpread2.default)({}, dataNode);
  46. if (!('props' in cloneNode)) {
  47. Object.defineProperty(cloneNode, 'props', {
  48. get: function get() {
  49. (0, _warning.default)(false, 'New `rc-tree-select` not support return node instance as argument anymore. Please consider to remove `props` access.');
  50. return cloneNode;
  51. }
  52. });
  53. }
  54. return cloneNode;
  55. }
  56. function fillAdditionalInfo(extra, triggerValue, checkedValues, treeData, showPosition, fieldNames) {
  57. var triggerNode = null;
  58. var nodeList = null;
  59. function generateMap() {
  60. function dig(list) {
  61. var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '0';
  62. var parentIncluded = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
  63. return list.map(function (option, index) {
  64. var pos = "".concat(level, "-").concat(index);
  65. var value = option[fieldNames.value];
  66. var included = checkedValues.includes(value);
  67. var children = dig(option[fieldNames.children] || [], pos, included);
  68. var node = /*#__PURE__*/React.createElement(_TreeNode.default, option, children.map(function (child) {
  69. return child.node;
  70. }));
  71. // Link with trigger node
  72. if (triggerValue === value) {
  73. triggerNode = node;
  74. }
  75. if (included) {
  76. var checkedNode = {
  77. pos: pos,
  78. node: node,
  79. children: children
  80. };
  81. if (!parentIncluded) {
  82. nodeList.push(checkedNode);
  83. }
  84. return checkedNode;
  85. }
  86. return null;
  87. }).filter(function (node) {
  88. return node;
  89. });
  90. }
  91. if (!nodeList) {
  92. nodeList = [];
  93. dig(treeData);
  94. // Sort to keep the checked node length
  95. nodeList.sort(function (_ref2, _ref3) {
  96. var val1 = _ref2.node.props.value;
  97. var val2 = _ref3.node.props.value;
  98. var index1 = checkedValues.indexOf(val1);
  99. var index2 = checkedValues.indexOf(val2);
  100. return index1 - index2;
  101. });
  102. }
  103. }
  104. Object.defineProperty(extra, 'triggerNode', {
  105. get: function get() {
  106. (0, _warning.default)(false, '`triggerNode` is deprecated. Please consider decoupling data with node.');
  107. generateMap();
  108. return triggerNode;
  109. }
  110. });
  111. Object.defineProperty(extra, 'allCheckedNodes', {
  112. get: function get() {
  113. (0, _warning.default)(false, '`allCheckedNodes` is deprecated. Please consider decoupling data with node.');
  114. generateMap();
  115. if (showPosition) {
  116. return nodeList;
  117. }
  118. return nodeList.map(function (_ref4) {
  119. var node = _ref4.node;
  120. return node;
  121. });
  122. }
  123. });
  124. }