UNPKG

@6thquake/react-material

Version:

React components that implement Google's Material Design.

128 lines (99 loc) 3.58 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 _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 _reactDnd = require("react-dnd"); var _CrossTabulationColumn = _interopRequireDefault(require("./CrossTabulationColumn")); var _CrossTabulationUtilities = require("./CrossTabulationUtilities"); /** * @ignore - do not document. */ var ItemTypes = { FILTER: 'filterBox', COLUMN: 'column', CHIP: 'chip' }; var columnTarget = { drop: function drop(props, monitor, component) { // 获取正在拖放的数据 var item = monitor.getItem(); // 更新组件状态 var items = component.state.items; items.push(item.name); component.setState({ items: items }); component.props.onDrop(items); } }; function chipDropcollect(connect, monitor) { return { connectDropTarget: connect.dropTarget() }; } /** * @ignore - internal component. */ var DropZone = /*#__PURE__*/ function (_React$Component) { (0, _inherits2.default)(DropZone, _React$Component); function DropZone(props) { var _this; (0, _classCallCheck2.default)(this, DropZone); _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(DropZone).call(this, props)); _this.dragOut = function (val) { return function () { var items = _this.state.items; var index = items.indexOf(val); if (index > -1) { items.splice(index, 1); _this.setState({ items: items }); } }; }; _this.state = { items: props.items }; return _this; } (0, _createClass2.default)(DropZone, [{ key: "render", value: function render() { var _this2 = this; var connectDropTarget = this.props.connectDropTarget; return connectDropTarget(_react.default.createElement("div", { style: { display: 'inline-block', width: '100%', height: '100%' } }, this.state.items.map(function (value, index) { return _react.default.createElement(_CrossTabulationColumn.default, (0, _extends2.default)({ name: value, key: value, attrValues: _this2.props.attrValuess[value], valueFilter: _this2.props.valueFilters[value] || {}, zIndex: _this2.props.zIndices[value] || _this2.props.maxZIndex, sorter: (0, _CrossTabulationUtilities.getSort)(_this2.props.sorters, value), dragOut: _this2.dragOut(value).bind(_this2) }, _this2.props)); }))); } }]); return DropZone; }(_react.default.Component); var _default = (0, _reactDnd.DropTarget)(ItemTypes.CHIP, columnTarget, chipDropcollect)(DropZone); exports.default = _default;