UNPKG

5.48 kBJavaScriptView Raw
1'use strict';
2
3exports.__esModule = true;
4exports.default = undefined;
5
6var _extends2 = require('babel-runtime/helpers/extends');
7
8var _extends3 = _interopRequireDefault(_extends2);
9
10var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
11
12var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
13
14var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
15
16var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
17
18var _inherits2 = require('babel-runtime/helpers/inherits');
19
20var _inherits3 = _interopRequireDefault(_inherits2);
21
22var _class, _temp2;
23
24var _react = require('react');
25
26var _react2 = _interopRequireDefault(_react);
27
28var _propTypes = require('prop-types');
29
30var _propTypes2 = _interopRequireDefault(_propTypes);
31
32var _icon = require('../../icon');
33
34var _icon2 = _interopRequireDefault(_icon);
35
36var _util = require('../../util');
37
38var _cell = require('../base/cell');
39
40var _cell2 = _interopRequireDefault(_cell);
41
42function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
43
44var TreeCell = (_temp2 = _class = function (_React$Component) {
45 (0, _inherits3.default)(TreeCell, _React$Component);
46
47 function TreeCell() {
48 var _temp, _this, _ret;
49
50 (0, _classCallCheck3.default)(this, TreeCell);
51
52 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
53 args[_key] = arguments[_key];
54 }
55
56 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.onTreeNodeClick = function (record, e) {
57 e.stopPropagation();
58 _this.context.onTreeNodeClick(record);
59 }, _this.expandedKeydown = function (record, e) {
60 e.preventDefault();
61 e.stopPropagation();
62
63 if (e.keyCode === _util.KEYCODE.ENTER) {
64 _this.onTreeNodeClick(record, e);
65 }
66 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
67 }
68
69 TreeCell.prototype.render = function render() {
70 var _this2 = this;
71
72 var _props = this.props,
73 colIndex = _props.colIndex,
74 record = _props.record,
75 prefix = _props.prefix,
76 primaryKey = _props.primaryKey,
77 locale = _props.locale,
78 rtl = _props.rtl,
79 children = _props.children;
80 var _context = this.context,
81 openRowKeys = _context.openTreeRowKeys,
82 indent = _context.indent,
83 isTree = _context.isTree,
84 rowSelection = _context.rowSelection;
85
86 var treeArrowNodeIndex = rowSelection ? 1 : 0;
87 var firstCellStyle = void 0,
88 treeArrowNode = void 0;
89 if (colIndex === treeArrowNodeIndex) {
90 var treeArrowType = void 0;
91 if (isTree) {
92 var _firstCellStyle;
93
94 var paddingType = rtl ? 'paddingRight' : 'paddingLeft';
95 firstCellStyle = (_firstCellStyle = {}, _firstCellStyle[paddingType] = indent * (record.__level + 1), _firstCellStyle);
96 treeArrowNode = _react2.default.createElement(_icon2.default, {
97 size: 'xs',
98 rtl: rtl,
99 className: prefix + 'table-tree-placeholder'
100 });
101 if (record.children && record.children.length) {
102 var hasExpanded = openRowKeys.indexOf(record[primaryKey]) > -1;
103
104 treeArrowType = hasExpanded ? 'arrow-down' : 'arrow-right';
105
106 treeArrowNode = _react2.default.createElement(_icon2.default, {
107 className: prefix + 'table-tree-arrow',
108 type: treeArrowType,
109 size: 'xs',
110 rtl: rtl,
111 onClick: function onClick(e) {
112 return _this2.onTreeNodeClick(record, e);
113 },
114 onKeyDown: function onKeyDown(e) {
115 return _this2.expandedKeydown(record, e);
116 },
117 role: 'button',
118 tabIndex: '0',
119 'aria-expanded': hasExpanded,
120 'aria-label': hasExpanded ? locale.expanded : locale.folded
121 });
122 }
123 }
124 }
125 return _react2.default.createElement(
126 _cell2.default,
127 (0, _extends3.default)({}, this.props, {
128 innerStyle: firstCellStyle,
129 isIconLeft: !!treeArrowNode
130 }),
131 children,
132 treeArrowNode
133 );
134 };
135
136 return TreeCell;
137}(_react2.default.Component), _class.propTypes = (0, _extends3.default)({
138 indent: _propTypes2.default.number,
139 locale: _propTypes2.default.object
140}, _cell2.default.propTypes), _class.defaultProps = (0, _extends3.default)({}, _cell2.default.defaultProps, {
141 component: 'td',
142 indent: 20
143}), _class.contextTypes = {
144 openTreeRowKeys: _propTypes2.default.array,
145 indent: _propTypes2.default.number,
146 onTreeNodeClick: _propTypes2.default.func,
147 isTree: _propTypes2.default.bool,
148 rowSelection: _propTypes2.default.object
149}, _temp2);
150TreeCell.displayName = 'TreeCell';
151exports.default = TreeCell;
152module.exports = exports['default'];
\No newline at end of file