@6thquake/react-material
Version:
React components that implement Google's Material Design.
180 lines (143 loc) • 5.11 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
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 _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _react = _interopRequireDefault(require("react"));
var _reactDom = _interopRequireDefault(require("react-dom"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _styles = require("../../styles");
var _classnames = _interopRequireDefault(require("classnames"));
var _reactDnd = require("react-dnd");
var _ThCell = _interopRequireDefault(require("./ThCell"));
/**
* @ignore - do not document.
*/
var ItemTypes = {
COLUMN: 'column',
CHIP: 'chip'
};
var styles = function styles(theme) {
return {
root: {},
actionTopRight: {
position: 'absolute',
top: 0,
right: 0,
borderTop: "10px solid ".concat(theme.palette.grey[500]),
borderLeft: '10px solid transparent',
width: 0,
height: 0
},
actionTopLeft: {
position: 'absolute',
top: 0,
left: 0,
borderTop: "10px solid ".concat(theme.palette.grey[500]),
borderRight: '10px solid transparent',
width: 0,
height: 0
},
active: {
borderTop: "10px solid ".concat(theme.palette.primary.main)
}
};
};
var columnSource = {
beginDrag: function beginDrag(props, monitor, component) {
var onDragStart = props.onDragStart,
index = props.index;
onDragStart && onDragStart(index);
return {
name: props.name
};
}
};
var sourceCollect = function sourceCollect(connect, monitor) {
return {
connectDragSource: connect.dragSource(),
connectDragPreview: connect.dragPreview(),
isDragging: monitor.isDragging()
};
};
var columnTarget = {
drop: function drop(props, monitor, component) {
var onDragEnd = props.onDragEnd,
index = props.index;
onDragEnd && onDragEnd(index);
}
};
function targetCollect(connect, monitor) {
return {
connectDropTarget: connect.dropTarget()
};
}
/**
* @ignore - internal component.
*/
var Cell =
/*#__PURE__*/
function (_React$Component) {
(0, _inherits2.default)(Cell, _React$Component);
function Cell() {
var _this;
(0, _classCallCheck2.default)(this, Cell);
_this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(Cell).call(this));
_this.handleDoubleClick = function (e) {
var disableClickToFixColumn = _this.props.disableClickToFixColumn;
_this.setState({
show: true
});
};
_this.handleClick = function (index, fixed) {
var onColumnFixChange = _this.props.onColumnFixChange;
_this.setState({
show: false
});
onColumnFixChange && onColumnFixChange(index, fixed);
};
_this.state = {
show: false,
topRight: false,
topLeft: false
};
return _this;
}
(0, _createClass2.default)(Cell, [{
key: "render",
value: function render() {
var _this$props = this.props,
connectDropTarget = _this$props.connectDropTarget,
connectDragSource = _this$props.connectDragSource,
connectDragPreview = _this$props.connectDragPreview,
children = _this$props.children,
classes = _this$props.classes,
fixed = _this$props.fixed,
index = _this$props.index,
onColumnFixChange = _this$props.onColumnFixChange,
other = (0, _objectWithoutProperties2.default)(_this$props, ["connectDropTarget", "connectDragSource", "connectDragPreview", "children", "classes", "fixed", "index", "onColumnFixChange"]);
var show = this.state.show;
return connectDragSource(connectDropTarget(_react.default.createElement("th", (0, _extends2.default)({
onDoubleClick: this.handleDoubleClick,
className: classes.root
}, other), children, _react.default.createElement(_ThCell.default, {
fixed: fixed,
index: index,
show: show,
onColumnFixChange: this.handleClick
}))));
}
}]);
return Cell;
}(_react.default.Component); // Cell = DragSource(ItemTypes.COLUMN, columnSource, sourceCollect)(Cell)
Cell = (0, _reactDnd.DropTarget)(ItemTypes.COLUMN, columnTarget, targetCollect)((0, _reactDnd.DragSource)(ItemTypes.COLUMN, columnSource, sourceCollect)(Cell));
var _default = (0, _styles.withStyles)(styles)(Cell);
exports.default = _default;