react-big-schedule 5.5.2-beta.5 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/dist/components/AddMore.js +29 -35
- package/dist/components/AddMorePopover.js +65 -83
- package/dist/components/AgendaEventItem.js +44 -54
- package/dist/components/AgendaResourceEvents.js +55 -65
- package/dist/components/AgendaView.js +50 -53
- package/dist/components/BodyView.js +30 -35
- package/dist/components/DnDContext.js +144 -159
- package/dist/components/DnDSource.js +107 -116
- package/dist/components/EventItem.js +659 -704
- package/dist/components/EventItemPopover.js +74 -83
- package/dist/components/HeaderView.js +81 -91
- package/dist/components/ResourceEvents.js +613 -675
- package/dist/components/ResourceView.js +71 -81
- package/dist/components/SchedulerData.js +1031 -1258
- package/dist/components/SchedulerHeader.js +83 -116
- package/dist/components/SelectedArea.js +18 -22
- package/dist/components/Summary.js +36 -45
- package/dist/components/WrapperFun.js +9 -19
- package/dist/components/index.js +317 -463
- package/dist/config/default.js +6 -12
- package/dist/config/i18n.js +13 -27
- package/dist/config/scheduler.js +8 -13
- package/dist/helper/behaviors.js +53 -61
- package/dist/helper/utility.js +40 -26
- package/dist/index.js +2 -103
- package/dist/sample-data/sample1.js +44 -8
- package/package.json +18 -18
|
@@ -1,58 +1,55 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
8
|
-
var _AgendaResourceEvents = _interopRequireDefault(require("./AgendaResourceEvents"));
|
|
9
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
1
|
+
import PropTypes from 'prop-types';
|
|
2
|
+
import AgendaResourceEvents from './AgendaResourceEvents';
|
|
3
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
4
|
function AgendaView(props) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
5
|
+
const {
|
|
6
|
+
schedulerData
|
|
7
|
+
} = props;
|
|
8
|
+
const {
|
|
9
|
+
config,
|
|
10
|
+
renderData
|
|
11
|
+
} = schedulerData;
|
|
12
|
+
const agendaResourceTableWidth = schedulerData.getResourceTableWidth();
|
|
13
|
+
const tableHeaderHeight = schedulerData.getTableHeaderHeight();
|
|
14
|
+
const resourceName = schedulerData.isEventPerspective ? config.taskName : config.resourceName;
|
|
15
|
+
const {
|
|
16
|
+
agendaViewHeader
|
|
17
|
+
} = config;
|
|
18
|
+
const resourceEventsList = renderData.map(item => /*#__PURE__*/_jsx(AgendaResourceEvents, {
|
|
19
|
+
resourceEvents: item,
|
|
20
|
+
schedulerData: schedulerData,
|
|
21
|
+
subtitleGetter: props.subtitleGetter,
|
|
22
|
+
eventItemClick: props.eventItemClick,
|
|
23
|
+
viewEventClick: props.viewEventClick,
|
|
24
|
+
viewEventText: props.viewEventText,
|
|
25
|
+
viewEvent2Click: props.viewEvent2Click,
|
|
26
|
+
viewEvent2Text: props.viewEvent2Text,
|
|
27
|
+
slotClickedFunc: props.slotClickedFunc,
|
|
28
|
+
slotItemTemplateResolver: props.slotItemTemplateResolver,
|
|
29
|
+
eventItemTemplateResolver: props.eventItemTemplateResolver,
|
|
30
|
+
eventItemPopoverTemplateResolver: props.eventItemPopoverTemplateResolver
|
|
31
|
+
}, item.slotId));
|
|
32
|
+
return /*#__PURE__*/_jsx("tr", {
|
|
33
|
+
children: /*#__PURE__*/_jsx("td", {
|
|
34
|
+
children: /*#__PURE__*/_jsxs("table", {
|
|
38
35
|
className: "scheduler-table",
|
|
39
|
-
children: [/*#__PURE__*/(
|
|
40
|
-
children: /*#__PURE__*/(
|
|
36
|
+
children: [/*#__PURE__*/_jsx("thead", {
|
|
37
|
+
children: /*#__PURE__*/_jsxs("tr", {
|
|
41
38
|
style: {
|
|
42
39
|
height: tableHeaderHeight
|
|
43
40
|
},
|
|
44
|
-
children: [/*#__PURE__*/(
|
|
41
|
+
children: [/*#__PURE__*/_jsx("th", {
|
|
45
42
|
style: {
|
|
46
43
|
width: agendaResourceTableWidth
|
|
47
44
|
},
|
|
48
45
|
className: "header3-text",
|
|
49
46
|
children: resourceName
|
|
50
|
-
}), /*#__PURE__*/(
|
|
47
|
+
}), /*#__PURE__*/_jsx("th", {
|
|
51
48
|
className: "header3-text",
|
|
52
49
|
children: agendaViewHeader
|
|
53
50
|
})]
|
|
54
51
|
})
|
|
55
|
-
}), /*#__PURE__*/(
|
|
52
|
+
}), /*#__PURE__*/_jsx("tbody", {
|
|
56
53
|
children: resourceEventsList
|
|
57
54
|
})]
|
|
58
55
|
})
|
|
@@ -60,16 +57,16 @@ function AgendaView(props) {
|
|
|
60
57
|
});
|
|
61
58
|
}
|
|
62
59
|
AgendaView.propTypes = {
|
|
63
|
-
schedulerData:
|
|
64
|
-
subtitleGetter:
|
|
65
|
-
eventItemClick:
|
|
66
|
-
viewEventClick:
|
|
67
|
-
viewEventText:
|
|
68
|
-
viewEvent2Click:
|
|
69
|
-
viewEvent2Text:
|
|
70
|
-
slotClickedFunc:
|
|
71
|
-
slotItemTemplateResolver:
|
|
72
|
-
eventItemTemplateResolver:
|
|
73
|
-
eventItemPopoverTemplateResolver:
|
|
60
|
+
schedulerData: PropTypes.object.isRequired,
|
|
61
|
+
subtitleGetter: PropTypes.func,
|
|
62
|
+
eventItemClick: PropTypes.func,
|
|
63
|
+
viewEventClick: PropTypes.func,
|
|
64
|
+
viewEventText: PropTypes.string,
|
|
65
|
+
viewEvent2Click: PropTypes.func,
|
|
66
|
+
viewEvent2Text: PropTypes.string,
|
|
67
|
+
slotClickedFunc: PropTypes.func,
|
|
68
|
+
slotItemTemplateResolver: PropTypes.func,
|
|
69
|
+
eventItemTemplateResolver: PropTypes.func,
|
|
70
|
+
eventItemPopoverTemplateResolver: PropTypes.func
|
|
74
71
|
};
|
|
75
|
-
|
|
72
|
+
export default AgendaView;
|
|
@@ -1,30 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
rowHeight = _ref2.rowHeight;
|
|
24
|
-
var rowCells = headers.map(function (header, index) {
|
|
25
|
-
var key = "".concat(slotId, "_").concat(header.time);
|
|
26
|
-
var style = index === headers.length - 1 ? {} : {
|
|
27
|
-
width: width
|
|
1
|
+
import PropTypes from 'prop-types';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
|
+
function BodyView({
|
|
5
|
+
schedulerData
|
|
6
|
+
}) {
|
|
7
|
+
const {
|
|
8
|
+
renderData,
|
|
9
|
+
headers,
|
|
10
|
+
config,
|
|
11
|
+
behaviors
|
|
12
|
+
} = schedulerData;
|
|
13
|
+
const width = schedulerData.getContentCellWidth();
|
|
14
|
+
const tableRows = renderData.filter(o => o.render).map(({
|
|
15
|
+
slotId,
|
|
16
|
+
groupOnly,
|
|
17
|
+
rowHeight
|
|
18
|
+
}) => {
|
|
19
|
+
const rowCells = headers.map((header, index) => {
|
|
20
|
+
const key = `${slotId}_${header.time}`;
|
|
21
|
+
const style = index === headers.length - 1 ? {} : {
|
|
22
|
+
width
|
|
28
23
|
};
|
|
29
24
|
if (header.nonWorkingTime) {
|
|
30
25
|
style.backgroundColor = config.nonWorkingTimeBodyBgColor;
|
|
@@ -33,29 +28,29 @@ function BodyView(_ref) {
|
|
|
33
28
|
style.backgroundColor = config.groupOnlySlotColor;
|
|
34
29
|
}
|
|
35
30
|
if (behaviors.getNonAgendaViewBodyCellBgColorFunc) {
|
|
36
|
-
|
|
31
|
+
const cellBgColor = behaviors.getNonAgendaViewBodyCellBgColorFunc(schedulerData, slotId, header);
|
|
37
32
|
if (cellBgColor) {
|
|
38
33
|
style.backgroundColor = cellBgColor;
|
|
39
34
|
}
|
|
40
35
|
}
|
|
41
|
-
return /*#__PURE__*/(
|
|
36
|
+
return /*#__PURE__*/_jsx("td", {
|
|
42
37
|
style: style,
|
|
43
|
-
children: /*#__PURE__*/(
|
|
38
|
+
children: /*#__PURE__*/_jsx("div", {})
|
|
44
39
|
}, key);
|
|
45
40
|
});
|
|
46
|
-
return /*#__PURE__*/(
|
|
41
|
+
return /*#__PURE__*/_jsx("tr", {
|
|
47
42
|
style: {
|
|
48
43
|
height: rowHeight
|
|
49
44
|
},
|
|
50
45
|
children: rowCells
|
|
51
46
|
}, slotId);
|
|
52
47
|
});
|
|
53
|
-
return /*#__PURE__*/(
|
|
48
|
+
return /*#__PURE__*/_jsx("tbody", {
|
|
54
49
|
children: tableRows
|
|
55
50
|
});
|
|
56
51
|
}
|
|
57
52
|
BodyView.propTypes = {
|
|
58
|
-
schedulerData:
|
|
59
|
-
schedulerDataVersion:
|
|
53
|
+
schedulerData: PropTypes.object.isRequired,
|
|
54
|
+
schedulerDataVersion: PropTypes.number
|
|
60
55
|
};
|
|
61
|
-
|
|
56
|
+
export default /*#__PURE__*/React.memo(BodyView);
|
|
@@ -1,171 +1,156 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
19
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
20
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
21
|
-
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
22
|
-
var DnDContext = exports["default"] = /*#__PURE__*/_createClass(function DnDContext(sources) {
|
|
23
|
-
var _this = this;
|
|
24
|
-
_classCallCheck(this, DnDContext);
|
|
25
|
-
_defineProperty(this, "extractInitialTimes", function (monitor, pos, cellWidth, resourceEvents, cellUnit, localeDayjs) {
|
|
26
|
-
var initialPoint = monitor.getInitialClientOffset();
|
|
27
|
-
var initialLeftIndex = Math.floor((initialPoint.x - pos.x) / cellWidth);
|
|
28
|
-
var initialStart = resourceEvents.headerItems[initialLeftIndex].start;
|
|
29
|
-
var initialEnd = resourceEvents.headerItems[initialLeftIndex].end;
|
|
30
|
-
if (cellUnit !== _default.CellUnit.Hour) {
|
|
31
|
-
var end = localeDayjs(new Date(initialStart)).hour(23).minute(59).second(59);
|
|
32
|
-
initialEnd = end.format(_default.DATETIME_FORMAT);
|
|
1
|
+
import { CellUnit, DATETIME_FORMAT, DnDTypes, ViewType } from '../config/default';
|
|
2
|
+
import { getPos } from '../helper/utility';
|
|
3
|
+
export default class DnDContext {
|
|
4
|
+
constructor(sources) {
|
|
5
|
+
this.sourceMap = new Map();
|
|
6
|
+
sources.forEach(item => {
|
|
7
|
+
this.sourceMap.set(item.dndType, item);
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
extractInitialTimes = (monitor, pos, cellWidth, resourceEvents, cellUnit, localeDayjs) => {
|
|
11
|
+
const initialPoint = monitor.getInitialClientOffset();
|
|
12
|
+
const initialLeftIndex = Math.floor((initialPoint.x - pos.x) / cellWidth);
|
|
13
|
+
const initialStart = resourceEvents.headerItems[initialLeftIndex].start;
|
|
14
|
+
let initialEnd = resourceEvents.headerItems[initialLeftIndex].end;
|
|
15
|
+
if (cellUnit !== CellUnit.Hour) {
|
|
16
|
+
const end = localeDayjs(new Date(initialStart)).hour(23).minute(59).second(59);
|
|
17
|
+
initialEnd = end.format(DATETIME_FORMAT);
|
|
33
18
|
}
|
|
34
19
|
return {
|
|
35
|
-
initialStart
|
|
36
|
-
initialEnd
|
|
20
|
+
initialStart,
|
|
21
|
+
initialEnd
|
|
37
22
|
};
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
23
|
+
};
|
|
24
|
+
getDropSpec = () => ({
|
|
25
|
+
drop: (props, monitor, component) => {
|
|
26
|
+
const {
|
|
27
|
+
schedulerData,
|
|
28
|
+
resourceEvents
|
|
29
|
+
} = props;
|
|
30
|
+
const {
|
|
31
|
+
cellUnit,
|
|
32
|
+
localeDayjs
|
|
33
|
+
} = schedulerData;
|
|
34
|
+
const type = monitor.getItemType();
|
|
35
|
+
const pos = getPos(component.eventContainer);
|
|
36
|
+
const cellWidth = schedulerData.getContentCellWidth();
|
|
37
|
+
let initialStartTime = null;
|
|
38
|
+
let initialEndTime = null;
|
|
39
|
+
if (type === DnDTypes.EVENT) {
|
|
40
|
+
const {
|
|
41
|
+
initialStart,
|
|
42
|
+
initialEnd
|
|
43
|
+
} = this.extractInitialTimes(monitor, pos, cellWidth, resourceEvents, cellUnit, localeDayjs);
|
|
44
|
+
initialStartTime = initialStart;
|
|
45
|
+
initialEndTime = initialEnd;
|
|
46
|
+
}
|
|
47
|
+
const point = monitor.getClientOffset();
|
|
48
|
+
const leftIndex = Math.floor((point.x - pos.x) / cellWidth);
|
|
49
|
+
const startTime = resourceEvents.headerItems[leftIndex].start;
|
|
50
|
+
let endTime = resourceEvents.headerItems[leftIndex].end;
|
|
51
|
+
if (cellUnit !== CellUnit.Hour) {
|
|
52
|
+
endTime = localeDayjs(new Date(resourceEvents.headerItems[leftIndex].start)).hour(23).minute(59).second(59).format(DATETIME_FORMAT);
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
55
|
+
slotId: resourceEvents.slotId,
|
|
56
|
+
slotName: resourceEvents.slotName,
|
|
57
|
+
start: startTime,
|
|
58
|
+
end: endTime,
|
|
59
|
+
initialStart: initialStartTime,
|
|
60
|
+
initialEnd: initialEndTime
|
|
61
|
+
};
|
|
62
|
+
},
|
|
63
|
+
hover: (props, monitor, component) => {
|
|
64
|
+
const {
|
|
65
|
+
schedulerData,
|
|
66
|
+
resourceEvents,
|
|
67
|
+
movingEvent
|
|
68
|
+
} = props;
|
|
69
|
+
const {
|
|
70
|
+
cellUnit,
|
|
71
|
+
config,
|
|
72
|
+
viewType,
|
|
73
|
+
localeDayjs
|
|
74
|
+
} = schedulerData;
|
|
75
|
+
this.config = config;
|
|
76
|
+
const item = monitor.getItem();
|
|
77
|
+
const type = monitor.getItemType();
|
|
78
|
+
const pos = getPos(component.eventContainer);
|
|
79
|
+
const cellWidth = schedulerData.getContentCellWidth();
|
|
80
|
+
let initialStart = null;
|
|
81
|
+
if (type === DnDTypes.EVENT) {
|
|
82
|
+
const {
|
|
83
|
+
initialStart: iStart
|
|
84
|
+
} = this.extractInitialTimes(monitor, pos, cellWidth, resourceEvents, cellUnit, localeDayjs);
|
|
85
|
+
initialStart = iStart;
|
|
86
|
+
}
|
|
87
|
+
const point = monitor.getClientOffset();
|
|
88
|
+
const leftIndex = Math.floor((point.x - pos.x) / cellWidth);
|
|
89
|
+
if (!resourceEvents.headerItems[leftIndex]) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
let newStart = resourceEvents.headerItems[leftIndex].start;
|
|
93
|
+
let newEnd = resourceEvents.headerItems[leftIndex].end;
|
|
94
|
+
if (cellUnit !== CellUnit.Hour) {
|
|
95
|
+
newEnd = localeDayjs(new Date(resourceEvents.headerItems[leftIndex].start)).hour(23).minute(59).second(59).format(DATETIME_FORMAT);
|
|
96
|
+
}
|
|
97
|
+
let {
|
|
98
|
+
slotId,
|
|
99
|
+
slotName
|
|
100
|
+
} = resourceEvents;
|
|
101
|
+
let action = 'New';
|
|
102
|
+
const isEvent = type === DnDTypes.EVENT;
|
|
103
|
+
if (isEvent) {
|
|
104
|
+
const event = item;
|
|
105
|
+
if (config.relativeMove) {
|
|
106
|
+
newStart = localeDayjs(event.start).add(localeDayjs(newStart).diff(localeDayjs(new Date(initialStart))), 'ms').format(DATETIME_FORMAT);
|
|
107
|
+
} else if (viewType !== ViewType.Day) {
|
|
108
|
+
const tmpDayjs = localeDayjs(newStart);
|
|
109
|
+
newStart = localeDayjs(event.start).year(tmpDayjs.year()).month(tmpDayjs.month()).date(tmpDayjs.date()).format(DATETIME_FORMAT);
|
|
102
110
|
}
|
|
103
|
-
|
|
104
|
-
slotName = resourceEvents.slotName;
|
|
105
|
-
var action = 'New';
|
|
106
|
-
var isEvent = type === _default.DnDTypes.EVENT;
|
|
107
|
-
if (isEvent) {
|
|
108
|
-
var event = item;
|
|
109
|
-
if (config.relativeMove) {
|
|
110
|
-
newStart = localeDayjs(event.start).add(localeDayjs(newStart).diff(localeDayjs(new Date(initialStart))), 'ms').format(_default.DATETIME_FORMAT);
|
|
111
|
-
} else if (viewType !== _default.ViewType.Day) {
|
|
112
|
-
var tmpDayjs = localeDayjs(newStart);
|
|
113
|
-
newStart = localeDayjs(event.start).year(tmpDayjs.year()).month(tmpDayjs.month()).date(tmpDayjs.date()).format(_default.DATETIME_FORMAT);
|
|
114
|
-
}
|
|
115
|
-
newEnd = localeDayjs(newStart).add(localeDayjs(event.end).diff(localeDayjs(event.start)), 'ms').format(_default.DATETIME_FORMAT);
|
|
111
|
+
newEnd = localeDayjs(newStart).add(localeDayjs(event.end).diff(localeDayjs(event.start)), 'ms').format(DATETIME_FORMAT);
|
|
116
112
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
}
|
|
124
|
-
action = 'Move';
|
|
125
|
-
}
|
|
126
|
-
if (movingEvent) {
|
|
127
|
-
movingEvent(schedulerData, slotId, slotName, newStart, newEnd, action, type, item);
|
|
113
|
+
// if crossResourceMove disabled, slot returns old value
|
|
114
|
+
if (config.crossResourceMove === false) {
|
|
115
|
+
slotId = schedulerData._getEventSlotId(item);
|
|
116
|
+
slotName = undefined;
|
|
117
|
+
const slot = schedulerData.getSlotById(slotId);
|
|
118
|
+
if (slot) slotName = slot.name;
|
|
128
119
|
}
|
|
129
|
-
|
|
130
|
-
canDrop: function canDrop(props, monitor) {
|
|
131
|
-
var schedulerData = props.schedulerData,
|
|
132
|
-
resourceEvents = props.resourceEvents;
|
|
133
|
-
var item = monitor.getItem();
|
|
134
|
-
if (schedulerData._isResizing()) return false;
|
|
135
|
-
var config = schedulerData.config;
|
|
136
|
-
return config.movable && !resourceEvents.groupOnly && (item.movable === undefined || item.movable !== false);
|
|
120
|
+
action = 'Move';
|
|
137
121
|
}
|
|
138
|
-
|
|
122
|
+
if (movingEvent) {
|
|
123
|
+
movingEvent(schedulerData, slotId, slotName, newStart, newEnd, action, type, item);
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
canDrop: (props, monitor) => {
|
|
127
|
+
const {
|
|
128
|
+
schedulerData,
|
|
129
|
+
resourceEvents
|
|
130
|
+
} = props;
|
|
131
|
+
const item = monitor.getItem();
|
|
132
|
+
if (schedulerData._isResizing()) return false;
|
|
133
|
+
const {
|
|
134
|
+
config
|
|
135
|
+
} = schedulerData;
|
|
136
|
+
return config.movable && !resourceEvents.groupOnly && (item.movable === undefined || item.movable !== false);
|
|
137
|
+
}
|
|
139
138
|
});
|
|
139
|
+
|
|
140
140
|
// Returns the drop specification for use with useDrop hook
|
|
141
141
|
// This should be called with props from the component using the hook
|
|
142
|
-
|
|
143
|
-
|
|
142
|
+
getDropOptions = (props, component) => {
|
|
143
|
+
const spec = this.getDropSpec();
|
|
144
144
|
return {
|
|
145
|
-
accept:
|
|
146
|
-
drop:
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
return spec.canDrop(props, monitor);
|
|
154
|
-
},
|
|
155
|
-
collect: function collect(monitor) {
|
|
156
|
-
return {
|
|
157
|
-
isOver: monitor.isOver(),
|
|
158
|
-
canDrop: monitor.canDrop()
|
|
159
|
-
};
|
|
160
|
-
}
|
|
145
|
+
accept: [...this.sourceMap.keys()],
|
|
146
|
+
drop: (_item, monitor) => spec.drop(props, monitor, component),
|
|
147
|
+
hover: (_item, monitor) => spec.hover(props, monitor, component),
|
|
148
|
+
canDrop: (_item, monitor) => spec.canDrop(props, monitor),
|
|
149
|
+
collect: monitor => ({
|
|
150
|
+
isOver: monitor.isOver(),
|
|
151
|
+
canDrop: monitor.canDrop()
|
|
152
|
+
})
|
|
161
153
|
};
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
return _this.sourceMap.get(dndType);
|
|
166
|
-
});
|
|
167
|
-
this.sourceMap = new Map();
|
|
168
|
-
sources.forEach(function (item) {
|
|
169
|
-
_this.sourceMap.set(item.dndType, item);
|
|
170
|
-
});
|
|
171
|
-
});
|
|
154
|
+
};
|
|
155
|
+
getDndSource = (dndType = DnDTypes.EVENT) => this.sourceMap.get(dndType);
|
|
156
|
+
}
|