react-big-schedule 4.3.0 → 4.3.2

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.
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _antd = require("antd");
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
+ function EventItemPopover(_ref) {
12
+ var schedulerData = _ref.schedulerData,
13
+ eventItem = _ref.eventItem,
14
+ title = _ref.title,
15
+ startTime = _ref.startTime,
16
+ endTime = _ref.endTime,
17
+ statusColor = _ref.statusColor,
18
+ subtitleGetter = _ref.subtitleGetter,
19
+ viewEventClick = _ref.viewEventClick,
20
+ viewEventText = _ref.viewEventText,
21
+ viewEvent2Click = _ref.viewEvent2Click,
22
+ viewEvent2Text = _ref.viewEvent2Text,
23
+ eventItemPopoverTemplateResolver = _ref.eventItemPopoverTemplateResolver;
24
+ var localeDayjs = schedulerData.localeDayjs,
25
+ config = schedulerData.config;
26
+ var start = localeDayjs(new Date(startTime));
27
+ var end = localeDayjs(new Date(endTime));
28
+ if (eventItemPopoverTemplateResolver) {
29
+ return eventItemPopoverTemplateResolver(schedulerData, eventItem, title, start, end, statusColor);
30
+ }
31
+ var subtitle = subtitleGetter ? subtitleGetter(schedulerData, eventItem) : null;
32
+ var showViewEvent = viewEventText && viewEventClick && (eventItem.clickable1 === undefined || eventItem.clickable1);
33
+ var showViewEvent2 = viewEvent2Text && viewEvent2Click && (eventItem.clickable2 === undefined || eventItem.clickable2);
34
+ var renderViewEvent = function renderViewEvent(text, clickHandler) {
35
+ var marginLeft = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
36
+ return /*#__PURE__*/_react["default"].createElement("button", {
37
+ className: "header2-text txt-btn-dis",
38
+ type: "button",
39
+ style: {
40
+ color: '#108EE9',
41
+ cursor: 'pointer',
42
+ marginLeft: "".concat(marginLeft, "px")
43
+ },
44
+ onClick: function onClick() {
45
+ return clickHandler(schedulerData, eventItem);
46
+ }
47
+ }, text);
48
+ };
49
+ return /*#__PURE__*/_react["default"].createElement("div", {
50
+ style: {
51
+ width: config.eventItemPopoverWidth
52
+ }
53
+ }, /*#__PURE__*/_react["default"].createElement(_antd.Row, {
54
+ type: "flex",
55
+ align: "middle"
56
+ }, config.eventItemPopoverShowColor && /*#__PURE__*/_react["default"].createElement(_antd.Col, {
57
+ span: 2
58
+ }, /*#__PURE__*/_react["default"].createElement("div", {
59
+ className: "status-dot",
60
+ style: {
61
+ backgroundColor: statusColor
62
+ }
63
+ })), /*#__PURE__*/_react["default"].createElement(_antd.Col, {
64
+ span: 22,
65
+ className: "overflow-text"
66
+ }, /*#__PURE__*/_react["default"].createElement("span", {
67
+ className: "header2-text",
68
+ title: title
69
+ }, title))), subtitle && /*#__PURE__*/_react["default"].createElement(_antd.Row, {
70
+ type: "flex",
71
+ align: "middle"
72
+ }, /*#__PURE__*/_react["default"].createElement(_antd.Col, {
73
+ span: 2
74
+ }, /*#__PURE__*/_react["default"].createElement("div", null)), /*#__PURE__*/_react["default"].createElement(_antd.Col, {
75
+ span: 22,
76
+ className: "overflow-text"
77
+ }, /*#__PURE__*/_react["default"].createElement("span", {
78
+ className: "header2-text",
79
+ title: subtitle
80
+ }, subtitle))), /*#__PURE__*/_react["default"].createElement(_antd.Row, {
81
+ type: "flex",
82
+ align: "middle"
83
+ }, /*#__PURE__*/_react["default"].createElement(_antd.Col, {
84
+ span: 2
85
+ }, /*#__PURE__*/_react["default"].createElement("div", null)), /*#__PURE__*/_react["default"].createElement(_antd.Col, {
86
+ span: 22
87
+ }, /*#__PURE__*/_react["default"].createElement("span", {
88
+ className: "header1-text"
89
+ }, start.format('HH:mm')), config.eventItemPopoverDateFormat && /*#__PURE__*/_react["default"].createElement("span", {
90
+ className: "help-text",
91
+ style: {
92
+ marginLeft: '8px'
93
+ }
94
+ }, start.format(config.eventItemPopoverDateFormat)), /*#__PURE__*/_react["default"].createElement("span", {
95
+ className: "header2-text",
96
+ style: {
97
+ marginLeft: '8px'
98
+ }
99
+ }, "-"), /*#__PURE__*/_react["default"].createElement("span", {
100
+ className: "header1-text",
101
+ style: {
102
+ marginLeft: '8px'
103
+ }
104
+ }, end.format('HH:mm')), config.eventItemPopoverDateFormat && /*#__PURE__*/_react["default"].createElement("span", {
105
+ className: "help-text",
106
+ style: {
107
+ marginLeft: '8px'
108
+ }
109
+ }, end.format(config.eventItemPopoverDateFormat)))), (showViewEvent || showViewEvent2) && /*#__PURE__*/_react["default"].createElement(_antd.Row, {
110
+ type: "flex",
111
+ align: "middle"
112
+ }, /*#__PURE__*/_react["default"].createElement(_antd.Col, {
113
+ span: 2
114
+ }, /*#__PURE__*/_react["default"].createElement("div", null)), /*#__PURE__*/_react["default"].createElement(_antd.Col, {
115
+ span: 22
116
+ }, showViewEvent && renderViewEvent(viewEventText, viewEventClick), showViewEvent2 && renderViewEvent(viewEvent2Text, viewEvent2Click, 16))));
117
+ }
118
+ EventItemPopover.propTypes = {
119
+ schedulerData: _propTypes["default"].object.isRequired,
120
+ eventItem: _propTypes["default"].object.isRequired,
121
+ title: _propTypes["default"].string.isRequired,
122
+ startTime: _propTypes["default"].string.isRequired,
123
+ endTime: _propTypes["default"].string.isRequired,
124
+ statusColor: _propTypes["default"].string.isRequired,
125
+ subtitleGetter: _propTypes["default"].func,
126
+ viewEventClick: _propTypes["default"].func,
127
+ viewEventText: _propTypes["default"].string,
128
+ viewEvent2Click: _propTypes["default"].func,
129
+ viewEvent2Text: _propTypes["default"].string,
130
+ eventItemPopoverTemplateResolver: _propTypes["default"].func
131
+ };
132
+ var _default = exports["default"] = EventItemPopover;
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _default2 = require("../config/default");
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
+ /* eslint-disable no-nested-ternary */
12
+ /* eslint-disable react/no-array-index-key */
13
+
14
+ function HeaderView(_ref) {
15
+ var schedulerData = _ref.schedulerData,
16
+ nonAgendaCellHeaderTemplateResolver = _ref.nonAgendaCellHeaderTemplateResolver;
17
+ var headers = schedulerData.headers,
18
+ cellUnit = schedulerData.cellUnit,
19
+ config = schedulerData.config,
20
+ localeDayjs = schedulerData.localeDayjs;
21
+ var headerHeight = schedulerData.getTableHeaderHeight();
22
+ var cellWidth = schedulerData.getContentCellWidth();
23
+ var minuteStepsInHour = schedulerData.getMinuteStepsInHour();
24
+ var headerList = [];
25
+ var style;
26
+ if (cellUnit === _default2.CellUnit.Hour) {
27
+ headers.forEach(function (item, index) {
28
+ if (index % minuteStepsInHour === 0) {
29
+ var datetime = localeDayjs(new Date(item.time));
30
+ style = item.nonWorkingTime ? {
31
+ width: cellWidth * minuteStepsInHour,
32
+ color: config.nonWorkingTimeHeadColor,
33
+ backgroundColor: config.nonWorkingTimeHeadBgColor
34
+ } : {
35
+ width: cellWidth * minuteStepsInHour
36
+ };
37
+ if (index === headers.length - minuteStepsInHour) {
38
+ style = item.nonWorkingTime ? {
39
+ color: config.nonWorkingTimeHeadColor,
40
+ backgroundColor: config.nonWorkingTimeHeadBgColor
41
+ } : {};
42
+ }
43
+ var pFormattedList = config.nonAgendaDayCellHeaderFormat.split('|').map(function (pitem) {
44
+ return datetime.format(pitem);
45
+ });
46
+ var element;
47
+ if (typeof nonAgendaCellHeaderTemplateResolver === 'function') {
48
+ element = nonAgendaCellHeaderTemplateResolver(schedulerData, item, pFormattedList, style);
49
+ } else {
50
+ var pList = pFormattedList.map(function (formattedItem, pIndex) {
51
+ return /*#__PURE__*/_react["default"].createElement("div", {
52
+ key: pIndex
53
+ }, formattedItem);
54
+ });
55
+ element = /*#__PURE__*/_react["default"].createElement("th", {
56
+ key: "header-".concat(item.time),
57
+ className: "header3-text",
58
+ style: style
59
+ }, /*#__PURE__*/_react["default"].createElement("div", null, pList));
60
+ }
61
+ headerList.push(element);
62
+ }
63
+ });
64
+ } else {
65
+ headerList = headers.map(function (item, index) {
66
+ var datetime = localeDayjs(new Date(item.time));
67
+ style = item.nonWorkingTime ? {
68
+ width: cellWidth,
69
+ color: config.nonWorkingTimeHeadColor,
70
+ backgroundColor: config.nonWorkingTimeHeadBgColor
71
+ } : {
72
+ width: cellWidth
73
+ };
74
+ if (index === headers.length - 1) style = item.nonWorkingTime ? {
75
+ color: config.nonWorkingTimeHeadColor,
76
+ backgroundColor: config.nonWorkingTimeHeadBgColor
77
+ } : {};
78
+ var cellFormat = cellUnit === _default2.CellUnit.Week ? config.nonAgendaWeekCellHeaderFormat : cellUnit === _default2.CellUnit.Month ? config.nonAgendaMonthCellHeaderFormat : cellUnit === _default2.CellUnit.Year ? config.nonAgendaYearCellHeaderFormat : config.nonAgendaOtherCellHeaderFormat;
79
+ var pFormattedList = cellFormat.split('|').map(function (dateFormatPart) {
80
+ return datetime.format(dateFormatPart);
81
+ });
82
+ if (typeof nonAgendaCellHeaderTemplateResolver === 'function') {
83
+ return nonAgendaCellHeaderTemplateResolver(schedulerData, item, pFormattedList, style);
84
+ }
85
+ var pList = pFormattedList.map(function (formattedItem, pIndex) {
86
+ return /*#__PURE__*/_react["default"].createElement("div", {
87
+ key: pIndex
88
+ }, formattedItem);
89
+ });
90
+ return /*#__PURE__*/_react["default"].createElement("th", {
91
+ key: "header-".concat(item.time),
92
+ className: "header3-text",
93
+ style: style
94
+ }, /*#__PURE__*/_react["default"].createElement("div", null, pList));
95
+ });
96
+ }
97
+ return /*#__PURE__*/_react["default"].createElement("thead", null, /*#__PURE__*/_react["default"].createElement("tr", {
98
+ style: {
99
+ height: headerHeight
100
+ }
101
+ }, headerList));
102
+ }
103
+ HeaderView.propTypes = {
104
+ schedulerData: _propTypes["default"].object.isRequired,
105
+ nonAgendaCellHeaderTemplateResolver: _propTypes["default"].func
106
+ };
107
+ HeaderView.defaultProps = {
108
+ nonAgendaCellHeaderTemplateResolver: null
109
+ };
110
+ var _default = exports["default"] = HeaderView;
@@ -0,0 +1,412 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _propTypes = require("prop-types");
9
+ var _AddMore = _interopRequireDefault(require("./AddMore"));
10
+ var _Summary = _interopRequireDefault(require("./Summary"));
11
+ var _SelectedArea = _interopRequireDefault(require("./SelectedArea"));
12
+ var _default2 = require("../config/default");
13
+ var _utility = require("../helper/utility");
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
16
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
17
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
18
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
19
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
20
+ 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."); }
21
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
22
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
23
+ 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; } }
24
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
25
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
26
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
27
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
28
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
29
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
30
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
31
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
32
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
33
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
34
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
35
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
36
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
37
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
38
+ var ResourceEvents = /*#__PURE__*/function (_Component) {
39
+ _inherits(ResourceEvents, _Component);
40
+ var _super = _createSuper(ResourceEvents);
41
+ function ResourceEvents(props) {
42
+ var _this;
43
+ _classCallCheck(this, ResourceEvents);
44
+ _this = _super.call(this, props);
45
+ _defineProperty(_assertThisInitialized(_this), "supportTouchHelper", function () {
46
+ var evType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'add';
47
+ var ev = evType === 'add' ? _this.eventContainer.addEventListener : _this.eventContainer.removeEventListener;
48
+ if (_this.supportTouch) {
49
+ // ev('touchstart', this.initDrag, false);
50
+ } else {
51
+ ev('mousedown', _this.initDrag, false);
52
+ }
53
+ });
54
+ _defineProperty(_assertThisInitialized(_this), "initDrag", function (ev) {
55
+ var isSelecting = _this.state.isSelecting;
56
+ if (isSelecting) return;
57
+ if ((ev.srcElement || ev.target) !== _this.eventContainer) return;
58
+ ev.stopPropagation();
59
+ var resourceEvents = _this.props.resourceEvents;
60
+ if (resourceEvents.groupOnly) return;
61
+ var _this$dragHelper = _this.dragHelper(ev, 'init'),
62
+ _this$dragHelper2 = _slicedToArray(_this$dragHelper, 2),
63
+ clientX = _this$dragHelper2[0],
64
+ toReturn = _this$dragHelper2[1];
65
+ if (toReturn) {
66
+ return;
67
+ }
68
+ var schedulerData = _this.props.schedulerData;
69
+ var cellWidth = schedulerData.getContentCellWidth();
70
+ var pos = (0, _utility.getPos)(_this.eventContainer);
71
+ var startX = clientX - pos.x;
72
+ var leftIndex = Math.floor(startX / cellWidth);
73
+ var left = leftIndex * cellWidth;
74
+ var rightIndex = Math.ceil(startX / cellWidth);
75
+ var width = (rightIndex - leftIndex) * cellWidth;
76
+ _this.setState({
77
+ startX: startX,
78
+ left: left,
79
+ leftIndex: leftIndex,
80
+ width: width,
81
+ rightIndex: rightIndex,
82
+ isSelecting: true
83
+ });
84
+ if (_this.supportTouch) {
85
+ document.documentElement.addEventListener('touchmove', _this.doDrag, false);
86
+ document.documentElement.addEventListener('touchend', _this.stopDrag, false);
87
+ document.documentElement.addEventListener('touchcancel', _this.cancelDrag, false);
88
+ } else {
89
+ document.documentElement.addEventListener('mousemove', _this.doDrag, false);
90
+ document.documentElement.addEventListener('mouseup', _this.stopDrag, false);
91
+ }
92
+ document.onselectstart = function () {
93
+ return false;
94
+ };
95
+ document.ondragstart = function () {
96
+ return false;
97
+ };
98
+ });
99
+ _defineProperty(_assertThisInitialized(_this), "doDrag", function (ev) {
100
+ ev.stopPropagation();
101
+ var _this$dragHelper3 = _this.dragHelper(ev, 'do'),
102
+ _this$dragHelper4 = _slicedToArray(_this$dragHelper3, 2),
103
+ clientX = _this$dragHelper4[0],
104
+ toReturn = _this$dragHelper4[1];
105
+ if (toReturn) {
106
+ return;
107
+ }
108
+ var startX = _this.state.startX;
109
+ var schedulerData = _this.props.schedulerData;
110
+ var headers = schedulerData.headers;
111
+ var cellWidth = schedulerData.getContentCellWidth();
112
+ var pos = (0, _utility.getPos)(_this.eventContainer);
113
+ var currentX = clientX - pos.x;
114
+ var leftIndex = Math.floor(Math.min(startX, currentX) / cellWidth);
115
+ leftIndex = leftIndex < 0 ? 0 : leftIndex;
116
+ var left = leftIndex * cellWidth;
117
+ var rightIndex = Math.ceil(Math.max(startX, currentX) / cellWidth);
118
+ rightIndex = rightIndex > headers.length ? headers.length : rightIndex;
119
+ var width = (rightIndex - leftIndex) * cellWidth;
120
+ _this.setState({
121
+ leftIndex: leftIndex,
122
+ left: left,
123
+ rightIndex: rightIndex,
124
+ width: width,
125
+ isSelecting: true
126
+ });
127
+ });
128
+ _defineProperty(_assertThisInitialized(_this), "dragHelper", function (ev, dragType) {
129
+ var clientX = 0;
130
+ if (_this.supportTouch) {
131
+ if (ev.changedTouches.length === 0) return [clientX, true];
132
+ var touch = ev.changedTouches[0];
133
+ clientX = touch.pageX;
134
+ } else if (dragType === 'init') {
135
+ if (ev.buttons !== undefined && ev.buttons !== 1) return [clientX, true];
136
+ clientX = ev.clientX;
137
+ } else {
138
+ clientX = ev.clientX;
139
+ }
140
+ return [clientX, false];
141
+ });
142
+ _defineProperty(_assertThisInitialized(_this), "stopDrag", function (ev) {
143
+ ev.stopPropagation();
144
+ var _this$props = _this.props,
145
+ schedulerData = _this$props.schedulerData,
146
+ newEvent = _this$props.newEvent,
147
+ resourceEvents = _this$props.resourceEvents;
148
+ var headers = schedulerData.headers,
149
+ events = schedulerData.events,
150
+ config = schedulerData.config,
151
+ cellUnit = schedulerData.cellUnit,
152
+ localeDayjs = schedulerData.localeDayjs;
153
+ var _this$state = _this.state,
154
+ leftIndex = _this$state.leftIndex,
155
+ rightIndex = _this$state.rightIndex;
156
+ if (_this.supportTouch) {
157
+ document.documentElement.removeEventListener('touchmove', _this.doDrag, false);
158
+ document.documentElement.removeEventListener('touchend', _this.stopDrag, false);
159
+ document.documentElement.removeEventListener('touchcancel', _this.cancelDrag, false);
160
+ } else {
161
+ document.documentElement.removeEventListener('mousemove', _this.doDrag, false);
162
+ document.documentElement.removeEventListener('mouseup', _this.stopDrag, false);
163
+ }
164
+ document.onselectstart = null;
165
+ document.ondragstart = null;
166
+ var startTime = headers[leftIndex].time;
167
+ var endTime = resourceEvents.headerItems[rightIndex - 1].end;
168
+ if (cellUnit !== _default2.CellUnit.Hour) {
169
+ endTime = localeDayjs(new Date(resourceEvents.headerItems[rightIndex - 1].start)).hour(23).minute(59).second(59).format(_default2.DATETIME_FORMAT);
170
+ }
171
+ var slotId = resourceEvents.slotId;
172
+ var slotName = resourceEvents.slotName;
173
+ _this.setState({
174
+ startX: 0,
175
+ leftIndex: 0,
176
+ left: 0,
177
+ rightIndex: 0,
178
+ width: 0,
179
+ isSelecting: false
180
+ });
181
+ var hasConflict = false;
182
+ if (config.checkConflict) {
183
+ var start = localeDayjs(new Date(startTime));
184
+ var end = localeDayjs(endTime);
185
+ events.forEach(function (e) {
186
+ if (schedulerData._getEventSlotId(e) === slotId) {
187
+ var eStart = localeDayjs(e.start);
188
+ var eEnd = localeDayjs(e.end);
189
+ if (start >= eStart && start < eEnd || end > eStart && end <= eEnd || eStart >= start && eStart < end || eEnd > start && eEnd <= end) hasConflict = true;
190
+ }
191
+ });
192
+ }
193
+ if (hasConflict) {
194
+ var conflictOccurred = _this.props.conflictOccurred;
195
+ if (conflictOccurred !== undefined) {
196
+ conflictOccurred(schedulerData, 'New', {
197
+ id: undefined,
198
+ start: startTime,
199
+ end: endTime,
200
+ slotId: slotId,
201
+ slotName: slotName,
202
+ title: undefined
203
+ }, _default2.DnDTypes.EVENT, slotId, slotName, startTime, endTime);
204
+ } else {
205
+ console.log('Conflict occurred, set conflictOccurred func in Scheduler to handle it');
206
+ }
207
+ } else if (newEvent !== undefined) newEvent(schedulerData, slotId, slotName, startTime, endTime);
208
+ });
209
+ _defineProperty(_assertThisInitialized(_this), "cancelDrag", function (ev) {
210
+ ev.stopPropagation();
211
+ var isSelecting = _this.state.isSelecting;
212
+ if (isSelecting) {
213
+ document.documentElement.removeEventListener('touchmove', _this.doDrag, false);
214
+ document.documentElement.removeEventListener('touchend', _this.stopDrag, false);
215
+ document.documentElement.removeEventListener('touchcancel', _this.cancelDrag, false);
216
+ document.onselectstart = null;
217
+ document.ondragstart = null;
218
+ _this.setState({
219
+ startX: 0,
220
+ leftIndex: 0,
221
+ left: 0,
222
+ rightIndex: 0,
223
+ width: 0,
224
+ isSelecting: false
225
+ });
226
+ }
227
+ });
228
+ _defineProperty(_assertThisInitialized(_this), "onAddMoreClick", function (headerItem) {
229
+ var _this$props2 = _this.props,
230
+ onSetAddMoreState = _this$props2.onSetAddMoreState,
231
+ resourceEvents = _this$props2.resourceEvents,
232
+ schedulerData = _this$props2.schedulerData;
233
+ if (onSetAddMoreState) {
234
+ var config = schedulerData.config;
235
+ var cellWidth = schedulerData.getContentCellWidth();
236
+ var index = resourceEvents.headerItems.indexOf(headerItem);
237
+ if (index !== -1) {
238
+ var left = index * (cellWidth - 1);
239
+ var pos = (0, _utility.getPos)(_this.eventContainer);
240
+ left += pos.x;
241
+ var top = pos.y;
242
+ var height = (headerItem.count + 1) * config.eventItemLineHeight + 20;
243
+ onSetAddMoreState({
244
+ headerItem: headerItem,
245
+ left: left,
246
+ top: top,
247
+ height: height
248
+ });
249
+ }
250
+ }
251
+ });
252
+ _defineProperty(_assertThisInitialized(_this), "eventContainerRef", function (element) {
253
+ _this.eventContainer = element;
254
+ });
255
+ _this.state = {
256
+ isSelecting: false,
257
+ left: 0,
258
+ width: 0
259
+ };
260
+ _this.supportTouch = false; // 'ontouchstart' in window;
261
+ return _this;
262
+ }
263
+ _createClass(ResourceEvents, [{
264
+ key: "componentDidMount",
265
+ value: function componentDidMount() {
266
+ var schedulerData = this.props.schedulerData;
267
+ var config = schedulerData.config;
268
+ this.supportTouch = 'ontouchstart' in window;
269
+ if (config.creatable === true) {
270
+ this.supportTouchHelper();
271
+ }
272
+ }
273
+ }, {
274
+ key: "componentDidUpdate",
275
+ value: function componentDidUpdate(prevProps) {
276
+ if (prevProps !== this.props) {
277
+ this.supportTouchHelper('remove');
278
+ if (this.props.schedulerData.config.creatable) {
279
+ this.supportTouchHelper();
280
+ }
281
+ }
282
+ }
283
+ }, {
284
+ key: "render",
285
+ value: function render() {
286
+ var _this2 = this;
287
+ var _this$props3 = this.props,
288
+ resourceEvents = _this$props3.resourceEvents,
289
+ schedulerData = _this$props3.schedulerData,
290
+ connectDropTarget = _this$props3.connectDropTarget,
291
+ dndSource = _this$props3.dndSource;
292
+ var cellUnit = schedulerData.cellUnit,
293
+ startDate = schedulerData.startDate,
294
+ endDate = schedulerData.endDate,
295
+ config = schedulerData.config,
296
+ localeDayjs = schedulerData.localeDayjs;
297
+ var _this$state2 = this.state,
298
+ isSelecting = _this$state2.isSelecting,
299
+ left = _this$state2.left,
300
+ width = _this$state2.width;
301
+ var cellWidth = schedulerData.getContentCellWidth();
302
+ var cellMaxEvents = schedulerData.getCellMaxEvents();
303
+ var rowWidth = schedulerData.getContentTableWidth();
304
+ var DnDEventItem = dndSource.getDragSource();
305
+ var selectedArea = isSelecting ? /*#__PURE__*/_react["default"].createElement(_SelectedArea["default"], _extends({}, this.props, {
306
+ left: left,
307
+ width: width
308
+ })) : /*#__PURE__*/_react["default"].createElement("div", null);
309
+ var eventList = [];
310
+ resourceEvents.headerItems.forEach(function (headerItem, index) {
311
+ if (headerItem.count > 0 || headerItem.summary !== undefined) {
312
+ var isTop = config.summaryPos === _default2.SummaryPos.TopRight || config.summaryPos === _default2.SummaryPos.Top || config.summaryPos === _default2.SummaryPos.TopLeft;
313
+ var marginTop = resourceEvents.hasSummary && isTop ? 1 + config.eventItemLineHeight : 1;
314
+ var renderEventsMaxIndex = headerItem.addMore === 0 ? cellMaxEvents : headerItem.addMoreIndex;
315
+ headerItem.events.forEach(function (evt, idx) {
316
+ if (idx < renderEventsMaxIndex && evt !== undefined && evt.render) {
317
+ var durationStart = localeDayjs(new Date(startDate));
318
+ var durationEnd = localeDayjs(endDate);
319
+ if (cellUnit === _default2.CellUnit.Hour) {
320
+ durationStart = localeDayjs(new Date(startDate)).add(config.dayStartFrom, 'hours');
321
+ durationEnd = localeDayjs(endDate).add(config.dayStopTo + 1, 'hours');
322
+ }
323
+ var eventStart = localeDayjs(evt.eventItem.start);
324
+ var eventEnd = localeDayjs(evt.eventItem.end);
325
+ var isStart = eventStart >= durationStart;
326
+ var isEnd = eventEnd <= durationEnd;
327
+ var _left = index * cellWidth + (index > 0 ? 2 : 3);
328
+ var _width = evt.span * cellWidth - (index > 0 ? 5 : 6) > 0 ? evt.span * cellWidth - (index > 0 ? 5 : 6) : 0;
329
+ var top = marginTop + idx * config.eventItemLineHeight;
330
+ var eventItem = /*#__PURE__*/_react["default"].createElement(DnDEventItem, _extends({}, _this2.props, {
331
+ key: evt.eventItem.id,
332
+ eventItem: evt.eventItem,
333
+ isStart: isStart,
334
+ isEnd: isEnd,
335
+ isInPopover: false,
336
+ left: _left,
337
+ width: _width,
338
+ top: top,
339
+ leftIndex: index,
340
+ rightIndex: index + evt.span
341
+ }));
342
+ eventList.push(eventItem);
343
+ }
344
+ });
345
+ if (headerItem.addMore > 0) {
346
+ var _left2 = index * cellWidth + (index > 0 ? 2 : 3);
347
+ var _width2 = cellWidth - (index > 0 ? 5 : 6);
348
+ var top = marginTop + headerItem.addMoreIndex * config.eventItemLineHeight;
349
+ var addMoreItem = /*#__PURE__*/_react["default"].createElement(_AddMore["default"], _extends({}, _this2.props, {
350
+ key: headerItem.time,
351
+ headerItem: headerItem,
352
+ number: headerItem.addMore,
353
+ left: _left2,
354
+ width: _width2,
355
+ top: top,
356
+ clickAction: _this2.onAddMoreClick
357
+ }));
358
+ eventList.push(addMoreItem);
359
+ }
360
+ if (headerItem.summary !== undefined) {
361
+ var _top = isTop ? 1 : resourceEvents.rowHeight - config.eventItemLineHeight + 1;
362
+ var _left3 = index * cellWidth + (index > 0 ? 2 : 3);
363
+ var _width3 = cellWidth - (index > 0 ? 5 : 6);
364
+ var key = "".concat(resourceEvents.slotId, "_").concat(headerItem.time);
365
+ var summary = /*#__PURE__*/_react["default"].createElement(_Summary["default"], {
366
+ key: key,
367
+ schedulerData: schedulerData,
368
+ summary: headerItem.summary,
369
+ left: _left3,
370
+ width: _width3,
371
+ top: _top
372
+ });
373
+ eventList.push(summary);
374
+ }
375
+ }
376
+ });
377
+ var eventContainer = /*#__PURE__*/_react["default"].createElement("div", {
378
+ ref: this.eventContainerRef,
379
+ className: "event-container",
380
+ style: {
381
+ height: resourceEvents.rowHeight
382
+ }
383
+ }, selectedArea, eventList);
384
+ return /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", {
385
+ style: {
386
+ width: rowWidth
387
+ }
388
+ }, config.dragAndDropEnabled ? connectDropTarget(eventContainer) : eventContainer));
389
+ }
390
+ }]);
391
+ return ResourceEvents;
392
+ }(_react.Component);
393
+ _defineProperty(ResourceEvents, "propTypes", {
394
+ resourceEvents: _propTypes.PropTypes.object.isRequired,
395
+ schedulerData: _propTypes.PropTypes.object.isRequired,
396
+ dndSource: _propTypes.PropTypes.object.isRequired,
397
+ onSetAddMoreState: _propTypes.PropTypes.func,
398
+ updateEventStart: _propTypes.PropTypes.func,
399
+ updateEventEnd: _propTypes.PropTypes.func,
400
+ moveEvent: _propTypes.PropTypes.func,
401
+ movingEvent: _propTypes.PropTypes.func,
402
+ conflictOccurred: _propTypes.PropTypes.func,
403
+ subtitleGetter: _propTypes.PropTypes.func,
404
+ eventItemClick: _propTypes.PropTypes.func,
405
+ viewEventClick: _propTypes.PropTypes.func,
406
+ viewEventText: _propTypes.PropTypes.string,
407
+ viewEvent2Click: _propTypes.PropTypes.func,
408
+ viewEvent2Text: _propTypes.PropTypes.string,
409
+ newEvent: _propTypes.PropTypes.func,
410
+ eventItemTemplateResolver: _propTypes.PropTypes.func
411
+ });
412
+ var _default = exports["default"] = ResourceEvents;