UNPKG

react-bootstrap-table-next

Version:
174 lines (133 loc) 6.9 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.CheckBox = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; 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 _const = require('../const'); var _const2 = _interopRequireDefault(_const); var _bootstrap = require('../contexts/bootstrap'); var _utils = require('../utils'); var _utils2 = _interopRequireDefault(_utils); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 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; } /* eslint react/require-default-props: 0 */ var CheckBox = exports.CheckBox = function CheckBox(_ref) { var className = _ref.className, checked = _ref.checked, indeterminate = _ref.indeterminate; return _react2.default.createElement('input', { type: 'checkbox', checked: checked, className: className, ref: function ref(input) { if (input) input.indeterminate = indeterminate; // eslint-disable-line no-param-reassign }, onChange: function onChange() {} }); }; CheckBox.propTypes = { checked: _propTypes2.default.bool.isRequired, indeterminate: _propTypes2.default.bool.isRequired, className: _propTypes2.default.string }; var SelectionHeaderCell = function (_Component) { _inherits(SelectionHeaderCell, _Component); function SelectionHeaderCell() { _classCallCheck(this, SelectionHeaderCell); var _this = _possibleConstructorReturn(this, (SelectionHeaderCell.__proto__ || Object.getPrototypeOf(SelectionHeaderCell)).call(this)); _this.handleCheckBoxClick = _this.handleCheckBoxClick.bind(_this); return _this; } /** * avoid updating if button is * 1. radio * 2. status was not changed. */ _createClass(SelectionHeaderCell, [{ key: 'shouldComponentUpdate', value: function shouldComponentUpdate(nextProps) { var ROW_SELECT_SINGLE = _const2.default.ROW_SELECT_SINGLE; var _props = this.props, mode = _props.mode, checkedStatus = _props.checkedStatus; if (mode === ROW_SELECT_SINGLE) return false; return nextProps.checkedStatus !== checkedStatus; } }, { key: 'handleCheckBoxClick', value: function handleCheckBoxClick(e) { var _props2 = this.props, onAllRowsSelect = _props2.onAllRowsSelect, checkedStatus = _props2.checkedStatus; var isUnSelect = checkedStatus === _const2.default.CHECKBOX_STATUS_CHECKED || checkedStatus === _const2.default.CHECKBOX_STATUS_INDETERMINATE; onAllRowsSelect(e, isUnSelect); } }, { key: 'render', value: function render() { var _this2 = this; var CHECKBOX_STATUS_CHECKED = _const2.default.CHECKBOX_STATUS_CHECKED, CHECKBOX_STATUS_INDETERMINATE = _const2.default.CHECKBOX_STATUS_INDETERMINATE, ROW_SELECT_MULTIPLE = _const2.default.ROW_SELECT_MULTIPLE; var _props3 = this.props, mode = _props3.mode, checkedStatus = _props3.checkedStatus, selectionHeaderRenderer = _props3.selectionHeaderRenderer, hideSelectAll = _props3.hideSelectAll, headerColumnStyle = _props3.headerColumnStyle; if (hideSelectAll) { return _react2.default.createElement('th', { 'data-row-selection': true }); } var checked = checkedStatus === CHECKBOX_STATUS_CHECKED; var indeterminate = checkedStatus === CHECKBOX_STATUS_INDETERMINATE; var attrs = {}; var content = void 0; if (selectionHeaderRenderer || mode === ROW_SELECT_MULTIPLE) { attrs.onClick = this.handleCheckBoxClick; } attrs.style = _utils2.default.isFunction(headerColumnStyle) ? headerColumnStyle(checkedStatus) : headerColumnStyle; return _react2.default.createElement( _bootstrap.BootstrapContext.Consumer, null, function (_ref2) { var bootstrap4 = _ref2.bootstrap4; if (selectionHeaderRenderer) { content = selectionHeaderRenderer({ mode: mode, checked: checked, indeterminate: indeterminate }); } else if (mode === ROW_SELECT_MULTIPLE) { content = _react2.default.createElement(CheckBox, _extends({}, _this2.props, { checked: checked, className: bootstrap4 ? 'selection-input-4' : '', indeterminate: indeterminate })); } return _react2.default.createElement( 'th', _extends({ className: 'selection-cell-header', 'data-row-selection': true }, attrs), content ); } ); } }]); return SelectionHeaderCell; }(_react.Component); SelectionHeaderCell.propTypes = { mode: _propTypes2.default.string.isRequired, checkedStatus: _propTypes2.default.string, onAllRowsSelect: _propTypes2.default.func, hideSelectAll: _propTypes2.default.bool, selectionHeaderRenderer: _propTypes2.default.func, headerColumnStyle: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.func]) }; exports.default = SelectionHeaderCell;