UNPKG

@6thquake/react-material

Version:

React components that implement Google's Material Design.

180 lines (143 loc) 5.11 kB
"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;