mk-component
Version:
- 1、npm install mk-component --save
113 lines (84 loc) • 3.24 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _autoSizer = require('./autoSizer');
var _autoSizer2 = _interopRequireDefault(_autoSizer);
var _grid = require('./grid');
var _grid2 = _interopRequireDefault(_grid);
var _omit = require('omit.js');
var _omit2 = _interopRequireDefault(_omit);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _fixedDataTable = require('fixed-data-table-2');
var _cell = require('./cell');
var _cell2 = _interopRequireDefault(_cell);
var _textCell = require('./textCell');
var _textCell2 = _interopRequireDefault(_textCell);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function getInternalGrid(props, width, height) {
var enableResizeColumn = !!props.enableResizeColumn;
var resizeProps = {},
columns = [];
if (enableResizeColumn && props.onColumnResizeEndCallback) {
resizeProps = {
isColumnResizing: false,
onColumnResizeEndCallback: props.onColumnResizeEndCallback
};
props.columns && props.columns.forEach(function (c, index) {
if (index < props.columns.length - 1) {
var cw = props.columnWidths && props.columnWidths[c.props.columnKey];
var p = {
isResizable: c.props.isResizeable === false ? false : true
};
if (cw) {
p.width = cw;
p.flexGrow = 0;
}
c = _react2.default.cloneElement(c, p);
}
columns.push(c);
});
} else {
columns = props.columns;
}
return (0, _grid2.default)((0, _extends3.default)({}, (0, _omit2.default)(props, ['className']), {
width: width,
height: height
}, resizeProps, {
columns: columns
}));
}
function DataGrid(props) {
var className = (0, _classnames2.default)((0, _defineProperty3.default)({
'data-grid': true,
'mk-datagrid': true
}, props.className, !!props.className));
var width = props.isFix ? props.width : 0;
var height = props.isFix ? props.height : 0;
return _react2.default.createElement(
'div',
{ className: className, onKeyDown: props.onKeyDown, onKeyUp: props.onKeyUp },
_react2.default.createElement(
_autoSizer2.default,
null,
function (_ref) {
var width = _ref.width,
height = _ref.height;
return getInternalGrid(props, width, height);
}
)
);
}
DataGrid.Cell = _cell2.default;
DataGrid.TextCell = _textCell2.default;
DataGrid.Column = _fixedDataTable.Column;
DataGrid.ColumnGroup = _fixedDataTable.ColumnGroup;
exports.default = DataGrid;
module.exports = exports['default'];