You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
2.0 KiB
62 lines
2.0 KiB
"use strict";
|
|
|
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
|
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.convertChildrenToData = convertChildrenToData;
|
|
|
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
|
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
|
|
var React = _interopRequireWildcard(require("react"));
|
|
|
|
var _toArray = _interopRequireDefault(require("rc-util/lib/Children/toArray"));
|
|
|
|
var _excluded = ["children", "value"],
|
|
_excluded2 = ["children"];
|
|
|
|
function convertNodeToOption(node) {
|
|
var key = node.key,
|
|
_node$props = node.props,
|
|
children = _node$props.children,
|
|
value = _node$props.value,
|
|
restProps = (0, _objectWithoutProperties2.default)(_node$props, _excluded);
|
|
return (0, _objectSpread2.default)({
|
|
key: key,
|
|
value: value !== undefined ? value : key,
|
|
children: children
|
|
}, restProps);
|
|
}
|
|
|
|
function convertChildrenToData(nodes) {
|
|
var optionOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
return (0, _toArray.default)(nodes).map(function (node, index) {
|
|
if (! /*#__PURE__*/React.isValidElement(node) || !node.type) {
|
|
return null;
|
|
}
|
|
|
|
var isSelectOptGroup = node.type.isSelectOptGroup,
|
|
key = node.key,
|
|
_node$props2 = node.props,
|
|
children = _node$props2.children,
|
|
restProps = (0, _objectWithoutProperties2.default)(_node$props2, _excluded2);
|
|
|
|
if (optionOnly || !isSelectOptGroup) {
|
|
return convertNodeToOption(node);
|
|
}
|
|
|
|
return (0, _objectSpread2.default)((0, _objectSpread2.default)({
|
|
key: "__RC_SELECT_GRP__".concat(key === null ? index : key, "__"),
|
|
label: key
|
|
}, restProps), {}, {
|
|
options: convertChildrenToData(children)
|
|
});
|
|
}).filter(function (data) {
|
|
return data;
|
|
});
|
|
} |