UNPKG

@talend/react-components

Version:
76 lines (74 loc) 2.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Tree; exports.isRoot = isRoot; var _propTypes = _interopRequireDefault(require("prop-types")); var _classnames = _interopRequireDefault(require("classnames")); var _TreeNode = _interopRequireDefault(require("../TreeNode")); var _TreeNodeList = _interopRequireDefault(require("../TreeNodeList")); var _TreeModule = _interopRequireDefault(require("./Tree.module.scss")); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } /** * Check if we are at the root level of the tree. * @param {number} level */ function isRoot(level) { return level === 0; } /** * Create a generic tree. * Css customization with border available. */ function Tree({ className, noRoot, withNodeBorder, ...props }) { const treeClassNames = (0, _classnames.default)(_TreeModule.default['tc-tree'], 'tc-tree', className); const recursiveTree = args => /*#__PURE__*/(0, _jsxRuntime.jsx)(Tree, { ...props, ...args, level: props.level + 1 }); if (isRoot(props.level)) { if (noRoot) { return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TreeNodeList.default, { ...props, recursive: recursiveTree, treeClassName: treeClassNames }); } return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TreeNode.default, { ...props, recursive: recursiveTree, className: treeClassNames, dataKey: props.dataKey || 0, index: props.index || 0 }); } return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TreeNodeList.default, { ...props, recursive: recursiveTree, treeClassName: (0, _classnames.default)(_TreeModule.default['tc-tree-list'], 'tc-tree-list'), nodeClassName: (0, _classnames.default)({ [_TreeModule.default['tc-tree-node-border']]: withNodeBorder, 'tc-tree-node-border': withNodeBorder }) }); } Tree.defaultProps = { withNodeBorder: true }; Tree.propTypes = { className: _propTypes.default.string, dataKey: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]), index: _propTypes.default.number, level: _propTypes.default.number, noRoot: _propTypes.default.bool, withNodeBorder: _propTypes.default.bool }; //# sourceMappingURL=Tree.component.js.map