dareway-rui
Version:
202 lines (173 loc) • 7.47 kB
JavaScript
'use strict';
var _interopRequireDefault = require('@babel/runtime/helpers/interopRequireDefault');
Object.defineProperty(exports, '__esModule', {
value: true
});
exports.default = void 0;
var _classCallCheck2 = _interopRequireDefault(require('@babel/runtime/helpers/classCallCheck'));
var _createClass2 = _interopRequireDefault(require('@babel/runtime/helpers/createClass'));
var _possibleConstructorReturn2 = _interopRequireDefault(require('@babel/runtime/helpers/possibleConstructorReturn'));
var _getPrototypeOf2 = _interopRequireDefault(require('@babel/runtime/helpers/getPrototypeOf'));
var _assertThisInitialized2 = _interopRequireDefault(require('@babel/runtime/helpers/assertThisInitialized'));
var _inherits2 = _interopRequireDefault(require('@babel/runtime/helpers/inherits'));
var _defineProperty2 = _interopRequireDefault(require('@babel/runtime/helpers/defineProperty'));
var _react = _interopRequireDefault(require('react'));
var _propTypes = _interopRequireDefault(require('prop-types'));
var _classnames = _interopRequireDefault(require('classnames'));
var _reactResizable = require('react-resizable');
var _SortIcon = _interopRequireDefault(require('../sort/SortIcon'));
var _ = require('../../');
var HeaderCell =
/*#__PURE__*/
(function(_React$PureComponent) {
(0, _inherits2.default)(HeaderCell, _React$PureComponent);
function HeaderCell(props) {
var _this;
(0, _classCallCheck2.default)(this, HeaderCell);
_this = (0, _possibleConstructorReturn2.default)(
this,
(0, _getPrototypeOf2.default)(HeaderCell).call(this, props)
);
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'handleSort', function() {
var _this$props = _this.props,
name = _this$props.name,
sortable = _this$props.sortable,
onSort = _this$props.onSort;
if (!sortable) {
return;
}
if (onSort) {
onSort(name);
}
});
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'genHeader', function() {
var _this$props2 = _this.props,
name = _this$props2.name,
head = _this$props2.head,
headBold = _this$props2.headBold,
headFontColor = _this$props2.headFontColor,
headOblique = _this$props2.headOblique,
sortable = _this$props2.sortable,
sortOrder = _this$props2.sortOrder,
readonly = _this$props2.readonly,
required = _this$props2.required,
width = _this$props2.width;
var thClass = (0, _classnames.default)({
'rui-grid-column-has-sorter': sortable,
'rui-grid-column-sorted': sortOrder
});
var style = {
minWidth: width,
maxWidth: width
};
if (headFontColor) {
style['color'] = headFontColor;
}
if (headBold) {
style['fontWeight'] = 'bold';
}
if (headOblique) {
style['fontStyle'] = 'oblique';
}
return _react.default.createElement(
'th',
{
name: name,
className: thClass,
title: head
},
_react.default.createElement(
'div',
{
style: style,
className: 'rui-grid-column-header-cell-wrapper',
onClick: _this.handleSort
},
required &&
_react.default.createElement(
'span',
{
className: 'rui-grid-column-header-required'
},
'*'
),
_react.default.createElement(
'span',
{
className: 'rui-grid-column-header-text'
},
head
),
sortable &&
_react.default.createElement(
'div',
{
className: 'rui-grid-column-sorter-container'
},
_react.default.createElement(_SortIcon.default, {
sortOrder: sortOrder
})
)
),
!readonly &&
_react.default.createElement(
'span',
{
className: 'rui-grid-column-has-edit'
},
_react.default.createElement(_.Icon, {
type: 'rui_editable'
})
)
);
});
return _this;
}
(0, _createClass2.default)(HeaderCell, [
{
key: 'render',
value: function render() {
var _this$props3 = this.props,
hidden = _this$props3.hidden,
width = _this$props3.width,
resizable = _this$props3.resizable,
onResize = _this$props3.onResize;
if (hidden) {
return null;
}
return resizable
? _react.default.createElement(
_reactResizable.Resizable,
{
width: width,
height: 0,
onResize: onResize
},
this.genHeader()
)
: this.genHeader();
}
}
]);
return HeaderCell;
})(_react.default.PureComponent);
exports.default = HeaderCell;
(0, _defineProperty2.default)(HeaderCell, 'propTypes', {
name: _propTypes.default.string,
// head
head: _propTypes.default.string,
headBold: _propTypes.default.bool,
headFontColor: _propTypes.default.string,
headOblique: _propTypes.default.bool,
// 排序相关属性
sortable: _propTypes.default.bool,
onSort: _propTypes.default.func,
sortOrder: _propTypes.default.string,
// 只读、必填、隐藏
readonly: _propTypes.default.bool,
required: _propTypes.default.bool,
hidden: _propTypes.default.bool,
// 宽度
width: _propTypes.default.number
});
//@ sourceMappingURL=HeaderCell.js.map