UNPKG

2.12 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _react = require('react');
8
9var _react2 = _interopRequireDefault(_react);
10
11var _reactDnd = require('react-dnd');
12
13function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
15function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
16
17var DragTypes = {
18 HEADER: 'header'
19};
20var headerSource = {
21 beginDrag: function beginDrag(_ref) {
22 var label = _ref.label;
23
24 return { label: label };
25 }
26};
27var headerTarget = {
28 hover: function hover(targetProps, monitor) {
29 var targetLabel = targetProps.label;
30 var sourceProps = monitor.getItem();
31 var sourceLabel = sourceProps.label;
32
33 if (sourceLabel !== targetLabel && targetProps.onMove) {
34 targetProps.onMove({ sourceLabel: sourceLabel, targetLabel: targetLabel });
35 }
36 },
37 drop: function drop(targetProps) {
38 if (targetProps.onFinishMove) {
39 targetProps.onFinishMove();
40 }
41 }
42};
43
44var dragSource = (0, _reactDnd.DragSource)( // eslint-disable-line new-cap
45DragTypes.HEADER, headerSource, function (connect) {
46 return {
47 connectDragSource: connect.dragSource()
48 };
49});
50var dropTarget = (0, _reactDnd.DropTarget)( // eslint-disable-line new-cap
51DragTypes.HEADER, headerTarget, function (connect) {
52 return {
53 connectDropTarget: connect.dropTarget()
54 };
55});
56var header = function header(_ref2) {
57 var connectDragSource = _ref2.connectDragSource,
58 connectDropTarget = _ref2.connectDropTarget,
59 label = _ref2.label,
60 children = _ref2.children,
61 onMove = _ref2.onMove,
62 onFinishMove = _ref2.onFinishMove,
63 props = _objectWithoutProperties(_ref2, ['connectDragSource', 'connectDropTarget', 'label', 'children', 'onMove', 'onFinishMove']);
64
65 return connectDragSource(connectDropTarget(_react2.default.createElement(
66 'th',
67 props,
68 children
69 )));
70};
71
72exports.default = dragSource(dropTarget(header));
\No newline at end of file