legacyUtil.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.convertChildrenToData = convertChildrenToData;
  7. var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
  8. var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
  9. var _propsUtil = require("../../_util/props-util");
  10. var _excluded = ["value", "disabled"];
  11. function convertNodeToOption(node) {
  12. var key = node.key,
  13. children = node.children,
  14. _node$props = node.props,
  15. value = _node$props.value,
  16. disabled = _node$props.disabled,
  17. restProps = (0, _objectWithoutProperties2.default)(_node$props, _excluded);
  18. var child = children === null || children === void 0 ? void 0 : children.default;
  19. return (0, _objectSpread2.default)({
  20. key: key,
  21. value: value !== undefined ? value : key,
  22. children: child,
  23. disabled: disabled || disabled === ''
  24. }, restProps);
  25. }
  26. function convertChildrenToData(nodes) {
  27. var optionOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
  28. var dd = (0, _propsUtil.flattenChildren)(nodes).map(function (node, index) {
  29. var _children$label;
  30. if (!(0, _propsUtil.isValidElement)(node) || !node.type) {
  31. return null;
  32. }
  33. var isSelectOptGroup = node.type.isSelectOptGroup,
  34. key = node.key,
  35. children = node.children,
  36. props = node.props;
  37. if (optionOnly || !isSelectOptGroup) {
  38. return convertNodeToOption(node);
  39. }
  40. var child = children && children.default ? children.default() : undefined;
  41. var label = (props === null || props === void 0 ? void 0 : props.label) || ((_children$label = children.label) === null || _children$label === void 0 ? void 0 : _children$label.call(children)) || key;
  42. return (0, _objectSpread2.default)((0, _objectSpread2.default)({
  43. key: "__RC_SELECT_GRP__".concat(key === null ? index : String(key), "__")
  44. }, props), {}, {
  45. label: label,
  46. options: convertChildrenToData(child || [])
  47. });
  48. }).filter(function (data) {
  49. return data;
  50. });
  51. return dd;
  52. }