react-big-schedule 5.5.2-beta.4 → 6.0.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
package/dist/components/index.js
CHANGED
|
@@ -1,118 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
enumerable: true,
|
|
21
|
-
get: function get() {
|
|
22
|
-
return _default.DATETIME_FORMAT;
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
Object.defineProperty(exports, "DATE_FORMAT", {
|
|
26
|
-
enumerable: true,
|
|
27
|
-
get: function get() {
|
|
28
|
-
return _default.DATE_FORMAT;
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
Object.defineProperty(exports, "DemoData", {
|
|
32
|
-
enumerable: true,
|
|
33
|
-
get: function get() {
|
|
34
|
-
return _sample["default"];
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
Object.defineProperty(exports, "DnDContext", {
|
|
38
|
-
enumerable: true,
|
|
39
|
-
get: function get() {
|
|
40
|
-
return _DnDContext["default"];
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
Object.defineProperty(exports, "DnDSource", {
|
|
44
|
-
enumerable: true,
|
|
45
|
-
get: function get() {
|
|
46
|
-
return _DnDSource["default"];
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
exports.Scheduler = Scheduler;
|
|
50
|
-
Object.defineProperty(exports, "SchedulerData", {
|
|
51
|
-
enumerable: true,
|
|
52
|
-
get: function get() {
|
|
53
|
-
return _SchedulerData["default"];
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
Object.defineProperty(exports, "SummaryPos", {
|
|
57
|
-
enumerable: true,
|
|
58
|
-
get: function get() {
|
|
59
|
-
return _default.SummaryPos;
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
Object.defineProperty(exports, "ViewType", {
|
|
63
|
-
enumerable: true,
|
|
64
|
-
get: function get() {
|
|
65
|
-
return _default.ViewType;
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
Object.defineProperty(exports, "wrapperFun", {
|
|
69
|
-
enumerable: true,
|
|
70
|
-
get: function get() {
|
|
71
|
-
return _WrapperFun["default"];
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
75
|
-
var _react = require("react");
|
|
76
|
-
var _default = require("../config/default");
|
|
77
|
-
var _sample = _interopRequireDefault(require("../sample-data/sample1"));
|
|
78
|
-
var _AddMorePopover = _interopRequireDefault(require("./AddMorePopover"));
|
|
79
|
-
var _AgendaView = _interopRequireDefault(require("./AgendaView"));
|
|
80
|
-
var _BodyView = _interopRequireDefault(require("./BodyView"));
|
|
81
|
-
var _DnDContext = _interopRequireDefault(require("./DnDContext"));
|
|
82
|
-
var _DnDSource = _interopRequireDefault(require("./DnDSource"));
|
|
83
|
-
var _HeaderView = _interopRequireDefault(require("./HeaderView"));
|
|
84
|
-
var _ResourceEvents = _interopRequireDefault(require("./ResourceEvents"));
|
|
85
|
-
var _ResourceView = _interopRequireDefault(require("./ResourceView"));
|
|
86
|
-
var _SchedulerData = _interopRequireDefault(require("./SchedulerData"));
|
|
87
|
-
var _SchedulerHeader = _interopRequireDefault(require("./SchedulerHeader"));
|
|
88
|
-
var _WrapperFun = _interopRequireDefault(require("./WrapperFun"));
|
|
89
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
90
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
91
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
92
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
93
|
-
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; }
|
|
94
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
95
|
-
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); }
|
|
96
|
-
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
97
|
-
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
98
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
99
|
-
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
100
|
-
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
101
|
-
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
102
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
103
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
104
|
-
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
105
|
-
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
106
|
-
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
107
|
-
var initDndContext = function initDndContext(schedulerData, dndSources) {
|
|
108
|
-
var sources = [];
|
|
109
|
-
sources.push(new _DnDSource["default"](function (dndProps) {
|
|
110
|
-
return dndProps.eventItem;
|
|
111
|
-
}, schedulerData.config.dragAndDropEnabled));
|
|
1
|
+
import PropTypes from 'prop-types';
|
|
2
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
3
|
+
import { CellUnit, DATE_FORMAT, DATETIME_FORMAT, SummaryPos, ViewType } from '../config/default';
|
|
4
|
+
import DemoData from '../sample-data/sample1';
|
|
5
|
+
import AddMorePopover from './AddMorePopover';
|
|
6
|
+
import AgendaView from './AgendaView';
|
|
7
|
+
import BodyView from './BodyView';
|
|
8
|
+
import DnDContext from './DnDContext';
|
|
9
|
+
import DnDSource from './DnDSource';
|
|
10
|
+
import HeaderView from './HeaderView';
|
|
11
|
+
import ResourceEvents from './ResourceEvents';
|
|
12
|
+
import ResourceView from './ResourceView';
|
|
13
|
+
import SchedulerData from './SchedulerData';
|
|
14
|
+
import SchedulerHeader from './SchedulerHeader';
|
|
15
|
+
import wrapperFun from './WrapperFun';
|
|
16
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
|
+
const initDndContext = (schedulerData, dndSources) => {
|
|
18
|
+
let sources = [];
|
|
19
|
+
sources.push(new DnDSource(dndProps => dndProps.eventItem, schedulerData.config.dragAndDropEnabled));
|
|
112
20
|
if (dndSources !== undefined && dndSources.length > 0) {
|
|
113
|
-
sources = [
|
|
21
|
+
sources = [...sources, ...dndSources];
|
|
114
22
|
}
|
|
115
|
-
return new
|
|
23
|
+
return new DnDContext(sources);
|
|
116
24
|
};
|
|
117
25
|
|
|
118
26
|
/**
|
|
@@ -194,99 +102,75 @@ var initDndContext = function initDndContext(schedulerData, dndSources) {
|
|
|
194
102
|
*/
|
|
195
103
|
|
|
196
104
|
function Scheduler(props) {
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
resourceScrollbarHeight = _useState8[0],
|
|
228
|
-
setResourceScrollbarHeight = _useState8[1];
|
|
229
|
-
var _useState9 = (0, _react.useState)(17),
|
|
230
|
-
_useState0 = _slicedToArray(_useState9, 2),
|
|
231
|
-
resourceScrollbarWidth = _useState0[0],
|
|
232
|
-
setResourceScrollbarWidth = _useState0[1];
|
|
233
|
-
var _useState1 = (0, _react.useState)({
|
|
234
|
-
isSelecting: false,
|
|
235
|
-
selectedResourceIds: [],
|
|
236
|
-
left: 0,
|
|
237
|
-
width: 0
|
|
238
|
-
}),
|
|
239
|
-
_useState10 = _slicedToArray(_useState1, 2),
|
|
240
|
-
selectionState = _useState10[0],
|
|
241
|
-
setSelectionState = _useState10[1];
|
|
242
|
-
var _useState11 = (0, _react.useState)(0),
|
|
243
|
-
_useState12 = _slicedToArray(_useState11, 2),
|
|
244
|
-
setRenderTrigger = _useState12[1];
|
|
245
|
-
var schedulerRootRef = (0, _react.useRef)(null);
|
|
105
|
+
const {
|
|
106
|
+
schedulerData,
|
|
107
|
+
dndSources,
|
|
108
|
+
parentRef,
|
|
109
|
+
prevClick,
|
|
110
|
+
nextClick,
|
|
111
|
+
onViewChange,
|
|
112
|
+
onSelectDate,
|
|
113
|
+
leftCustomHeader,
|
|
114
|
+
rightCustomHeader,
|
|
115
|
+
CustomResourceHeader,
|
|
116
|
+
configTableHeaderStyle,
|
|
117
|
+
onScrollLeft,
|
|
118
|
+
onScrollRight,
|
|
119
|
+
onScrollTop,
|
|
120
|
+
onScrollBottom
|
|
121
|
+
} = props;
|
|
122
|
+
const [dndContext] = useState(() => initDndContext(schedulerData, dndSources));
|
|
123
|
+
const [contentScrollbarHeight, setContentScrollbarHeight] = useState(17);
|
|
124
|
+
const [contentScrollbarWidth, setContentScrollbarWidth] = useState(17);
|
|
125
|
+
const [resourceScrollbarHeight, setResourceScrollbarHeight] = useState(17);
|
|
126
|
+
const [resourceScrollbarWidth, setResourceScrollbarWidth] = useState(17);
|
|
127
|
+
const [selectionState, setSelectionState] = useState({
|
|
128
|
+
isSelecting: false,
|
|
129
|
+
selectedResourceIds: [],
|
|
130
|
+
left: 0,
|
|
131
|
+
width: 0
|
|
132
|
+
});
|
|
133
|
+
const [, setRenderTrigger] = useState(0);
|
|
134
|
+
const schedulerRootRef = useRef(null);
|
|
246
135
|
|
|
247
136
|
// Layout/header refs - declare before setSchedulerHeaderRef useCallback
|
|
248
|
-
|
|
137
|
+
const schedulerHeaderRef = useRef(null);
|
|
249
138
|
|
|
250
139
|
// Callback ref pattern for ResizeObserver to handle schedulerHeader element reassignment
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
schedulerHeaderEl = _useState14[0],
|
|
254
|
-
setSchedulerHeaderEl = _useState14[1];
|
|
255
|
-
var setSchedulerHeaderRef = (0, _react.useCallback)(function (el) {
|
|
140
|
+
const [schedulerHeaderEl, setSchedulerHeaderEl] = useState(null);
|
|
141
|
+
const setSchedulerHeaderRef = useCallback(el => {
|
|
256
142
|
schedulerHeaderRef.current = el;
|
|
257
143
|
setSchedulerHeaderEl(el);
|
|
258
144
|
}, []);
|
|
259
145
|
|
|
260
146
|
// Scroll sync refs
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
147
|
+
const schedulerHeadRef = useRef(null);
|
|
148
|
+
const schedulerResourceRef = useRef(null);
|
|
149
|
+
const schedulerContentRef = useRef(null);
|
|
150
|
+
const schedulerContentBgTableRef = useRef(null);
|
|
265
151
|
|
|
266
152
|
// Observer refs
|
|
267
|
-
|
|
268
|
-
|
|
153
|
+
const ulObserverRef = useRef(null);
|
|
154
|
+
const headerObserverRef = useRef(null);
|
|
269
155
|
|
|
270
156
|
// Scroll position tracking
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
157
|
+
const currentAreaRef = useRef(-1);
|
|
158
|
+
const scrollLeftRef = useRef(0);
|
|
159
|
+
const scrollTopRef = useRef(0);
|
|
160
|
+
const scrollbarSizeRef = useRef({
|
|
275
161
|
contentScrollbarHeight: 17,
|
|
276
162
|
contentScrollbarWidth: 17,
|
|
277
163
|
resourceScrollbarHeight: 17,
|
|
278
164
|
resourceScrollbarWidth: 17
|
|
279
165
|
});
|
|
280
|
-
|
|
166
|
+
useEffect(() => {
|
|
281
167
|
if (typeof schedulerData.setVersionChangeNotifier === 'function') {
|
|
282
168
|
schedulerData.setVersionChangeNotifier(setRenderTrigger);
|
|
283
|
-
return
|
|
284
|
-
return schedulerData.setVersionChangeNotifier(null);
|
|
285
|
-
};
|
|
169
|
+
return () => schedulerData.setVersionChangeNotifier(null);
|
|
286
170
|
}
|
|
287
171
|
return undefined;
|
|
288
172
|
}, [schedulerData]);
|
|
289
|
-
|
|
173
|
+
const onWindowResize = useCallback(() => {
|
|
290
174
|
schedulerData.beginBatch();
|
|
291
175
|
try {
|
|
292
176
|
schedulerData._setDocumentWidth(document.documentElement.clientWidth);
|
|
@@ -295,7 +179,7 @@ function Scheduler(props) {
|
|
|
295
179
|
schedulerData.endBatch();
|
|
296
180
|
}
|
|
297
181
|
}, [schedulerData]);
|
|
298
|
-
|
|
182
|
+
useEffect(() => {
|
|
299
183
|
if (schedulerData.isSchedulerResponsive() && !schedulerData.config.responsiveByParent || parentRef === undefined) {
|
|
300
184
|
schedulerData.beginBatch();
|
|
301
185
|
try {
|
|
@@ -305,15 +189,13 @@ function Scheduler(props) {
|
|
|
305
189
|
schedulerData.endBatch();
|
|
306
190
|
}
|
|
307
191
|
window.addEventListener('resize', onWindowResize);
|
|
308
|
-
return
|
|
309
|
-
return window.removeEventListener('resize', onWindowResize);
|
|
310
|
-
};
|
|
192
|
+
return () => window.removeEventListener('resize', onWindowResize);
|
|
311
193
|
}
|
|
312
194
|
}, [schedulerData, parentRef, onWindowResize]);
|
|
313
|
-
|
|
314
|
-
|
|
195
|
+
useEffect(() => {
|
|
196
|
+
const parentEl = parentRef?.current;
|
|
315
197
|
if (parentRef !== undefined && schedulerData.config.responsiveByParent && parentEl) {
|
|
316
|
-
|
|
198
|
+
const updateParentSize = () => {
|
|
317
199
|
schedulerData.beginBatch();
|
|
318
200
|
try {
|
|
319
201
|
schedulerData._setDocumentWidth(parentEl.clientWidth);
|
|
@@ -330,50 +212,41 @@ function Scheduler(props) {
|
|
|
330
212
|
}
|
|
331
213
|
ulObserverRef.current = new ResizeObserver(updateParentSize);
|
|
332
214
|
ulObserverRef.current.observe(parentEl);
|
|
333
|
-
return
|
|
215
|
+
return () => {
|
|
334
216
|
if (ulObserverRef.current) {
|
|
335
217
|
ulObserverRef.current.disconnect();
|
|
336
218
|
}
|
|
337
219
|
};
|
|
338
220
|
}
|
|
339
221
|
}, [parentRef, schedulerData]);
|
|
340
|
-
|
|
222
|
+
useEffect(() => {
|
|
341
223
|
if (schedulerData.config.responsiveByParent && schedulerHeaderEl) {
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
224
|
+
const updateHeaderHeight = node => {
|
|
225
|
+
const rect = node.getBoundingClientRect();
|
|
226
|
+
const style = window.getComputedStyle(node);
|
|
227
|
+
const totalHeight = rect.height + (parseFloat(style.marginTop) || 0) + (parseFloat(style.marginBottom) || 0) + (schedulerData.config.showWeekNumber ? schedulerData.config.weekNumberRowHeight || 0 : 0);
|
|
346
228
|
schedulerData._setSchedulerHeaderHeight(totalHeight);
|
|
347
229
|
};
|
|
348
230
|
updateHeaderHeight(schedulerHeaderEl);
|
|
349
|
-
headerObserverRef.current = new ResizeObserver(
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
try {
|
|
353
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
354
|
-
var entry = _step.value;
|
|
355
|
-
updateHeaderHeight(entry.target);
|
|
356
|
-
}
|
|
357
|
-
} catch (err) {
|
|
358
|
-
_iterator.e(err);
|
|
359
|
-
} finally {
|
|
360
|
-
_iterator.f();
|
|
231
|
+
headerObserverRef.current = new ResizeObserver(entries => {
|
|
232
|
+
for (const entry of entries) {
|
|
233
|
+
updateHeaderHeight(entry.target);
|
|
361
234
|
}
|
|
362
235
|
});
|
|
363
236
|
headerObserverRef.current.observe(schedulerHeaderEl);
|
|
364
|
-
return
|
|
237
|
+
return () => {
|
|
365
238
|
if (headerObserverRef.current) {
|
|
366
239
|
headerObserverRef.current.disconnect();
|
|
367
240
|
}
|
|
368
241
|
};
|
|
369
242
|
}
|
|
370
243
|
}, [schedulerHeaderEl, schedulerData, schedulerData.config.showWeekNumber, schedulerData.config.weekNumberRowHeight]);
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
244
|
+
const resolveScrollbarSize = useCallback(() => {
|
|
245
|
+
const prev = scrollbarSizeRef.current;
|
|
246
|
+
const newContentHeight = schedulerContentRef.current ? schedulerContentRef.current.offsetHeight - schedulerContentRef.current.clientHeight : 17;
|
|
247
|
+
const newContentWidth = schedulerContentRef.current ? schedulerContentRef.current.offsetWidth - schedulerContentRef.current.clientWidth : 17;
|
|
248
|
+
const newResourceHeight = schedulerResourceRef.current ? schedulerResourceRef.current.offsetHeight - schedulerResourceRef.current.clientHeight : 17;
|
|
249
|
+
const newResourceWidth = schedulerResourceRef.current ? schedulerResourceRef.current.offsetWidth - schedulerResourceRef.current.clientWidth : 17;
|
|
377
250
|
if (newContentHeight !== prev.contentScrollbarHeight) {
|
|
378
251
|
setContentScrollbarHeight(newContentHeight);
|
|
379
252
|
scrollbarSizeRef.current.contentScrollbarHeight = newContentHeight;
|
|
@@ -391,18 +264,20 @@ function Scheduler(props) {
|
|
|
391
264
|
scrollbarSizeRef.current.resourceScrollbarWidth = newResourceWidth;
|
|
392
265
|
}
|
|
393
266
|
}, []);
|
|
394
|
-
|
|
267
|
+
useEffect(() => {
|
|
395
268
|
resolveScrollbarSize();
|
|
396
|
-
|
|
397
|
-
|
|
269
|
+
const {
|
|
270
|
+
localeDayjs,
|
|
271
|
+
behaviors
|
|
272
|
+
} = schedulerData;
|
|
398
273
|
if (schedulerData.getScrollToSpecialDayjs() && behaviors.getScrollSpecialDayjsFunc) {
|
|
399
274
|
if (schedulerContentRef.current && schedulerContentRef.current.scrollWidth > schedulerContentRef.current.clientWidth) {
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
275
|
+
const start = localeDayjs(new Date(schedulerData.startDate)).startOf('day');
|
|
276
|
+
const end = localeDayjs(new Date(schedulerData.endDate)).endOf('day');
|
|
277
|
+
const specialDayjs = behaviors.getScrollSpecialDayjsFunc(schedulerData, start, end);
|
|
403
278
|
if (specialDayjs >= start && specialDayjs <= end) {
|
|
404
|
-
|
|
405
|
-
schedulerData.headers.forEach(
|
|
279
|
+
let index = 0;
|
|
280
|
+
schedulerData.headers.forEach(item => {
|
|
406
281
|
if (specialDayjs >= localeDayjs(new Date(item.time))) index += 1;
|
|
407
282
|
});
|
|
408
283
|
schedulerContentRef.current.scrollLeft = (index - 1) * schedulerData.getContentCellWidth();
|
|
@@ -411,35 +286,35 @@ function Scheduler(props) {
|
|
|
411
286
|
}
|
|
412
287
|
}
|
|
413
288
|
}, [schedulerData, resolveScrollbarSize]);
|
|
414
|
-
|
|
289
|
+
const onSchedulerHeadMouseOver = useCallback(() => {
|
|
415
290
|
currentAreaRef.current = 2;
|
|
416
291
|
}, []);
|
|
417
|
-
|
|
292
|
+
const onSchedulerHeadMouseOut = useCallback(() => {
|
|
418
293
|
currentAreaRef.current = -1;
|
|
419
294
|
}, []);
|
|
420
|
-
|
|
295
|
+
const onSchedulerHeadScroll = useCallback(() => {
|
|
421
296
|
if ((currentAreaRef.current === 2 || currentAreaRef.current === -1) && schedulerContentRef.current.scrollLeft !== schedulerHeadRef.current.scrollLeft) {
|
|
422
297
|
schedulerContentRef.current.scrollLeft = schedulerHeadRef.current.scrollLeft;
|
|
423
298
|
}
|
|
424
299
|
}, []);
|
|
425
|
-
|
|
300
|
+
const onSchedulerResourceMouseOver = useCallback(() => {
|
|
426
301
|
currentAreaRef.current = 1;
|
|
427
302
|
}, []);
|
|
428
|
-
|
|
303
|
+
const onSchedulerResourceMouseOut = useCallback(() => {
|
|
429
304
|
currentAreaRef.current = -1;
|
|
430
305
|
}, []);
|
|
431
|
-
|
|
306
|
+
const onSchedulerResourceScroll = useCallback(() => {
|
|
432
307
|
if (schedulerResourceRef.current && (currentAreaRef.current === 1 || currentAreaRef.current === -1) && schedulerContentRef.current.scrollTop !== schedulerResourceRef.current.scrollTop) {
|
|
433
308
|
schedulerContentRef.current.scrollTop = schedulerResourceRef.current.scrollTop;
|
|
434
309
|
}
|
|
435
310
|
}, []);
|
|
436
|
-
|
|
311
|
+
const onSchedulerContentMouseOver = useCallback(() => {
|
|
437
312
|
currentAreaRef.current = 0;
|
|
438
313
|
}, []);
|
|
439
|
-
|
|
314
|
+
const onSchedulerContentMouseOut = useCallback(() => {
|
|
440
315
|
currentAreaRef.current = -1;
|
|
441
316
|
}, []);
|
|
442
|
-
|
|
317
|
+
const onSchedulerContentScroll = useCallback(() => {
|
|
443
318
|
if (schedulerResourceRef.current) {
|
|
444
319
|
if (currentAreaRef.current === 0 || currentAreaRef.current === -1) {
|
|
445
320
|
if (schedulerHeadRef.current.scrollLeft !== schedulerContentRef.current.scrollLeft) {
|
|
@@ -469,121 +344,97 @@ function Scheduler(props) {
|
|
|
469
344
|
scrollTopRef.current = schedulerContentRef.current.scrollTop;
|
|
470
345
|
}, [schedulerData, onScrollLeft, onScrollRight, onScrollTop, onScrollBottom]); // ✅ no props ref
|
|
471
346
|
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
347
|
+
const handleViewChange = useCallback(e => {
|
|
348
|
+
const viewType = parseInt(e.target.value.charAt(0), 10);
|
|
349
|
+
const showAgenda = e.target.value.charAt(1) === '1';
|
|
350
|
+
const isEventPerspective = e.target.value.charAt(2) === '1';
|
|
476
351
|
onViewChange(schedulerData, {
|
|
477
|
-
viewType
|
|
478
|
-
showAgenda
|
|
479
|
-
isEventPerspective
|
|
352
|
+
viewType,
|
|
353
|
+
showAgenda,
|
|
354
|
+
isEventPerspective
|
|
480
355
|
});
|
|
481
356
|
}, [onViewChange, schedulerData]);
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
}
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
var displayRenderData = (0, _react.useMemo)(function () {
|
|
520
|
-
return renderData.filter(function (o) {
|
|
521
|
-
return o.render;
|
|
522
|
-
});
|
|
523
|
-
}, [renderData]);
|
|
524
|
-
var eventDndSource = dndContext.getDndSource();
|
|
525
|
-
var handleSelectionChange = (0, _react.useCallback)(function (isSelecting, selectedResourceIds) {
|
|
526
|
-
var preview = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
527
|
-
var nextSelectedResourceIds = selectedResourceIds || [];
|
|
528
|
-
var nextLeft = preview.left || 0;
|
|
529
|
-
var nextWidth = preview.width || 0;
|
|
530
|
-
setSelectionState(function (prev) {
|
|
531
|
-
var sameIdsLength = prev.selectedResourceIds.length === nextSelectedResourceIds.length;
|
|
532
|
-
var sameIds = sameIdsLength && prev.selectedResourceIds.every(function (id, index) {
|
|
533
|
-
return id === nextSelectedResourceIds[index];
|
|
534
|
-
});
|
|
357
|
+
const goNext = useCallback(() => nextClick(schedulerData), [nextClick, schedulerData]);
|
|
358
|
+
const goBack = useCallback(() => prevClick(schedulerData), [prevClick, schedulerData]);
|
|
359
|
+
const onSelect = useCallback(date => onSelectDate(schedulerData, date), [onSelectDate, schedulerData]);
|
|
360
|
+
const {
|
|
361
|
+
viewType,
|
|
362
|
+
renderData,
|
|
363
|
+
showAgenda,
|
|
364
|
+
config
|
|
365
|
+
} = schedulerData;
|
|
366
|
+
const width = schedulerData.getSchedulerWidth();
|
|
367
|
+
const {
|
|
368
|
+
showWeekNumber,
|
|
369
|
+
weekNumberRowHeight
|
|
370
|
+
} = config;
|
|
371
|
+
const schedulerDataVersion = schedulerData.getVersion ? schedulerData.getVersion() : 0;
|
|
372
|
+
const schedulerWidth = schedulerData.getContentTableWidth() - 1;
|
|
373
|
+
const weekNumberRowStyle = useMemo(() => ({
|
|
374
|
+
height: weekNumberRowHeight
|
|
375
|
+
}), [weekNumberRowHeight]);
|
|
376
|
+
const weekNumberThStyle = useMemo(() => ({
|
|
377
|
+
borderBottom: `1px solid ${config.headerBorderColor ?? '#e9e9e9'}`,
|
|
378
|
+
fontSize: '0.85em',
|
|
379
|
+
opacity: 0.7,
|
|
380
|
+
padding: '4px 8px'
|
|
381
|
+
}), [config.headerBorderColor]);
|
|
382
|
+
const schedulerInnerStyle = useMemo(() => ({
|
|
383
|
+
width: schedulerWidth
|
|
384
|
+
}), [schedulerWidth]);
|
|
385
|
+
const displayRenderData = useMemo(() => renderData.filter(o => o.render), [renderData]);
|
|
386
|
+
const eventDndSource = dndContext.getDndSource();
|
|
387
|
+
const handleSelectionChange = useCallback((isSelecting, selectedResourceIds, preview = {}) => {
|
|
388
|
+
const nextSelectedResourceIds = selectedResourceIds || [];
|
|
389
|
+
const nextLeft = preview.left || 0;
|
|
390
|
+
const nextWidth = preview.width || 0;
|
|
391
|
+
setSelectionState(prev => {
|
|
392
|
+
const sameIdsLength = prev.selectedResourceIds.length === nextSelectedResourceIds.length;
|
|
393
|
+
const sameIds = sameIdsLength && prev.selectedResourceIds.every((id, index) => id === nextSelectedResourceIds[index]);
|
|
535
394
|
if (prev.isSelecting === isSelecting && prev.left === nextLeft && prev.width === nextWidth && sameIds) {
|
|
536
395
|
return prev;
|
|
537
396
|
}
|
|
538
397
|
return {
|
|
539
|
-
isSelecting
|
|
398
|
+
isSelecting,
|
|
540
399
|
selectedResourceIds: nextSelectedResourceIds,
|
|
541
400
|
left: nextLeft,
|
|
542
401
|
width: nextWidth
|
|
543
402
|
};
|
|
544
403
|
});
|
|
545
404
|
}, []);
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
eventItemTemplateResolver: props.eventItemTemplateResolver,
|
|
578
|
-
onSelectionChange: handleSelectionChange,
|
|
579
|
-
isRowSelected: selectedIdsSet.has(item.slotId),
|
|
580
|
-
selectionPreview: selectionPreview
|
|
581
|
-
}, item.slotId);
|
|
582
|
-
});
|
|
583
|
-
}, [displayRenderData, schedulerData, schedulerDataVersion, eventDndSource, dndContext, props.onSetAddMoreState, props.updateEventStart, props.updateEventEnd, props.moveEvent, props.movingEvent, props.conflictOccurred, props.subtitleGetter, props.eventItemClick, props.viewEventClick, props.viewEventText, props.viewEvent2Click, props.viewEvent2Text, props.newEvent, props.eventItemTemplateResolver, handleSelectionChange, selectedIdsSet, selectionPreview]);
|
|
584
|
-
var tbodyContent = /*#__PURE__*/(0, _jsxRuntime.jsx)("tr", {});
|
|
405
|
+
const selectionPreview = useMemo(() => ({
|
|
406
|
+
isSelecting: selectionState.isSelecting,
|
|
407
|
+
left: selectionState.left,
|
|
408
|
+
width: selectionState.width
|
|
409
|
+
}), [selectionState.isSelecting, selectionState.left, selectionState.width]);
|
|
410
|
+
const selectedIdsSet = useMemo(() => new Set(selectionState.selectedResourceIds), [selectionState.selectedResourceIds]);
|
|
411
|
+
const resourceEventsList = useMemo(() => displayRenderData.map(item => /*#__PURE__*/_jsx(ResourceEvents, {
|
|
412
|
+
resourceEvents: item,
|
|
413
|
+
schedulerData: schedulerData,
|
|
414
|
+
schedulerDataVersion: schedulerDataVersion,
|
|
415
|
+
dndSource: eventDndSource,
|
|
416
|
+
dndContext: dndContext,
|
|
417
|
+
onSetAddMoreState: props.onSetAddMoreState,
|
|
418
|
+
updateEventStart: props.updateEventStart,
|
|
419
|
+
updateEventEnd: props.updateEventEnd,
|
|
420
|
+
moveEvent: props.moveEvent,
|
|
421
|
+
movingEvent: props.movingEvent,
|
|
422
|
+
conflictOccurred: props.conflictOccurred,
|
|
423
|
+
subtitleGetter: props.subtitleGetter,
|
|
424
|
+
eventItemClick: props.eventItemClick,
|
|
425
|
+
viewEventClick: props.viewEventClick,
|
|
426
|
+
viewEventText: props.viewEventText,
|
|
427
|
+
viewEvent2Click: props.viewEvent2Click,
|
|
428
|
+
viewEvent2Text: props.viewEvent2Text,
|
|
429
|
+
newEvent: props.newEvent,
|
|
430
|
+
eventItemTemplateResolver: props.eventItemTemplateResolver,
|
|
431
|
+
onSelectionChange: handleSelectionChange,
|
|
432
|
+
isRowSelected: selectedIdsSet.has(item.slotId),
|
|
433
|
+
selectionPreview: selectionPreview
|
|
434
|
+
}, item.slotId)), [displayRenderData, schedulerData, schedulerDataVersion, eventDndSource, dndContext, props.onSetAddMoreState, props.updateEventStart, props.updateEventEnd, props.moveEvent, props.movingEvent, props.conflictOccurred, props.subtitleGetter, props.eventItemClick, props.viewEventClick, props.viewEventText, props.viewEvent2Click, props.viewEvent2Text, props.newEvent, props.eventItemTemplateResolver, handleSelectionChange, selectedIdsSet, selectionPreview]);
|
|
435
|
+
let tbodyContent = /*#__PURE__*/_jsx("tr", {});
|
|
585
436
|
if (showAgenda) {
|
|
586
|
-
tbodyContent = /*#__PURE__*/(
|
|
437
|
+
tbodyContent = /*#__PURE__*/_jsx(AgendaView, {
|
|
587
438
|
schedulerData: schedulerData,
|
|
588
439
|
subtitleGetter: props.subtitleGetter,
|
|
589
440
|
eventItemClick: props.eventItemClick,
|
|
@@ -597,108 +448,115 @@ function Scheduler(props) {
|
|
|
597
448
|
eventItemPopoverTemplateResolver: props.eventItemPopoverTemplateResolver
|
|
598
449
|
});
|
|
599
450
|
} else {
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
overflowX: viewType ===
|
|
451
|
+
const resourceTableWidth = schedulerData.getResourceTableWidth();
|
|
452
|
+
const schedulerContainerWidth = width - (config.resourceViewEnabled ? resourceTableWidth : 0);
|
|
453
|
+
const configuredContentHeight = config.schedulerContentHeight;
|
|
454
|
+
const contentHeight = !config.responsiveByParent && configuredContentHeight === '100%' ? schedulerData.getSchedulerContentDesiredHeight() : configuredContentHeight;
|
|
455
|
+
const resourcePaddingBottom = resourceScrollbarHeight === 0 ? contentScrollbarHeight : 0;
|
|
456
|
+
const contentPaddingBottom = contentScrollbarHeight === 0 ? resourceScrollbarHeight : 0;
|
|
457
|
+
let schedulerContentStyle = {
|
|
458
|
+
overflowX: viewType === ViewType.Week ? 'hidden' : 'auto',
|
|
608
459
|
overflowY: 'auto',
|
|
609
460
|
margin: '0px',
|
|
610
461
|
position: 'relative',
|
|
611
462
|
height: contentHeight,
|
|
612
463
|
paddingBottom: contentPaddingBottom
|
|
613
464
|
};
|
|
614
|
-
|
|
465
|
+
let resourceContentStyle = {
|
|
615
466
|
height: contentHeight,
|
|
616
467
|
overflowX: 'auto',
|
|
617
468
|
overflowY: 'auto',
|
|
618
469
|
width: resourceTableWidth + resourceScrollbarWidth - 2,
|
|
619
|
-
margin:
|
|
470
|
+
margin: `0px -${contentScrollbarWidth}px 0px 0px`
|
|
620
471
|
};
|
|
621
472
|
if (config.schedulerMaxHeight > 0) {
|
|
622
|
-
|
|
623
|
-
schedulerContentStyle =
|
|
473
|
+
const totalHeaderHeight = config.tableHeaderHeight + (showWeekNumber ? weekNumberRowHeight : 0);
|
|
474
|
+
schedulerContentStyle = {
|
|
475
|
+
...schedulerContentStyle,
|
|
624
476
|
maxHeight: config.schedulerMaxHeight - totalHeaderHeight
|
|
625
|
-
}
|
|
626
|
-
resourceContentStyle =
|
|
477
|
+
};
|
|
478
|
+
resourceContentStyle = {
|
|
479
|
+
...resourceContentStyle,
|
|
627
480
|
maxHeight: config.schedulerMaxHeight - totalHeaderHeight
|
|
628
|
-
}
|
|
481
|
+
};
|
|
629
482
|
} else if (config.responsiveByParent && schedulerData.documentHeight > 0) {
|
|
630
|
-
|
|
631
|
-
schedulerContentStyle =
|
|
483
|
+
const availableHeight = schedulerData.getSchedulerHeight();
|
|
484
|
+
schedulerContentStyle = {
|
|
485
|
+
...schedulerContentStyle,
|
|
632
486
|
height: availableHeight
|
|
633
|
-
}
|
|
634
|
-
resourceContentStyle =
|
|
487
|
+
};
|
|
488
|
+
resourceContentStyle = {
|
|
489
|
+
...resourceContentStyle,
|
|
635
490
|
height: availableHeight
|
|
636
|
-
}
|
|
491
|
+
};
|
|
637
492
|
}
|
|
638
|
-
|
|
639
|
-
|
|
493
|
+
const resourceName = schedulerData.isEventPerspective ? config.taskName : config.resourceName;
|
|
494
|
+
const resourceColumnStyle = {
|
|
640
495
|
display: config.resourceViewEnabled ? undefined : 'none',
|
|
641
496
|
width: resourceTableWidth,
|
|
642
497
|
verticalAlign: 'top'
|
|
643
498
|
};
|
|
644
|
-
|
|
645
|
-
borderBottom:
|
|
646
|
-
height: config.tableHeaderHeight + (showWeekNumber ? weekNumberRowHeight : 0)
|
|
647
|
-
|
|
648
|
-
|
|
499
|
+
const resourceHeaderStyle = {
|
|
500
|
+
borderBottom: `1px solid ${config.headerBorderColor ?? '#e9e9e9'}`,
|
|
501
|
+
height: config.tableHeaderHeight + (showWeekNumber ? weekNumberRowHeight : 0),
|
|
502
|
+
...configTableHeaderStyle
|
|
503
|
+
};
|
|
504
|
+
const resourceHeaderScrollStyle = {
|
|
649
505
|
overflowX: 'scroll',
|
|
650
506
|
overflowY: 'hidden',
|
|
651
|
-
margin:
|
|
507
|
+
margin: `0px 0px -${contentScrollbarHeight}px`
|
|
508
|
+
};
|
|
509
|
+
const schedulerViewStyle = {
|
|
510
|
+
width: schedulerContainerWidth
|
|
652
511
|
};
|
|
653
|
-
|
|
654
|
-
width: schedulerContainerWidth,
|
|
512
|
+
const schedulerViewColumnStyle = {
|
|
655
513
|
verticalAlign: 'top'
|
|
656
514
|
};
|
|
657
|
-
|
|
515
|
+
const schedulerHeadWrapperStyle = {
|
|
658
516
|
overflow: 'hidden',
|
|
659
|
-
borderBottom:
|
|
517
|
+
borderBottom: `1px solid ${config.headerBorderColor ?? '#e9e9e9'}`,
|
|
660
518
|
height: config.tableHeaderHeight + (showWeekNumber ? weekNumberRowHeight : 0)
|
|
661
519
|
};
|
|
662
|
-
|
|
520
|
+
const schedulerHeadScrollStyle = {
|
|
663
521
|
overflowX: 'scroll',
|
|
664
522
|
overflowY: 'hidden',
|
|
665
|
-
margin:
|
|
523
|
+
margin: `0px 0px -${contentScrollbarHeight}px`
|
|
666
524
|
};
|
|
667
|
-
|
|
668
|
-
paddingRight:
|
|
525
|
+
const schedulerHeadInnerStyle = {
|
|
526
|
+
paddingRight: `${contentScrollbarWidth}px`,
|
|
669
527
|
width: schedulerWidth + contentScrollbarWidth
|
|
670
528
|
};
|
|
671
|
-
tbodyContent = /*#__PURE__*/(
|
|
672
|
-
children: [/*#__PURE__*/(
|
|
529
|
+
tbodyContent = /*#__PURE__*/_jsxs("tr", {
|
|
530
|
+
children: [/*#__PURE__*/_jsx("td", {
|
|
673
531
|
style: resourceColumnStyle,
|
|
674
|
-
children: /*#__PURE__*/(
|
|
532
|
+
children: /*#__PURE__*/_jsxs("div", {
|
|
675
533
|
className: "resource-view",
|
|
676
|
-
children: [/*#__PURE__*/(
|
|
534
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
677
535
|
style: resourceHeaderStyle,
|
|
678
|
-
children: /*#__PURE__*/(
|
|
536
|
+
children: /*#__PURE__*/_jsx("div", {
|
|
679
537
|
style: resourceHeaderScrollStyle,
|
|
680
|
-
children: /*#__PURE__*/(
|
|
538
|
+
children: /*#__PURE__*/_jsx("table", {
|
|
681
539
|
className: "resource-table",
|
|
682
|
-
children: /*#__PURE__*/(
|
|
683
|
-
children: [showWeekNumber && /*#__PURE__*/(
|
|
540
|
+
children: /*#__PURE__*/_jsxs("thead", {
|
|
541
|
+
children: [showWeekNumber && /*#__PURE__*/_jsx("tr", {
|
|
684
542
|
style: weekNumberRowStyle,
|
|
685
|
-
children: /*#__PURE__*/(
|
|
543
|
+
children: /*#__PURE__*/_jsx("th", {
|
|
686
544
|
style: weekNumberThStyle,
|
|
687
|
-
children:
|
|
545
|
+
children: config.weekNumberLabel ?? 'Week No.'
|
|
688
546
|
})
|
|
689
|
-
}), /*#__PURE__*/(
|
|
547
|
+
}), /*#__PURE__*/_jsx("tr", {
|
|
690
548
|
style: {
|
|
691
549
|
height: config.tableHeaderHeight
|
|
692
550
|
},
|
|
693
|
-
children: /*#__PURE__*/(
|
|
551
|
+
children: /*#__PURE__*/_jsx("th", {
|
|
694
552
|
className: "header3-text",
|
|
695
|
-
children: CustomResourceHeader ? /*#__PURE__*/(
|
|
553
|
+
children: CustomResourceHeader ? /*#__PURE__*/_jsx(CustomResourceHeader, {}) : resourceName
|
|
696
554
|
})
|
|
697
555
|
})]
|
|
698
556
|
})
|
|
699
557
|
})
|
|
700
558
|
})
|
|
701
|
-
}), /*#__PURE__*/(
|
|
559
|
+
}), /*#__PURE__*/_jsx("section", {
|
|
702
560
|
style: resourceContentStyle,
|
|
703
561
|
ref: schedulerResourceRef,
|
|
704
562
|
onMouseOver: onSchedulerResourceMouseOver,
|
|
@@ -707,7 +565,7 @@ function Scheduler(props) {
|
|
|
707
565
|
onBlur: onSchedulerResourceMouseOut,
|
|
708
566
|
onScroll: onSchedulerResourceScroll,
|
|
709
567
|
"aria-label": "Resource sidebar",
|
|
710
|
-
children: /*#__PURE__*/(
|
|
568
|
+
children: /*#__PURE__*/_jsx(ResourceView, {
|
|
711
569
|
schedulerData: schedulerData,
|
|
712
570
|
schedulerDataVersion: schedulerDataVersion,
|
|
713
571
|
contentScrollbarHeight: resourcePaddingBottom,
|
|
@@ -720,13 +578,14 @@ function Scheduler(props) {
|
|
|
720
578
|
})
|
|
721
579
|
})]
|
|
722
580
|
})
|
|
723
|
-
}), /*#__PURE__*/(
|
|
724
|
-
|
|
581
|
+
}), /*#__PURE__*/_jsx("td", {
|
|
582
|
+
style: schedulerViewColumnStyle,
|
|
583
|
+
children: /*#__PURE__*/_jsxs("div", {
|
|
725
584
|
className: "scheduler-view",
|
|
726
585
|
style: schedulerViewStyle,
|
|
727
|
-
children: [/*#__PURE__*/(
|
|
586
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
728
587
|
style: schedulerHeadWrapperStyle,
|
|
729
|
-
children: /*#__PURE__*/(
|
|
588
|
+
children: /*#__PURE__*/_jsx("section", {
|
|
730
589
|
style: schedulerHeadScrollStyle,
|
|
731
590
|
ref: schedulerHeadRef,
|
|
732
591
|
onMouseOver: onSchedulerHeadMouseOver,
|
|
@@ -735,11 +594,11 @@ function Scheduler(props) {
|
|
|
735
594
|
onBlur: onSchedulerHeadMouseOut,
|
|
736
595
|
onScroll: onSchedulerHeadScroll,
|
|
737
596
|
"aria-label": "Scheduler Header",
|
|
738
|
-
children: /*#__PURE__*/(
|
|
597
|
+
children: /*#__PURE__*/_jsx("div", {
|
|
739
598
|
style: schedulerHeadInnerStyle,
|
|
740
|
-
children: /*#__PURE__*/(
|
|
599
|
+
children: /*#__PURE__*/_jsx("table", {
|
|
741
600
|
className: "scheduler-bg-table",
|
|
742
|
-
children: /*#__PURE__*/(
|
|
601
|
+
children: /*#__PURE__*/_jsx(HeaderView, {
|
|
743
602
|
schedulerData: schedulerData,
|
|
744
603
|
schedulerDataVersion: schedulerDataVersion,
|
|
745
604
|
nonAgendaCellHeaderTemplateResolver: props.nonAgendaCellHeaderTemplateResolver
|
|
@@ -747,7 +606,7 @@ function Scheduler(props) {
|
|
|
747
606
|
})
|
|
748
607
|
})
|
|
749
608
|
})
|
|
750
|
-
}), /*#__PURE__*/(
|
|
609
|
+
}), /*#__PURE__*/_jsx("section", {
|
|
751
610
|
style: schedulerContentStyle,
|
|
752
611
|
ref: schedulerContentRef,
|
|
753
612
|
onMouseOver: onSchedulerContentMouseOver,
|
|
@@ -756,23 +615,23 @@ function Scheduler(props) {
|
|
|
756
615
|
onBlur: onSchedulerContentMouseOut,
|
|
757
616
|
onScroll: onSchedulerContentScroll,
|
|
758
617
|
"aria-label": "Scheduler content",
|
|
759
|
-
children: /*#__PURE__*/(
|
|
618
|
+
children: /*#__PURE__*/_jsxs("div", {
|
|
760
619
|
style: schedulerInnerStyle,
|
|
761
|
-
children: [/*#__PURE__*/(
|
|
620
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
762
621
|
className: "scheduler-content",
|
|
763
|
-
children: /*#__PURE__*/(
|
|
622
|
+
children: /*#__PURE__*/_jsx("table", {
|
|
764
623
|
className: "scheduler-content-table",
|
|
765
|
-
children: /*#__PURE__*/(
|
|
624
|
+
children: /*#__PURE__*/_jsx("tbody", {
|
|
766
625
|
children: resourceEventsList
|
|
767
626
|
})
|
|
768
627
|
})
|
|
769
|
-
}), /*#__PURE__*/(
|
|
628
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
770
629
|
className: "scheduler-bg",
|
|
771
|
-
children: /*#__PURE__*/(
|
|
630
|
+
children: /*#__PURE__*/_jsx("table", {
|
|
772
631
|
className: "scheduler-bg-table",
|
|
773
632
|
style: schedulerInnerStyle,
|
|
774
633
|
ref: schedulerContentBgTableRef,
|
|
775
|
-
children: /*#__PURE__*/(
|
|
634
|
+
children: /*#__PURE__*/_jsx(BodyView, {
|
|
776
635
|
schedulerData: schedulerData,
|
|
777
636
|
schedulerDataVersion: schedulerDataVersion
|
|
778
637
|
})
|
|
@@ -784,80 +643,75 @@ function Scheduler(props) {
|
|
|
784
643
|
})]
|
|
785
644
|
});
|
|
786
645
|
}
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
var rootTableStyle = (0, _react.useMemo)(function () {
|
|
807
|
-
return {
|
|
808
|
-
width: "".concat(width, "px")
|
|
809
|
-
};
|
|
810
|
-
}, [width]);
|
|
811
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("table", {
|
|
646
|
+
const schedulerHeaderStyle = useMemo(() => ({
|
|
647
|
+
display: config.headerEnabled ? undefined : 'none',
|
|
648
|
+
marginBottom: config.headerEnabled ? '24px' : undefined
|
|
649
|
+
}), [config.headerEnabled]);
|
|
650
|
+
const schedulerHeader = useMemo(() => /*#__PURE__*/_jsx(SchedulerHeader, {
|
|
651
|
+
ref: setSchedulerHeaderRef,
|
|
652
|
+
style: schedulerHeaderStyle,
|
|
653
|
+
onViewChange: handleViewChange,
|
|
654
|
+
schedulerData: schedulerData,
|
|
655
|
+
onSelectDate: onSelect,
|
|
656
|
+
goNext: goNext,
|
|
657
|
+
goBack: goBack,
|
|
658
|
+
rightCustomHeader: rightCustomHeader,
|
|
659
|
+
leftCustomHeader: leftCustomHeader
|
|
660
|
+
}), [schedulerHeaderStyle, handleViewChange, schedulerData, onSelect, goNext, goBack, rightCustomHeader, leftCustomHeader, setSchedulerHeaderRef]);
|
|
661
|
+
const rootTableStyle = useMemo(() => ({
|
|
662
|
+
width: `${width}px`
|
|
663
|
+
}), [width]);
|
|
664
|
+
return /*#__PURE__*/_jsxs("table", {
|
|
812
665
|
id: "rbs-root",
|
|
813
666
|
className: "rbs",
|
|
814
667
|
style: rootTableStyle,
|
|
815
668
|
ref: schedulerRootRef,
|
|
816
|
-
children: [/*#__PURE__*/(
|
|
817
|
-
children: /*#__PURE__*/(
|
|
818
|
-
children: /*#__PURE__*/(
|
|
669
|
+
children: [/*#__PURE__*/_jsx("thead", {
|
|
670
|
+
children: /*#__PURE__*/_jsx("tr", {
|
|
671
|
+
children: /*#__PURE__*/_jsx("td", {
|
|
819
672
|
colSpan: "2",
|
|
820
673
|
children: schedulerHeader
|
|
821
674
|
})
|
|
822
675
|
})
|
|
823
|
-
}), /*#__PURE__*/(
|
|
676
|
+
}), /*#__PURE__*/_jsx("tbody", {
|
|
824
677
|
children: tbodyContent
|
|
825
678
|
})]
|
|
826
679
|
});
|
|
827
680
|
}
|
|
828
681
|
Scheduler.propTypes = {
|
|
829
|
-
parentRef:
|
|
830
|
-
schedulerData:
|
|
831
|
-
prevClick:
|
|
832
|
-
nextClick:
|
|
833
|
-
onViewChange:
|
|
834
|
-
onSelectDate:
|
|
835
|
-
onSetAddMoreState:
|
|
836
|
-
updateEventStart:
|
|
837
|
-
updateEventEnd:
|
|
838
|
-
moveEvent:
|
|
839
|
-
movingEvent:
|
|
840
|
-
leftCustomHeader:
|
|
841
|
-
rightCustomHeader:
|
|
842
|
-
newEvent:
|
|
843
|
-
subtitleGetter:
|
|
844
|
-
eventItemClick:
|
|
845
|
-
viewEventClick:
|
|
846
|
-
viewEventText:
|
|
847
|
-
viewEvent2Click:
|
|
848
|
-
viewEvent2Text:
|
|
849
|
-
conflictOccurred:
|
|
850
|
-
eventItemTemplateResolver:
|
|
851
|
-
dndSources:
|
|
852
|
-
slotClickedFunc:
|
|
853
|
-
toggleExpandFunc:
|
|
854
|
-
slotItemTemplateResolver:
|
|
855
|
-
nonAgendaCellHeaderTemplateResolver:
|
|
856
|
-
onScrollLeft:
|
|
857
|
-
onScrollRight:
|
|
858
|
-
onScrollTop:
|
|
859
|
-
onScrollBottom:
|
|
860
|
-
CustomResourceHeader:
|
|
861
|
-
CustomResourceCell:
|
|
862
|
-
configTableHeaderStyle:
|
|
863
|
-
};
|
|
682
|
+
parentRef: PropTypes.object,
|
|
683
|
+
schedulerData: PropTypes.object.isRequired,
|
|
684
|
+
prevClick: PropTypes.func.isRequired,
|
|
685
|
+
nextClick: PropTypes.func.isRequired,
|
|
686
|
+
onViewChange: PropTypes.func.isRequired,
|
|
687
|
+
onSelectDate: PropTypes.func.isRequired,
|
|
688
|
+
onSetAddMoreState: PropTypes.func,
|
|
689
|
+
updateEventStart: PropTypes.func,
|
|
690
|
+
updateEventEnd: PropTypes.func,
|
|
691
|
+
moveEvent: PropTypes.func,
|
|
692
|
+
movingEvent: PropTypes.func,
|
|
693
|
+
leftCustomHeader: PropTypes.object,
|
|
694
|
+
rightCustomHeader: PropTypes.object,
|
|
695
|
+
newEvent: PropTypes.func,
|
|
696
|
+
subtitleGetter: PropTypes.func,
|
|
697
|
+
eventItemClick: PropTypes.func,
|
|
698
|
+
viewEventClick: PropTypes.func,
|
|
699
|
+
viewEventText: PropTypes.string,
|
|
700
|
+
viewEvent2Click: PropTypes.func,
|
|
701
|
+
viewEvent2Text: PropTypes.string,
|
|
702
|
+
conflictOccurred: PropTypes.func,
|
|
703
|
+
eventItemTemplateResolver: PropTypes.func,
|
|
704
|
+
dndSources: PropTypes.array,
|
|
705
|
+
slotClickedFunc: PropTypes.func,
|
|
706
|
+
toggleExpandFunc: PropTypes.func,
|
|
707
|
+
slotItemTemplateResolver: PropTypes.func,
|
|
708
|
+
nonAgendaCellHeaderTemplateResolver: PropTypes.func,
|
|
709
|
+
onScrollLeft: PropTypes.func,
|
|
710
|
+
onScrollRight: PropTypes.func,
|
|
711
|
+
onScrollTop: PropTypes.func,
|
|
712
|
+
onScrollBottom: PropTypes.func,
|
|
713
|
+
CustomResourceHeader: PropTypes.func,
|
|
714
|
+
CustomResourceCell: PropTypes.func,
|
|
715
|
+
configTableHeaderStyle: PropTypes.object
|
|
716
|
+
};
|
|
717
|
+
export { AddMorePopover, CellUnit, DATE_FORMAT, DATETIME_FORMAT, DemoData, DnDContext, DnDSource, Scheduler, SchedulerData, SummaryPos, ViewType, wrapperFun };
|