makula-schedule 2.1.3 → 2.2.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/dist/components/MonthCalendarView.js +252 -0
- package/dist/components/index.js +7 -0
- package/dist/css/month-calendar.css +109 -0
- package/dist/index.js +6 -0
- package/package.json +1 -1
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
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); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _antd = require("antd");
|
|
9
|
+
var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
10
|
+
var _isoWeek = _interopRequireDefault(require("dayjs/plugin/isoWeek"));
|
|
11
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
+
require("../css/month-calendar.css");
|
|
14
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
15
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
16
|
+
// eslint-disable-next-line no-unused-vars
|
|
17
|
+
|
|
18
|
+
_dayjs["default"].extend(_isoWeek["default"]);
|
|
19
|
+
var DEFAULT_BG_COLOR = '#80C5F6';
|
|
20
|
+
function buildMonthGrid(date, weekStartsOn) {
|
|
21
|
+
var current = (0, _dayjs["default"])(date);
|
|
22
|
+
var firstOfMonth = current.startOf('month');
|
|
23
|
+
var lastOfMonth = current.endOf('month');
|
|
24
|
+
|
|
25
|
+
// Find the start of the grid (first day of the week containing the 1st)
|
|
26
|
+
var gridStart;
|
|
27
|
+
if (weekStartsOn === 1) {
|
|
28
|
+
// Monday start
|
|
29
|
+
gridStart = firstOfMonth.startOf('isoWeek');
|
|
30
|
+
} else {
|
|
31
|
+
// Sunday start
|
|
32
|
+
var day = firstOfMonth.day();
|
|
33
|
+
gridStart = day === 0 ? firstOfMonth : firstOfMonth.subtract(day, 'days');
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Build weeks until we pass the end of the month
|
|
37
|
+
var weeks = [];
|
|
38
|
+
var cursor = gridStart;
|
|
39
|
+
while (cursor.isBefore(lastOfMonth) || cursor.isSame(lastOfMonth, 'day') || weeks.length === 0) {
|
|
40
|
+
var week = [];
|
|
41
|
+
for (var i = 0; i < 7; i++) {
|
|
42
|
+
week.push({
|
|
43
|
+
date: cursor,
|
|
44
|
+
isCurrentMonth: cursor.month() === current.month() && cursor.year() === current.year(),
|
|
45
|
+
isToday: cursor.isSame((0, _dayjs["default"])(), 'day')
|
|
46
|
+
});
|
|
47
|
+
cursor = cursor.add(1, 'day');
|
|
48
|
+
}
|
|
49
|
+
weeks.push(week);
|
|
50
|
+
// Stop if we've filled weeks beyond the month
|
|
51
|
+
if (cursor.month() !== current.month() && weeks.length >= 4) {
|
|
52
|
+
// Check if we need one more week
|
|
53
|
+
if (cursor.isAfter(lastOfMonth)) break;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return weeks;
|
|
57
|
+
}
|
|
58
|
+
function getEventsForDay(events, day) {
|
|
59
|
+
var dayStart = day.startOf('day');
|
|
60
|
+
var dayEnd = day.endOf('day');
|
|
61
|
+
return events.filter(function (event) {
|
|
62
|
+
var eventStart = (0, _dayjs["default"])(event.start);
|
|
63
|
+
var eventEnd = (0, _dayjs["default"])(event.end);
|
|
64
|
+
return eventStart.isBefore(dayEnd) && eventEnd.isAfter(dayStart);
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
function getDayHeaderLabels(weekStartsOn, headerFormat) {
|
|
68
|
+
var base = weekStartsOn === 1 ? (0, _dayjs["default"])().startOf('isoWeek') : (0, _dayjs["default"])().day(0);
|
|
69
|
+
var labels = [];
|
|
70
|
+
for (var i = 0; i < 7; i++) {
|
|
71
|
+
labels.push(base.add(i, 'day').format(headerFormat));
|
|
72
|
+
}
|
|
73
|
+
return labels;
|
|
74
|
+
}
|
|
75
|
+
function EventPill(_ref) {
|
|
76
|
+
var event = _ref.event,
|
|
77
|
+
eventItemPopoverEnabled = _ref.eventItemPopoverEnabled,
|
|
78
|
+
eventItemPopoverTrigger = _ref.eventItemPopoverTrigger,
|
|
79
|
+
CustomEventPopover = _ref.CustomEventPopover,
|
|
80
|
+
onEventClick = _ref.onEventClick;
|
|
81
|
+
var bgColor = event.bgColor || DEFAULT_BG_COLOR;
|
|
82
|
+
var startTime = (0, _dayjs["default"])(event.start);
|
|
83
|
+
var endTime = (0, _dayjs["default"])(event.end);
|
|
84
|
+
var pill = /*#__PURE__*/_react["default"].createElement("span", {
|
|
85
|
+
className: "rbs-month-calendar-event",
|
|
86
|
+
style: {
|
|
87
|
+
backgroundColor: bgColor
|
|
88
|
+
},
|
|
89
|
+
onClick: function onClick(e) {
|
|
90
|
+
if (onEventClick) {
|
|
91
|
+
e.stopPropagation();
|
|
92
|
+
onEventClick(event);
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
title: event.title
|
|
96
|
+
}, event.title);
|
|
97
|
+
if (!eventItemPopoverEnabled) {
|
|
98
|
+
return pill;
|
|
99
|
+
}
|
|
100
|
+
var popoverContent = CustomEventPopover ? CustomEventPopover(event, event.title, startTime, endTime, bgColor) : /*#__PURE__*/_react["default"].createElement("div", {
|
|
101
|
+
style: {
|
|
102
|
+
width: 280
|
|
103
|
+
}
|
|
104
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
105
|
+
style: {
|
|
106
|
+
display: 'flex',
|
|
107
|
+
alignItems: 'center',
|
|
108
|
+
marginBottom: 6
|
|
109
|
+
}
|
|
110
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
111
|
+
style: {
|
|
112
|
+
width: 12,
|
|
113
|
+
height: 12,
|
|
114
|
+
borderRadius: 6,
|
|
115
|
+
backgroundColor: bgColor,
|
|
116
|
+
marginRight: 8,
|
|
117
|
+
flexShrink: 0
|
|
118
|
+
}
|
|
119
|
+
}), /*#__PURE__*/_react["default"].createElement("span", {
|
|
120
|
+
style: {
|
|
121
|
+
fontWeight: 500,
|
|
122
|
+
fontSize: 14,
|
|
123
|
+
overflow: 'hidden',
|
|
124
|
+
textOverflow: 'ellipsis',
|
|
125
|
+
whiteSpace: 'nowrap'
|
|
126
|
+
}
|
|
127
|
+
}, event.title)), /*#__PURE__*/_react["default"].createElement("div", {
|
|
128
|
+
style: {
|
|
129
|
+
color: '#666',
|
|
130
|
+
fontSize: 13
|
|
131
|
+
}
|
|
132
|
+
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
133
|
+
style: {
|
|
134
|
+
fontWeight: 500
|
|
135
|
+
}
|
|
136
|
+
}, startTime.format('HH:mm')), /*#__PURE__*/_react["default"].createElement("span", {
|
|
137
|
+
style: {
|
|
138
|
+
margin: '0 6px',
|
|
139
|
+
color: '#999'
|
|
140
|
+
}
|
|
141
|
+
}, startTime.format('MMM D')), /*#__PURE__*/_react["default"].createElement("span", {
|
|
142
|
+
style: {
|
|
143
|
+
margin: '0 4px'
|
|
144
|
+
}
|
|
145
|
+
}, "-"), /*#__PURE__*/_react["default"].createElement("span", {
|
|
146
|
+
style: {
|
|
147
|
+
fontWeight: 500
|
|
148
|
+
}
|
|
149
|
+
}, endTime.format('HH:mm')), /*#__PURE__*/_react["default"].createElement("span", {
|
|
150
|
+
style: {
|
|
151
|
+
margin: '0 6px',
|
|
152
|
+
color: '#999'
|
|
153
|
+
}
|
|
154
|
+
}, endTime.format('MMM D'))));
|
|
155
|
+
return /*#__PURE__*/_react["default"].createElement(_antd.Popover, {
|
|
156
|
+
content: popoverContent,
|
|
157
|
+
trigger: eventItemPopoverTrigger,
|
|
158
|
+
placement: "bottomLeft"
|
|
159
|
+
}, pill);
|
|
160
|
+
}
|
|
161
|
+
EventPill.propTypes = {
|
|
162
|
+
event: _propTypes["default"].object.isRequired,
|
|
163
|
+
eventItemPopoverEnabled: _propTypes["default"].bool,
|
|
164
|
+
eventItemPopoverTrigger: _propTypes["default"].string,
|
|
165
|
+
CustomEventPopover: _propTypes["default"].func,
|
|
166
|
+
onEventClick: _propTypes["default"].func
|
|
167
|
+
};
|
|
168
|
+
function MonthCalendarView(_ref2) {
|
|
169
|
+
var _ref2$events = _ref2.events,
|
|
170
|
+
events = _ref2$events === void 0 ? [] : _ref2$events,
|
|
171
|
+
date = _ref2.date,
|
|
172
|
+
onEventClick = _ref2.onEventClick,
|
|
173
|
+
CustomEventPopover = _ref2.CustomEventPopover,
|
|
174
|
+
_ref2$eventItemPopove = _ref2.eventItemPopoverEnabled,
|
|
175
|
+
eventItemPopoverEnabled = _ref2$eventItemPopove === void 0 ? true : _ref2$eventItemPopove,
|
|
176
|
+
_ref2$eventItemPopove2 = _ref2.eventItemPopoverTrigger,
|
|
177
|
+
eventItemPopoverTrigger = _ref2$eventItemPopove2 === void 0 ? 'hover' : _ref2$eventItemPopove2,
|
|
178
|
+
_ref2$maxEventsPerCel = _ref2.maxEventsPerCell,
|
|
179
|
+
maxEventsPerCell = _ref2$maxEventsPerCel === void 0 ? 3 : _ref2$maxEventsPerCel,
|
|
180
|
+
onMoreClick = _ref2.onMoreClick,
|
|
181
|
+
_ref2$weekStartsOn = _ref2.weekStartsOn,
|
|
182
|
+
weekStartsOn = _ref2$weekStartsOn === void 0 ? 1 : _ref2$weekStartsOn,
|
|
183
|
+
_ref2$headerFormat = _ref2.headerFormat,
|
|
184
|
+
headerFormat = _ref2$headerFormat === void 0 ? 'ddd' : _ref2$headerFormat,
|
|
185
|
+
className = _ref2.className;
|
|
186
|
+
var currentDate = date ? (0, _dayjs["default"])(date) : (0, _dayjs["default"])();
|
|
187
|
+
var weeks = (0, _react.useMemo)(function () {
|
|
188
|
+
return buildMonthGrid(currentDate, weekStartsOn);
|
|
189
|
+
}, [currentDate.format('YYYY-MM'), weekStartsOn]);
|
|
190
|
+
var dayHeaders = (0, _react.useMemo)(function () {
|
|
191
|
+
return getDayHeaderLabels(weekStartsOn, headerFormat);
|
|
192
|
+
}, [weekStartsOn, headerFormat]);
|
|
193
|
+
var rootClassName = ['rbs-month-calendar', className].filter(Boolean).join(' ');
|
|
194
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
195
|
+
className: rootClassName
|
|
196
|
+
}, dayHeaders.map(function (label, i) {
|
|
197
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
198
|
+
key: "header-".concat(i),
|
|
199
|
+
className: "rbs-month-calendar-header-cell"
|
|
200
|
+
}, label);
|
|
201
|
+
}), weeks.map(function (week, wi) {
|
|
202
|
+
return week.map(function (day, di) {
|
|
203
|
+
var dayEvents = getEventsForDay(events, day.date);
|
|
204
|
+
var visibleEvents = dayEvents.slice(0, maxEventsPerCell);
|
|
205
|
+
var overflowCount = dayEvents.length - maxEventsPerCell;
|
|
206
|
+
var cellClasses = ['rbs-month-calendar-cell', !day.isCurrentMonth && 'rbs-month-calendar-cell--outside', day.isToday && 'rbs-month-calendar-cell--today'].filter(Boolean).join(' ');
|
|
207
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
208
|
+
key: "".concat(wi, "-").concat(di),
|
|
209
|
+
className: cellClasses
|
|
210
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
211
|
+
className: "rbs-month-calendar-day-number"
|
|
212
|
+
}, day.date.date()), /*#__PURE__*/_react["default"].createElement("div", {
|
|
213
|
+
className: "rbs-month-calendar-events"
|
|
214
|
+
}, visibleEvents.map(function (event) {
|
|
215
|
+
return /*#__PURE__*/_react["default"].createElement(EventPill, {
|
|
216
|
+
key: event.id,
|
|
217
|
+
event: event,
|
|
218
|
+
eventItemPopoverEnabled: eventItemPopoverEnabled,
|
|
219
|
+
eventItemPopoverTrigger: eventItemPopoverTrigger,
|
|
220
|
+
CustomEventPopover: CustomEventPopover,
|
|
221
|
+
onEventClick: onEventClick
|
|
222
|
+
});
|
|
223
|
+
}), overflowCount > 0 && /*#__PURE__*/_react["default"].createElement("button", {
|
|
224
|
+
className: "rbs-month-calendar-more",
|
|
225
|
+
type: "button",
|
|
226
|
+
onClick: function onClick() {
|
|
227
|
+
if (onMoreClick) onMoreClick(day.date, dayEvents);
|
|
228
|
+
}
|
|
229
|
+
}, "+", overflowCount, " more")));
|
|
230
|
+
});
|
|
231
|
+
}));
|
|
232
|
+
}
|
|
233
|
+
MonthCalendarView.propTypes = {
|
|
234
|
+
events: _propTypes["default"].arrayOf(_propTypes["default"].shape({
|
|
235
|
+
id: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]).isRequired,
|
|
236
|
+
title: _propTypes["default"].string.isRequired,
|
|
237
|
+
start: _propTypes["default"].string.isRequired,
|
|
238
|
+
end: _propTypes["default"].string.isRequired,
|
|
239
|
+
bgColor: _propTypes["default"].string
|
|
240
|
+
})),
|
|
241
|
+
date: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object]),
|
|
242
|
+
onEventClick: _propTypes["default"].func,
|
|
243
|
+
CustomEventPopover: _propTypes["default"].func,
|
|
244
|
+
eventItemPopoverEnabled: _propTypes["default"].bool,
|
|
245
|
+
eventItemPopoverTrigger: _propTypes["default"].string,
|
|
246
|
+
maxEventsPerCell: _propTypes["default"].number,
|
|
247
|
+
onMoreClick: _propTypes["default"].func,
|
|
248
|
+
weekStartsOn: _propTypes["default"].oneOf([0, 1]),
|
|
249
|
+
headerFormat: _propTypes["default"].string,
|
|
250
|
+
className: _propTypes["default"].string
|
|
251
|
+
};
|
|
252
|
+
var _default = exports["default"] = MonthCalendarView;
|
package/dist/components/index.js
CHANGED
|
@@ -46,6 +46,12 @@ Object.defineProperty(exports, "DnDSource", {
|
|
|
46
46
|
return _DnDSource["default"];
|
|
47
47
|
}
|
|
48
48
|
});
|
|
49
|
+
Object.defineProperty(exports, "MonthCalendarView", {
|
|
50
|
+
enumerable: true,
|
|
51
|
+
get: function get() {
|
|
52
|
+
return _MonthCalendarView["default"];
|
|
53
|
+
}
|
|
54
|
+
});
|
|
49
55
|
exports.Scheduler = Scheduler;
|
|
50
56
|
Object.defineProperty(exports, "SchedulerData", {
|
|
51
57
|
enumerable: true,
|
|
@@ -81,6 +87,7 @@ var _BodyView = _interopRequireDefault(require("./BodyView"));
|
|
|
81
87
|
var _DnDContext = _interopRequireDefault(require("./DnDContext"));
|
|
82
88
|
var _DnDSource = _interopRequireDefault(require("./DnDSource"));
|
|
83
89
|
var _HeaderView = _interopRequireDefault(require("./HeaderView"));
|
|
90
|
+
var _MonthCalendarView = _interopRequireDefault(require("./MonthCalendarView"));
|
|
84
91
|
var _ResourceEvents = _interopRequireDefault(require("./ResourceEvents"));
|
|
85
92
|
var _ResourceView = _interopRequireDefault(require("./ResourceView"));
|
|
86
93
|
var _SchedulerData = _interopRequireDefault(require("./SchedulerData"));
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
.rbs-month-calendar {
|
|
2
|
+
display: grid;
|
|
3
|
+
grid-template-columns: repeat(7, 1fr);
|
|
4
|
+
border: 1px solid #e9e9e9;
|
|
5
|
+
font-family: inherit;
|
|
6
|
+
font-size: 13px;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.rbs-month-calendar-header-cell {
|
|
10
|
+
padding: 8px 4px;
|
|
11
|
+
text-align: center;
|
|
12
|
+
font-weight: 600;
|
|
13
|
+
font-size: 12px;
|
|
14
|
+
color: #666;
|
|
15
|
+
border-bottom: 1px solid #e9e9e9;
|
|
16
|
+
border-right: 1px solid #e9e9e9;
|
|
17
|
+
background: #fafafa;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.rbs-month-calendar-header-cell:last-child {
|
|
21
|
+
border-right: none;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.rbs-month-calendar-cell {
|
|
25
|
+
min-height: 100px;
|
|
26
|
+
border-bottom: 1px solid #e9e9e9;
|
|
27
|
+
border-right: 1px solid #e9e9e9;
|
|
28
|
+
padding: 4px;
|
|
29
|
+
display: flex;
|
|
30
|
+
flex-direction: column;
|
|
31
|
+
background: #fff;
|
|
32
|
+
overflow: hidden;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.rbs-month-calendar-cell:nth-child(7n) {
|
|
36
|
+
border-right: none;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.rbs-month-calendar-cell:nth-last-child(-n+7) {
|
|
40
|
+
border-bottom: none;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.rbs-month-calendar-cell--outside {
|
|
44
|
+
background: #fafafa;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.rbs-month-calendar-cell--outside .rbs-month-calendar-day-number {
|
|
48
|
+
color: #bbb;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.rbs-month-calendar-cell--today .rbs-month-calendar-day-number {
|
|
52
|
+
background: #1890ff;
|
|
53
|
+
color: #fff;
|
|
54
|
+
border-radius: 50%;
|
|
55
|
+
width: 24px;
|
|
56
|
+
height: 24px;
|
|
57
|
+
display: inline-flex;
|
|
58
|
+
align-items: center;
|
|
59
|
+
justify-content: center;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.rbs-month-calendar-day-number {
|
|
63
|
+
font-size: 13px;
|
|
64
|
+
font-weight: 500;
|
|
65
|
+
color: #333;
|
|
66
|
+
margin-bottom: 4px;
|
|
67
|
+
line-height: 24px;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.rbs-month-calendar-events {
|
|
71
|
+
flex: 1;
|
|
72
|
+
display: flex;
|
|
73
|
+
flex-direction: column;
|
|
74
|
+
gap: 2px;
|
|
75
|
+
min-width: 0;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.rbs-month-calendar-event {
|
|
79
|
+
display: block;
|
|
80
|
+
padding: 2px 6px;
|
|
81
|
+
border-radius: 4px;
|
|
82
|
+
font-size: 12px;
|
|
83
|
+
line-height: 18px;
|
|
84
|
+
color: #fff;
|
|
85
|
+
white-space: nowrap;
|
|
86
|
+
overflow: hidden;
|
|
87
|
+
text-overflow: ellipsis;
|
|
88
|
+
cursor: pointer;
|
|
89
|
+
min-width: 0;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.rbs-month-calendar-event:hover {
|
|
93
|
+
opacity: 0.85;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.rbs-month-calendar-more {
|
|
97
|
+
font-size: 11px;
|
|
98
|
+
color: #1890ff;
|
|
99
|
+
cursor: pointer;
|
|
100
|
+
padding: 2px 4px;
|
|
101
|
+
margin-top: 2px;
|
|
102
|
+
background: none;
|
|
103
|
+
border: none;
|
|
104
|
+
text-align: left;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.rbs-month-calendar-more:hover {
|
|
108
|
+
text-decoration: underline;
|
|
109
|
+
}
|
package/dist/index.js
CHANGED
|
@@ -45,6 +45,12 @@ Object.defineProperty(exports, "DnDSource", {
|
|
|
45
45
|
return _index.DnDSource;
|
|
46
46
|
}
|
|
47
47
|
});
|
|
48
|
+
Object.defineProperty(exports, "MonthCalendarView", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
get: function get() {
|
|
51
|
+
return _index.MonthCalendarView;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
48
54
|
Object.defineProperty(exports, "Scheduler", {
|
|
49
55
|
enumerable: true,
|
|
50
56
|
get: function get() {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "makula-schedule",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "React Big Schedule is a powerful and intuitive scheduler and resource planning solution built with React. Seamlessly integrate this modern browser-compatible component into your applications to effectively manage time, appointments, and resources. With drag-and-drop functionality, interactive UI, and granular views, react-big-schedule empowers users to effortlessly schedule and allocate resources with precision. Enhance productivity and streamline your workflow with this React-based solution, designed to optimize time management and simplify calendar-based operations. Perfect for applications requiring advanced scheduling capabilities, react-big-schedule offers a seamless and intuitive experience for managing appointments, resource allocation, and time slots. Unlock the potential of your React projects with react-big-schedule and revolutionize the way you handle scheduling and resource planning. It is the updated version of react-big-scheduler",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react-big-schedule",
|