308 lines
12 KiB
JavaScript
308 lines
12 KiB
JavaScript
'use strict';
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
|
|
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
|
|
|
var _react = require('react');
|
|
|
|
var _react2 = _interopRequireDefault(_react);
|
|
|
|
var _propTypes = require('prop-types');
|
|
|
|
var _propTypes2 = _interopRequireDefault(_propTypes);
|
|
|
|
var _reactDom = require('react-dom');
|
|
|
|
var _reactDom2 = _interopRequireDefault(_reactDom);
|
|
|
|
var _Const = require('./Const');
|
|
|
|
var _Const2 = _interopRequireDefault(_Const);
|
|
|
|
var _classnames = require('classnames');
|
|
|
|
var _classnames2 = _interopRequireDefault(_classnames);
|
|
|
|
var _SelectRowHeaderColumn = require('./SelectRowHeaderColumn');
|
|
|
|
var _SelectRowHeaderColumn2 = _interopRequireDefault(_SelectRowHeaderColumn);
|
|
|
|
var _ExpandRowHeaderColumn = require('./ExpandRowHeaderColumn');
|
|
|
|
var _ExpandRowHeaderColumn2 = _interopRequireDefault(_ExpandRowHeaderColumn);
|
|
|
|
var _util = require('./util');
|
|
|
|
var _util2 = _interopRequireDefault(_util);
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
|
|
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
|
|
|
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
|
|
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
|
|
|
|
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
|
|
|
var Checkbox = function (_Component) {
|
|
_inherits(Checkbox, _Component);
|
|
|
|
function Checkbox() {
|
|
_classCallCheck(this, Checkbox);
|
|
|
|
return _possibleConstructorReturn(this, (Checkbox.__proto__ || Object.getPrototypeOf(Checkbox)).apply(this, arguments));
|
|
}
|
|
|
|
_createClass(Checkbox, [{
|
|
key: 'componentDidMount',
|
|
value: function componentDidMount() {
|
|
this.update(this.props.checked);
|
|
}
|
|
}, {
|
|
key: 'componentWillReceiveProps',
|
|
value: function componentWillReceiveProps(props) {
|
|
this.update(props.checked);
|
|
}
|
|
}, {
|
|
key: 'update',
|
|
value: function update(checked) {
|
|
_reactDom2.default.findDOMNode(this).indeterminate = checked === 'indeterminate';
|
|
}
|
|
}, {
|
|
key: 'render',
|
|
value: function render() {
|
|
return _react2.default.createElement('input', { className: 'react-bs-select-all',
|
|
type: 'checkbox',
|
|
checked: this.props.checked,
|
|
onChange: this.props.onChange });
|
|
}
|
|
}]);
|
|
|
|
return Checkbox;
|
|
}(_react.Component);
|
|
|
|
function getSortOrder(sortList, field, enableSort) {
|
|
if (!enableSort) return undefined;
|
|
var result = sortList.filter(function (sortObj) {
|
|
return sortObj.sortField === field;
|
|
});
|
|
if (result.length > 0) {
|
|
return result[0].order;
|
|
} else {
|
|
return undefined;
|
|
}
|
|
}
|
|
|
|
var TableHeader = function (_Component2) {
|
|
_inherits(TableHeader, _Component2);
|
|
|
|
function TableHeader() {
|
|
var _ref;
|
|
|
|
var _temp, _this2, _ret;
|
|
|
|
_classCallCheck(this, TableHeader);
|
|
|
|
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
|
|
args[_key] = arguments[_key];
|
|
}
|
|
|
|
return _ret = (_temp = (_this2 = _possibleConstructorReturn(this, (_ref = TableHeader.__proto__ || Object.getPrototypeOf(TableHeader)).call.apply(_ref, [this].concat(args))), _this2), _this2.getHeaderColGrouop = function () {
|
|
var _this3;
|
|
|
|
return (_this3 = _this2).__getHeaderColGrouop__REACT_HOT_LOADER__.apply(_this3, arguments);
|
|
}, _temp), _possibleConstructorReturn(_this2, _ret);
|
|
}
|
|
|
|
_createClass(TableHeader, [{
|
|
key: '__getHeaderColGrouop__REACT_HOT_LOADER__',
|
|
value: function __getHeaderColGrouop__REACT_HOT_LOADER__() {
|
|
return this.__getHeaderColGrouop__REACT_HOT_LOADER__.apply(this, arguments);
|
|
}
|
|
}, {
|
|
key: 'render',
|
|
value: function render() {
|
|
var _this4 = this;
|
|
|
|
var _props = this.props,
|
|
sortIndicator = _props.sortIndicator,
|
|
sortList = _props.sortList,
|
|
onSort = _props.onSort,
|
|
reset = _props.reset,
|
|
version = _props.version,
|
|
condensed = _props.condensed,
|
|
bordered = _props.bordered,
|
|
expandedColumnHeaderComponent = _props.expandedColumnHeaderComponent,
|
|
noAnyExpand = _props.noAnyExpand,
|
|
toggleExpandAllChilds = _props.toggleExpandAllChilds,
|
|
expandAll = _props.expandAll;
|
|
|
|
var containerClasses = (0, _classnames2.default)('react-bs-container-header', 'table-header-wrapper', this.props.headerContainerClass);
|
|
var customTableClasses = {
|
|
'table-bordered': bordered
|
|
};
|
|
if (condensed) {
|
|
if (_util2.default.isBootstrap4(version)) customTableClasses['table-sm'] = true;else customTableClasses['table-condensed'] = true;
|
|
}
|
|
var tableClasses = (0, _classnames2.default)('table', 'table-hover', customTableClasses, this.props.tableHeaderClass);
|
|
|
|
var rowCount = Math.max.apply(Math, _toConsumableArray(_react2.default.Children.map(this.props.children, function (elm) {
|
|
return elm && elm.props.row ? Number(elm.props.row) : 0;
|
|
})));
|
|
|
|
var rows = [];
|
|
var rowKey = 0;
|
|
|
|
rows[0] = [];
|
|
rows[0].push([this.props.expandColumnVisible && this.props.expandColumnBeforeSelectColumn && _react2.default.createElement(_ExpandRowHeaderColumn2.default, { key: 'expandCol', rowCount: rowCount + 1,
|
|
expandedColumnHeaderComponent: expandedColumnHeaderComponent,
|
|
noAnyExpand: noAnyExpand,
|
|
expandAll: expandAll,
|
|
toggleExpandAllChilds: toggleExpandAllChilds })], [this.renderSelectRowHeader(rowCount + 1, rowKey++)], [this.props.expandColumnVisible && !this.props.expandColumnBeforeSelectColumn && _react2.default.createElement(_ExpandRowHeaderColumn2.default, { key: 'expandCol', rowCount: rowCount + 1,
|
|
expandedColumnHeaderComponent: expandedColumnHeaderComponent,
|
|
noAnyExpand: noAnyExpand,
|
|
expandAll: expandAll,
|
|
toggleExpandAllChilds: toggleExpandAllChilds })]);
|
|
|
|
_react2.default.Children.forEach(this.props.children, function (elm) {
|
|
if (elm === null || elm === undefined) {
|
|
// Skip null or undefined elements.
|
|
return;
|
|
}
|
|
var _elm$props = elm.props,
|
|
dataField = _elm$props.dataField,
|
|
dataSort = _elm$props.dataSort;
|
|
|
|
var sort = getSortOrder(sortList, dataField, dataSort);
|
|
var rowIndex = elm.props.row ? Number(elm.props.row) : 0;
|
|
var rowSpan = elm.props.rowSpan ? Number(elm.props.rowSpan) : 1;
|
|
if (rows[rowIndex] === undefined) {
|
|
rows[rowIndex] = [];
|
|
}
|
|
if (rowSpan + rowIndex === rowCount + 1) {
|
|
rows[rowIndex].push(_react2.default.cloneElement(elm, { reset: reset, key: rowKey++, onSort: onSort, sort: sort, sortIndicator: sortIndicator, isOnlyHead: false, version: version }));
|
|
} else {
|
|
rows[rowIndex].push(_react2.default.cloneElement(elm, { key: rowKey++, isOnlyHead: true, version: version }));
|
|
}
|
|
});
|
|
|
|
var trs = rows.map(function (row, indexRow) {
|
|
return _react2.default.createElement(
|
|
'tr',
|
|
{ key: indexRow },
|
|
row
|
|
);
|
|
});
|
|
|
|
return _react2.default.createElement(
|
|
'div',
|
|
{
|
|
ref: function ref(node) {
|
|
return _this4.container = node;
|
|
},
|
|
className: containerClasses,
|
|
style: this.props.style },
|
|
_react2.default.createElement(
|
|
'table',
|
|
{ className: tableClasses },
|
|
_react2.default.cloneElement(this.props.colGroups, { ref: function ref(node) {
|
|
return _this4.headerGrp = node;
|
|
} }),
|
|
_react2.default.createElement(
|
|
'thead',
|
|
{ ref: function ref(node) {
|
|
return _this4.header = node;
|
|
} },
|
|
trs
|
|
)
|
|
)
|
|
);
|
|
}
|
|
}, {
|
|
key: '__getHeaderColGrouop__REACT_HOT_LOADER__',
|
|
value: function __getHeaderColGrouop__REACT_HOT_LOADER__() {
|
|
return this.headerGrp.childNodes;
|
|
}
|
|
}, {
|
|
key: 'renderSelectRowHeader',
|
|
value: function renderSelectRowHeader(rowCount, rowKey) {
|
|
if (this.props.hideSelectColumn) {
|
|
return null;
|
|
} else if (this.props.customComponent) {
|
|
var CustomComponent = this.props.customComponent;
|
|
return _react2.default.createElement(
|
|
_SelectRowHeaderColumn2.default,
|
|
{ key: rowKey, rowCount: rowCount },
|
|
_react2.default.createElement(CustomComponent, { type: 'checkbox', checked: this.props.isSelectAll,
|
|
indeterminate: this.props.isSelectAll === 'indeterminate', disabled: false,
|
|
onChange: this.props.onSelectAllRow, rowIndex: 'Header' })
|
|
);
|
|
} else if (this.props.rowSelectType === _Const2.default.ROW_SELECT_SINGLE) {
|
|
return _react2.default.createElement(_SelectRowHeaderColumn2.default, { key: rowKey, rowCount: rowCount });
|
|
} else if (this.props.rowSelectType === _Const2.default.ROW_SELECT_MULTI) {
|
|
return _react2.default.createElement(
|
|
_SelectRowHeaderColumn2.default,
|
|
{ key: rowKey, rowCount: rowCount },
|
|
_react2.default.createElement(Checkbox, {
|
|
onChange: this.props.onSelectAllRow,
|
|
checked: this.props.isSelectAll })
|
|
);
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
}]);
|
|
|
|
return TableHeader;
|
|
}(_react.Component);
|
|
|
|
TableHeader.propTypes = {
|
|
headerContainerClass: _propTypes2.default.string,
|
|
tableHeaderClass: _propTypes2.default.string,
|
|
style: _propTypes2.default.object,
|
|
rowSelectType: _propTypes2.default.string,
|
|
onSort: _propTypes2.default.func,
|
|
onSelectAllRow: _propTypes2.default.func,
|
|
sortList: _propTypes2.default.array,
|
|
hideSelectColumn: _propTypes2.default.bool,
|
|
bordered: _propTypes2.default.bool,
|
|
condensed: _propTypes2.default.bool,
|
|
isFiltered: _propTypes2.default.bool,
|
|
isSelectAll: _propTypes2.default.oneOf([true, 'indeterminate', false]),
|
|
sortIndicator: _propTypes2.default.bool,
|
|
customComponent: _propTypes2.default.func,
|
|
colGroups: _propTypes2.default.element,
|
|
reset: _propTypes2.default.bool,
|
|
expandColumnVisible: _propTypes2.default.bool,
|
|
expandColumnComponent: _propTypes2.default.func,
|
|
expandedColumnHeaderComponent: _propTypes2.default.func,
|
|
expandColumnBeforeSelectColumn: _propTypes2.default.bool,
|
|
version: _propTypes2.default.string,
|
|
noAnyExpand: _propTypes2.default.bool,
|
|
expandAll: _propTypes2.default.bool,
|
|
toggleExpandAllChilds: _propTypes2.default.func
|
|
};
|
|
|
|
var _default = TableHeader;
|
|
exports.default = _default;
|
|
;
|
|
|
|
var _temp2 = function () {
|
|
if (typeof __REACT_HOT_LOADER__ === 'undefined') {
|
|
return;
|
|
}
|
|
|
|
__REACT_HOT_LOADER__.register(Checkbox, 'Checkbox', '/Users/allen/Node/react-bootstrap-table-new/react-bootstrap-table/src/TableHeader.js');
|
|
|
|
__REACT_HOT_LOADER__.register(getSortOrder, 'getSortOrder', '/Users/allen/Node/react-bootstrap-table-new/react-bootstrap-table/src/TableHeader.js');
|
|
|
|
__REACT_HOT_LOADER__.register(TableHeader, 'TableHeader', '/Users/allen/Node/react-bootstrap-table-new/react-bootstrap-table/src/TableHeader.js');
|
|
|
|
__REACT_HOT_LOADER__.register(_default, 'default', '/Users/allen/Node/react-bootstrap-table-new/react-bootstrap-table/src/TableHeader.js');
|
|
}();
|
|
|
|
; |