sapp-common-package-test-final 1.0.10 → 1.0.12
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/SAPPCalendar/LMSWeeklyCalendar/LMSWeeklyCalendar.d.ts +15 -0
- package/dist/components/SAPPCalendar/LMSWeeklyCalendar/LMSWeeklyCell.d.ts +12 -0
- package/dist/components/SAPPCalendar/LMSWeeklyCalendar/LMSWeeklyEvent.d.ts +9 -0
- package/dist/components/SAPPCalendar/WeeklyCalendar/LMSWeeklyCalendar.d.ts +15 -0
- package/dist/constants/index.d.ts +38 -0
- package/dist/index.css +30 -11
- package/dist/index.js +269 -246
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +270 -247
- package/dist/index.modern.js.map +1 -1
- package/dist/types/index.d.ts +3 -1
- package/dist/utils/index.d.ts +2 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
@@ -60,7 +60,6 @@ var useEffectAfterMounted = function useEffectAfterMounted(callback, dependencie
|
|
60
60
|
}, dependencies);
|
61
61
|
};
|
62
62
|
|
63
|
-
var HOURS_PER_DAY = 24;
|
64
63
|
var MINUTES_PER_HOUR = 60;
|
65
64
|
var TIME_FORMAT = 'HH:mm';
|
66
65
|
var DAYS_OF_WEEK;
|
@@ -73,6 +72,37 @@ var DAYS_OF_WEEK;
|
|
73
72
|
DAYS_OF_WEEK["Saturday"] = "Saturday";
|
74
73
|
DAYS_OF_WEEK["Sunday"] = "Sunday";
|
75
74
|
})(DAYS_OF_WEEK || (DAYS_OF_WEEK = {}));
|
75
|
+
var DAYS_OF_WEEK_SHORTEN;
|
76
|
+
(function (DAYS_OF_WEEK_SHORTEN) {
|
77
|
+
DAYS_OF_WEEK_SHORTEN["Monday"] = "Mon";
|
78
|
+
DAYS_OF_WEEK_SHORTEN["Tuesday"] = "Tue";
|
79
|
+
DAYS_OF_WEEK_SHORTEN["Wednesday"] = "Wed";
|
80
|
+
DAYS_OF_WEEK_SHORTEN["Thursday"] = "Thur";
|
81
|
+
DAYS_OF_WEEK_SHORTEN["Friday"] = "Fri";
|
82
|
+
DAYS_OF_WEEK_SHORTEN["Saturday"] = "Sat";
|
83
|
+
DAYS_OF_WEEK_SHORTEN["Sunday"] = "Sun";
|
84
|
+
})(DAYS_OF_WEEK_SHORTEN || (DAYS_OF_WEEK_SHORTEN = {}));
|
85
|
+
var HOUR_OF_DAY;
|
86
|
+
(function (HOUR_OF_DAY) {
|
87
|
+
HOUR_OF_DAY["07:00"] = "07:00";
|
88
|
+
HOUR_OF_DAY["08:00"] = "08:00";
|
89
|
+
HOUR_OF_DAY["09:00"] = "09:00";
|
90
|
+
HOUR_OF_DAY["10:00"] = "10:00";
|
91
|
+
HOUR_OF_DAY["11:00"] = "11:00";
|
92
|
+
HOUR_OF_DAY["12:00"] = "12:00";
|
93
|
+
HOUR_OF_DAY["13:00"] = "13:00";
|
94
|
+
HOUR_OF_DAY["14:00"] = "14:00";
|
95
|
+
HOUR_OF_DAY["15:00"] = "15:00";
|
96
|
+
HOUR_OF_DAY["16:00"] = "16:00";
|
97
|
+
HOUR_OF_DAY["17:00"] = "17:00";
|
98
|
+
HOUR_OF_DAY["18:00"] = "18:00";
|
99
|
+
HOUR_OF_DAY["19:00"] = "19:00";
|
100
|
+
HOUR_OF_DAY["20:00"] = "20:00";
|
101
|
+
HOUR_OF_DAY["21:00"] = "21:00";
|
102
|
+
HOUR_OF_DAY["22:00"] = "22:00";
|
103
|
+
HOUR_OF_DAY["23:00"] = "23:00";
|
104
|
+
HOUR_OF_DAY["24:00"] = "24:00";
|
105
|
+
})(HOUR_OF_DAY || (HOUR_OF_DAY = {}));
|
76
106
|
var EVENT_TYPES;
|
77
107
|
(function (EVENT_TYPES) {
|
78
108
|
EVENT_TYPES["TEACHING"] = "TEACHING";
|
@@ -84,6 +114,16 @@ var FORMAT_DATE_CARLENDA = {
|
|
84
114
|
MONTH_AND_WEEK: 'MMMM, YYYY',
|
85
115
|
DATE: 'MMMM DD, YYYY'
|
86
116
|
};
|
117
|
+
var LEARNING_MODE;
|
118
|
+
(function (LEARNING_MODE) {
|
119
|
+
LEARNING_MODE["ONLINE"] = "ONLINE";
|
120
|
+
LEARNING_MODE["LIVE_ONLINE"] = "LIVE_ONLINE";
|
121
|
+
LEARNING_MODE["OFFLINE"] = "OFFLINE";
|
122
|
+
LEARNING_MODE["CASE_STUDY"] = "CASE_STUDY";
|
123
|
+
LEARNING_MODE["HOLIDAY"] = "HOLIDAY";
|
124
|
+
LEARNING_MODE["OVERDUE"] = "OVERDUE";
|
125
|
+
LEARNING_MODE["TEST"] = "TEST";
|
126
|
+
})(LEARNING_MODE || (LEARNING_MODE = {}));
|
87
127
|
|
88
128
|
var _convertType;
|
89
129
|
var customDateFormat = function customDateFormat(value, formatStr) {
|
@@ -91,6 +131,7 @@ var customDateFormat = function customDateFormat(value, formatStr) {
|
|
91
131
|
};
|
92
132
|
var convertType = (_convertType = {}, _convertType[EVENT_TYPES.TEACHING] = 'info', _convertType[EVENT_TYPES.BUSY] = 'error', _convertType[EVENT_TYPES.TIME_OFF] = 'warning', _convertType[EVENT_TYPES.OTHER] = 'success', _convertType);
|
93
133
|
var daysOfWeekKeys = Object.values(DAYS_OF_WEEK);
|
134
|
+
var hoursOfDayKeys = Object.values(HOUR_OF_DAY);
|
94
135
|
var calculateNormOfWeek = function calculateNormOfWeek(norms, events, startDate, endDate) {
|
95
136
|
var norm = norms.find(function (norm) {
|
96
137
|
return startDate.isBetween(norm.startDate, norm.endDate, 'day', '[]') && endDate.isBetween(norm.startDate, norm.endDate, 'day', '[]');
|
@@ -370,7 +411,7 @@ var HiddenEyeIcon = function HiddenEyeIcon() {
|
|
370
411
|
}));
|
371
412
|
};
|
372
413
|
|
373
|
-
var styles = {"flex":"_2hGgU","transform":"_3-Pu9","cursor-pointer":"_2Mcv6","rounded-none":"_3EfQZ","border-gray-4":"_3-NVJ","bg-button":"_3-gs3","bg-info/10":"_2ENMR","bg-white":"_rF-HF","!text-error":"_3mBZd","text-black":"_Irb_H","text-gray-600":"_1pL5w","text-info":"_NLvfI","text-secondary-text":"_H-zEU","filter":"_p0OEu","sapp-calendar":"_18t93","btn":"_1oiD_","icon":"_-E7rn","btn-default":"_3WrnL","btn-primary":"_2-qBL","event-info":"_xYqjb","event-warning":"_1oq3N","event-success":"_1hTMm","event-error":"_1hEJk","event-default":"_8FWXy","sapp-calendar__container":"_102cL","header-calendar":"_3Yvs5","header-calendar__nav":"_18m93","header-calendar__date-picker":"_2GTYD","header-calendar__title":"_35LQ0","header-calendar__controls":"_FqVqb","header-calendar__divider":"_3kHog","monthly-calendar":"_2NDGW","weekly-calendar":"_1QrJs","monthly-calendar__title":"_3Tsy4","monthly-calendar__title-active":"_1Dyjm","weekly-norm__cell":"_sGK9m","weekly-norm__value":"_1Jsb-","monthly-calendar__cell":"_2hVZ4","monthly-calendar__cell--active":"_1uenJ","calendar-tooltip":"_2Uo1f","monthly-event__title":"_2gsg7","monthly-event__date":"_2GtPn","weekly-calendar__title":"_5WuQ8","weekly-calendar__cell":"_3lPkV","weekly-event":"_hnHem","weekly-event__title":"_21a0T","weekly-event__date":"_PiKmX","weekly-event--collapse":"_1pvXT","btn-lms-default":"_1GA3p","text-lms-primary":"_1gLzS","select-mode":"_12I9I","ant-select-dropdown-placement-bottomLeft":"_1ZvuX"};
|
414
|
+
var styles = {"flex":"_2hGgU","transform":"_3-Pu9","cursor-pointer":"_2Mcv6","rounded-none":"_3EfQZ","border-gray-4":"_3-NVJ","bg-button":"_3-gs3","bg-info/10":"_2ENMR","bg-white":"_rF-HF","!text-error":"_3mBZd","text-black":"_Irb_H","text-gray-600":"_1pL5w","text-info":"_NLvfI","text-secondary-text":"_H-zEU","filter":"_p0OEu","sapp-calendar":"_18t93","btn":"_1oiD_","icon":"_-E7rn","btn-default":"_3WrnL","btn-primary":"_2-qBL","event-info":"_xYqjb","event-warning":"_1oq3N","event-success":"_1hTMm","event-error":"_1hEJk","event-default":"_8FWXy","sapp-calendar__container":"_102cL","header-calendar":"_3Yvs5","header-calendar__nav":"_18m93","header-calendar__date-picker":"_2GTYD","header-calendar__title":"_35LQ0","header-calendar__controls":"_FqVqb","header-calendar__divider":"_3kHog","monthly-calendar":"_2NDGW","weekly-calendar":"_1QrJs","monthly-calendar__title":"_3Tsy4","monthly-calendar__title-active":"_1Dyjm","weekly-norm__cell":"_sGK9m","weekly-norm__value":"_1Jsb-","monthly-calendar__cell":"_2hVZ4","monthly-calendar__cell--active":"_1uenJ","calendar-tooltip":"_2Uo1f","monthly-event__title":"_2gsg7","monthly-event__date":"_2GtPn","weekly-calendar__title":"_5WuQ8","weekly-calendar__cell":"_3lPkV","weekly-event":"_hnHem","weekly-event__title":"_21a0T","weekly-event__date":"_PiKmX","weekly-event--collapse":"_1pvXT","btn-lms-default":"_1GA3p","text-lms-primary":"_1gLzS","select-mode":"_12I9I","ant-select-dropdown-placement-bottomLeft":"_1ZvuX","header-calendar_filter":"_1fd_Y","lms-calendar__tablet":"_1sVO3"};
|
374
415
|
|
375
416
|
var Button = function Button(_ref) {
|
376
417
|
var _ref$type = _ref.type,
|
@@ -458,234 +499,6 @@ var HeaderCalendar = function HeaderCalendar(_ref) {
|
|
458
499
|
}, "Week")));
|
459
500
|
};
|
460
501
|
|
461
|
-
var CustomTooltip = function CustomTooltip(_ref) {
|
462
|
-
var title = _ref.title,
|
463
|
-
children = _ref.children,
|
464
|
-
_ref$placement = _ref.placement,
|
465
|
-
placement = _ref$placement === void 0 ? 'top' : _ref$placement;
|
466
|
-
return React__default.createElement(antd.Tooltip, {
|
467
|
-
color: '#ffffff',
|
468
|
-
title: React__default.createElement("div", {
|
469
|
-
className: styles['text-gray-600']
|
470
|
-
}, title),
|
471
|
-
placement: placement
|
472
|
-
}, React__default.createElement("div", null, children));
|
473
|
-
};
|
474
|
-
|
475
|
-
var _getIconEvent;
|
476
|
-
var calculateBoxSize = function calculateBoxSize(startTime, endTime, isAllDay) {
|
477
|
-
if (isAllDay) {
|
478
|
-
return {
|
479
|
-
top: 10,
|
480
|
-
height: 50
|
481
|
-
};
|
482
|
-
}
|
483
|
-
var minutes = dayjs(startTime).minute();
|
484
|
-
var diffMinutes = dayjs(endTime).diff(startTime, 'minute', true);
|
485
|
-
return {
|
486
|
-
top: Math.floor(minutes / MINUTES_PER_HOUR * 100),
|
487
|
-
height: Math.floor(diffMinutes / MINUTES_PER_HOUR * 100)
|
488
|
-
};
|
489
|
-
};
|
490
|
-
var getIconEvent = (_getIconEvent = {}, _getIconEvent[EVENT_TYPES.TEACHING] = React__default.createElement(Book, null), _getIconEvent[EVENT_TYPES.BUSY] = React__default.createElement(CalendarDelete, null), _getIconEvent[EVENT_TYPES.TIME_OFF] = React__default.createElement(Star, null), _getIconEvent[EVENT_TYPES.OTHER] = React__default.createElement(CalendarAccept, null), _getIconEvent);
|
491
|
-
var MIN_HEIGHT_HIDE_DETAILS = 140;
|
492
|
-
var MIN_HEIGHT_HIDE_ALL = 105;
|
493
|
-
var WeeklyEvent = function WeeklyEvent(_ref) {
|
494
|
-
var event = _ref.event,
|
495
|
-
onOpenDetail = _ref.onOpenDetail,
|
496
|
-
onEventDetail = _ref.onEventDetail;
|
497
|
-
var _calculateBoxSize = calculateBoxSize(event.startDate, event.endDate, event.isAllDay),
|
498
|
-
top = _calculateBoxSize.top,
|
499
|
-
height = _calculateBoxSize.height;
|
500
|
-
var formattedDate = customDateFormat(event.startDate, TIME_FORMAT) + ' - ' + customDateFormat(event.endDate, TIME_FORMAT);
|
501
|
-
return React__default.createElement("div", {
|
502
|
-
className: styles["event-" + convertType[event.type]],
|
503
|
-
onClick: function onClick() {
|
504
|
-
onOpenDetail(dayjs(event.startDate).toDate(), [event]);
|
505
|
-
onEventDetail && onEventDetail(event);
|
506
|
-
},
|
507
|
-
style: {
|
508
|
-
top: top + "%",
|
509
|
-
height: height + "%",
|
510
|
-
zIndex: event.type === EVENT_TYPES.BUSY ? 2 : 1
|
511
|
-
}
|
512
|
-
}, React__default.createElement("div", {
|
513
|
-
className: clsx__default(styles['weekly-event'], height <= MIN_HEIGHT_HIDE_ALL && styles['weekly-event--collapse'])
|
514
|
-
}, React__default.createElement("div", {
|
515
|
-
className: styles.flex
|
516
|
-
}, getIconEvent[event.type]), React__default.createElement("div", {
|
517
|
-
className: clsx__default(height <= MIN_HEIGHT_HIDE_DETAILS && styles['weekly-event--collapse'])
|
518
|
-
}, React__default.createElement("div", {
|
519
|
-
className: styles['weekly-event__title']
|
520
|
-
}, React__default.createElement(CustomTooltip, {
|
521
|
-
title: event.title
|
522
|
-
}, event.title)), React__default.createElement("div", {
|
523
|
-
className: styles['weekly-event__date']
|
524
|
-
}, React__default.createElement(CustomTooltip, {
|
525
|
-
title: formattedDate
|
526
|
-
}, formattedDate)))));
|
527
|
-
};
|
528
|
-
|
529
|
-
var WeeklyCell = function WeeklyCell(_ref) {
|
530
|
-
var events = _ref.events,
|
531
|
-
date = _ref.date,
|
532
|
-
onOpenDetail = _ref.onOpenDetail,
|
533
|
-
onOpenCreate = _ref.onOpenCreate,
|
534
|
-
onEventDetail = _ref.onEventDetail;
|
535
|
-
var isToday = dayjs().isSame(date, 'day');
|
536
|
-
var handleOpenCreateModal = function handleOpenCreateModal(e) {
|
537
|
-
if (e.target !== e.currentTarget) return;
|
538
|
-
onOpenCreate(dayjs(date).toDate());
|
539
|
-
};
|
540
|
-
events.sort(function (a, b) {
|
541
|
-
return a.type === EVENT_TYPES.BUSY && b.type !== EVENT_TYPES.BUSY ? 1 : -1;
|
542
|
-
});
|
543
|
-
var renderWeeklyEvent = React.useMemo(function () {
|
544
|
-
var isAllDay = events.some(function (item) {
|
545
|
-
return item.isAllDay;
|
546
|
-
});
|
547
|
-
if (isAllDay && events.length > 1) {
|
548
|
-
return React__default.createElement(React__default.Fragment, null, React__default.createElement(WeeklyEvent, {
|
549
|
-
event: events[0],
|
550
|
-
onOpenDetail: onOpenDetail,
|
551
|
-
onEventDetail: onEventDetail
|
552
|
-
}), React__default.createElement("div", {
|
553
|
-
className: styles['see-more']
|
554
|
-
}, React__default.createElement(CustomTooltip, {
|
555
|
-
placement: 'bottom',
|
556
|
-
title: React__default.createElement("div", {
|
557
|
-
className: styles['calendar-tooltip']
|
558
|
-
}, events.slice(1, events.length).map(function (event, index) {
|
559
|
-
return React__default.createElement(WeeklyEvent, {
|
560
|
-
event: event,
|
561
|
-
onOpenDetail: onOpenDetail,
|
562
|
-
onEventDetail: onEventDetail,
|
563
|
-
key: index + 1
|
564
|
-
});
|
565
|
-
}))
|
566
|
-
}, "+", Math.max(events.length - 1, 0), " More")));
|
567
|
-
}
|
568
|
-
return events.map(function (event, index) {
|
569
|
-
return React__default.createElement(WeeklyEvent, {
|
570
|
-
key: index,
|
571
|
-
event: event,
|
572
|
-
onOpenDetail: onOpenDetail,
|
573
|
-
onEventDetail: onEventDetail
|
574
|
-
});
|
575
|
-
});
|
576
|
-
}, [events]);
|
577
|
-
return React__default.createElement("div", {
|
578
|
-
className: styles['weekly-calendar__cell'] + " " + (isToday ? styles['bg-info/10'] : styles['bg-white']),
|
579
|
-
onClick: handleOpenCreateModal
|
580
|
-
}, renderWeeklyEvent);
|
581
|
-
};
|
582
|
-
|
583
|
-
dayjs.extend(isBetween);
|
584
|
-
var getEventAllDay = function getEventAllDay(events, targetDate) {
|
585
|
-
return daysOfWeekKeys.reduce(function (acc, day, index) {
|
586
|
-
var currentDate = targetDate.add(index, 'day');
|
587
|
-
acc[day] = {
|
588
|
-
events: events.reduce(function (filteredEvents, event) {
|
589
|
-
if (dayjs(event.startDate).isSame(currentDate.startOf('day')) && checkIsAllday(dayjs(event.startDate), dayjs(event.endDate))) {
|
590
|
-
filteredEvents.push(_extends({}, event, {
|
591
|
-
isAllDay: true
|
592
|
-
}));
|
593
|
-
}
|
594
|
-
return filteredEvents;
|
595
|
-
}, []),
|
596
|
-
date: currentDate
|
597
|
-
};
|
598
|
-
return acc;
|
599
|
-
}, {});
|
600
|
-
};
|
601
|
-
var getEventsOfDay = function getEventsOfDay(events, targetHour) {
|
602
|
-
return daysOfWeekKeys.reduce(function (acc, day, index) {
|
603
|
-
var currentDate = targetHour.add(index, 'day');
|
604
|
-
acc[day] = {
|
605
|
-
events: events.filter(function (event) {
|
606
|
-
return dayjs(event.startDate).isSame(currentDate, 'hour') && !checkIsAllday(dayjs(event.startDate), dayjs(event.endDate));
|
607
|
-
}),
|
608
|
-
date: currentDate
|
609
|
-
};
|
610
|
-
return acc;
|
611
|
-
}, {});
|
612
|
-
};
|
613
|
-
var WeeklyCalendar = function WeeklyCalendar(_ref) {
|
614
|
-
var startDate = _ref.startDate,
|
615
|
-
endDate = _ref.endDate,
|
616
|
-
events = _ref.events,
|
617
|
-
norms = _ref.norms,
|
618
|
-
showWeeklyNorm = _ref.showWeeklyNorm,
|
619
|
-
onOpenDetail = _ref.onOpenDetail,
|
620
|
-
onOpenCreate = _ref.onOpenCreate,
|
621
|
-
onEventDetail = _ref.onEventDetail,
|
622
|
-
loading = _ref.loading;
|
623
|
-
var getTableColumns = function getTableColumns() {
|
624
|
-
var _calculateNormOfWeek = calculateNormOfWeek(norms, events, startDate, endDate),
|
625
|
-
normOfWeek = _calculateNormOfWeek.normOfWeek,
|
626
|
-
totalNorm = _calculateNormOfWeek.totalNorm;
|
627
|
-
var hourColumn = {
|
628
|
-
title: React__default.createElement("div", {
|
629
|
-
className: styles['weekly-calendar__title']
|
630
|
-
}, showWeeklyNorm && React__default.createElement(React__default.Fragment, null, React__default.createElement("div", null, "Weekly Norm"), React__default.createElement("div", {
|
631
|
-
className: clsx__default(normOfWeek > totalNorm && styles['!text-error'])
|
632
|
-
}, normOfWeek + "/" + totalNorm))),
|
633
|
-
dataIndex: 'hour',
|
634
|
-
key: 'hour',
|
635
|
-
width: 1,
|
636
|
-
render: function render(value) {
|
637
|
-
return React__default.createElement("div", null, value);
|
638
|
-
}
|
639
|
-
};
|
640
|
-
var dayColumns = Object.values(DAYS_OF_WEEK).map(function (day, index) {
|
641
|
-
return {
|
642
|
-
title: React__default.createElement("div", {
|
643
|
-
className: styles['weekly-calendar__title']
|
644
|
-
}, React__default.createElement("div", null, day.slice(0, 3)), React__default.createElement("div", null, dayjs(startDate).add(index, 'day').format('DD/MM'))),
|
645
|
-
dataIndex: day,
|
646
|
-
key: day,
|
647
|
-
render: function render(value) {
|
648
|
-
return React__default.createElement(WeeklyCell, {
|
649
|
-
key: index,
|
650
|
-
events: value.events,
|
651
|
-
date: value.date,
|
652
|
-
onOpenDetail: onOpenDetail,
|
653
|
-
onOpenCreate: onOpenCreate,
|
654
|
-
onEventDetail: onEventDetail
|
655
|
-
});
|
656
|
-
}
|
657
|
-
};
|
658
|
-
});
|
659
|
-
return [hourColumn].concat(dayColumns);
|
660
|
-
};
|
661
|
-
var getTableData = function getTableData() {
|
662
|
-
var data = [];
|
663
|
-
data.push(_extends({
|
664
|
-
id: -1,
|
665
|
-
hour: 'All day'
|
666
|
-
}, getEventAllDay(events, startDate)));
|
667
|
-
for (var i = 0; i < HOURS_PER_DAY; i++) {
|
668
|
-
var targetHour = dayjs(startDate).add(i, 'hour');
|
669
|
-
data.push(_extends({
|
670
|
-
id: i,
|
671
|
-
hour: targetHour.format('HH:mm')
|
672
|
-
}, getEventsOfDay(events, targetHour)));
|
673
|
-
}
|
674
|
-
return data;
|
675
|
-
};
|
676
|
-
return React__default.createElement(antd.Table, {
|
677
|
-
rowKey: function rowKey(record) {
|
678
|
-
return record.id;
|
679
|
-
},
|
680
|
-
columns: getTableColumns(),
|
681
|
-
dataSource: getTableData(),
|
682
|
-
pagination: false,
|
683
|
-
rowHoverable: false,
|
684
|
-
className: styles['weekly-calendar'],
|
685
|
-
loading: loading
|
686
|
-
});
|
687
|
-
};
|
688
|
-
|
689
502
|
var SelectBox = function SelectBox(_ref) {
|
690
503
|
var value = _ref.value,
|
691
504
|
options = _ref.options,
|
@@ -729,6 +542,8 @@ var LMSHeaderCalendar = function LMSHeaderCalendar(_ref) {
|
|
729
542
|
};
|
730
543
|
return React__default.createElement("div", {
|
731
544
|
className: styles['header-calendar']
|
545
|
+
}, React__default.createElement("div", {
|
546
|
+
className: styles['header-calendar_filter']
|
732
547
|
}, React__default.createElement("div", {
|
733
548
|
className: clsx__default('cursor-pointer', filter.isOpen && styles['text-lms-primary']),
|
734
549
|
onClick: toggleTurnOnFilter
|
@@ -756,7 +571,7 @@ var LMSHeaderCalendar = function LMSHeaderCalendar(_ref) {
|
|
756
571
|
onClick: function onClick() {
|
757
572
|
return handleChangeDate(currentDate.add(1, calendarMode));
|
758
573
|
}
|
759
|
-
})), showTeacherName && React__default.createElement("div", {
|
574
|
+
}))), showTeacherName && React__default.createElement("div", {
|
760
575
|
className: styles['header-calendar__title']
|
761
576
|
}, title), React__default.createElement("div", {
|
762
577
|
className: styles['header-calendar__controls']
|
@@ -783,46 +598,45 @@ var FilterCalendar = function FilterCalendar(_ref) {
|
|
783
598
|
var filter = _ref.filter,
|
784
599
|
setFilter = _ref.setFilter,
|
785
600
|
courses = _ref.courses;
|
786
|
-
console.log('course:', courses);
|
787
601
|
var noteFilter = React.useMemo(function () {
|
788
602
|
return [{
|
789
603
|
title: 'Online',
|
790
604
|
icon: React__default.createElement("div", {
|
791
605
|
className: styles$1['calendar-filter_note_blue']
|
792
606
|
}),
|
793
|
-
value:
|
607
|
+
value: LEARNING_MODE.ONLINE
|
794
608
|
}, {
|
795
609
|
title: 'Live Online',
|
796
610
|
icon: React__default.createElement("div", {
|
797
611
|
className: styles$1['calendar-filter_note_pureple']
|
798
612
|
}),
|
799
|
-
value:
|
613
|
+
value: LEARNING_MODE.LIVE_ONLINE
|
800
614
|
}, {
|
801
615
|
title: 'Offline',
|
802
616
|
icon: React__default.createElement("div", {
|
803
617
|
className: styles$1['calendar-filter_note_green']
|
804
618
|
}),
|
805
|
-
value:
|
619
|
+
value: LEARNING_MODE.OFFLINE
|
806
620
|
}, {
|
807
621
|
title: 'Case Study',
|
808
622
|
icon: React__default.createElement(GoldStarIcon, null),
|
809
|
-
value:
|
623
|
+
value: LEARNING_MODE.CASE_STUDY
|
810
624
|
}, {
|
811
625
|
title: 'Test',
|
812
626
|
icon: React__default.createElement(BookIcon, null),
|
813
|
-
value:
|
627
|
+
value: LEARNING_MODE.TEST
|
814
628
|
}, {
|
815
629
|
title: 'Holiday',
|
816
630
|
icon: React__default.createElement("div", {
|
817
631
|
className: styles$1['calendar-filter_note_yellow']
|
818
632
|
}),
|
819
|
-
value:
|
633
|
+
value: LEARNING_MODE.HOLIDAY
|
820
634
|
}, {
|
821
635
|
title: 'Overdue',
|
822
636
|
icon: React__default.createElement("div", {
|
823
637
|
className: styles$1['calendar-filter_note_red']
|
824
638
|
}),
|
825
|
-
value:
|
639
|
+
value: LEARNING_MODE.OVERDUE
|
826
640
|
}];
|
827
641
|
}, []);
|
828
642
|
var handleFilter = function handleFilter(type, value) {
|
@@ -906,6 +720,20 @@ var FilterCalendar = function FilterCalendar(_ref) {
|
|
906
720
|
}))));
|
907
721
|
};
|
908
722
|
|
723
|
+
var CustomTooltip = function CustomTooltip(_ref) {
|
724
|
+
var title = _ref.title,
|
725
|
+
children = _ref.children,
|
726
|
+
_ref$placement = _ref.placement,
|
727
|
+
placement = _ref$placement === void 0 ? 'top' : _ref$placement;
|
728
|
+
return React__default.createElement(antd.Tooltip, {
|
729
|
+
color: '#ffffff',
|
730
|
+
title: React__default.createElement("div", {
|
731
|
+
className: styles['text-gray-600']
|
732
|
+
}, title),
|
733
|
+
placement: placement
|
734
|
+
}, React__default.createElement("div", null, children));
|
735
|
+
};
|
736
|
+
|
909
737
|
var MonthlyEvent = function MonthlyEvent(_ref) {
|
910
738
|
var event = _ref.event,
|
911
739
|
isSameMonth = _ref.isSameMonth,
|
@@ -1079,8 +907,204 @@ var MonthlyCalendar = function MonthlyCalendar(_ref) {
|
|
1079
907
|
});
|
1080
908
|
};
|
1081
909
|
|
910
|
+
var _getIconEvent;
|
911
|
+
var getIconEvent = (_getIconEvent = {}, _getIconEvent[EVENT_TYPES.TEACHING] = React__default.createElement(Book, null), _getIconEvent[EVENT_TYPES.BUSY] = React__default.createElement(CalendarDelete, null), _getIconEvent[EVENT_TYPES.TIME_OFF] = React__default.createElement(Star, null), _getIconEvent[EVENT_TYPES.OTHER] = React__default.createElement(CalendarAccept, null), _getIconEvent);
|
912
|
+
var calculateBoxSize = function calculateBoxSize(startTime, endTime) {
|
913
|
+
var minutes = dayjs(startTime).minute();
|
914
|
+
var diffMinutes = dayjs(endTime).diff(startTime, 'hour', true);
|
915
|
+
return {
|
916
|
+
width: diffMinutes || 1,
|
917
|
+
left: Math.floor(minutes / MINUTES_PER_HOUR * 100)
|
918
|
+
};
|
919
|
+
};
|
920
|
+
var LMSWeeklyEvent = function LMSWeeklyEvent(_ref) {
|
921
|
+
var event = _ref.event,
|
922
|
+
onOpenDetail = _ref.onOpenDetail,
|
923
|
+
onEventDetail = _ref.onEventDetail;
|
924
|
+
var formattedDate = customDateFormat(event.startDate, TIME_FORMAT) + ' - ' + customDateFormat(event.endDate, TIME_FORMAT);
|
925
|
+
var _calculateBoxSize = calculateBoxSize(event.startDate, event.endDate),
|
926
|
+
width = _calculateBoxSize.width,
|
927
|
+
left = _calculateBoxSize.left;
|
928
|
+
return React__default.createElement("div", {
|
929
|
+
className: styles["event-" + convertType[event.type]],
|
930
|
+
onClick: function onClick() {
|
931
|
+
onOpenDetail(dayjs(event.startDate).toDate(), [event]);
|
932
|
+
onEventDetail && onEventDetail(event);
|
933
|
+
},
|
934
|
+
style: {
|
935
|
+
top: "0%",
|
936
|
+
height: "100%",
|
937
|
+
width: width * 100 + '%',
|
938
|
+
left: left + '%',
|
939
|
+
zIndex: event.type === EVENT_TYPES.BUSY ? 2 : 1
|
940
|
+
}
|
941
|
+
}, React__default.createElement("div", {
|
942
|
+
className: clsx__default(styles['weekly-event'])
|
943
|
+
}, React__default.createElement("div", {
|
944
|
+
className: clsx__default(styles['weekly-event--collapse'])
|
945
|
+
}, React__default.createElement("div", {
|
946
|
+
className: styles.flex
|
947
|
+
}, getIconEvent[event.type]), React__default.createElement("div", {
|
948
|
+
className: styles['weekly-event__title']
|
949
|
+
}, React__default.createElement(CustomTooltip, {
|
950
|
+
title: event.title
|
951
|
+
}, event.title))), React__default.createElement("div", {
|
952
|
+
className: styles['weekly-event__date']
|
953
|
+
}, React__default.createElement(CustomTooltip, {
|
954
|
+
title: formattedDate
|
955
|
+
}, formattedDate))));
|
956
|
+
};
|
957
|
+
|
958
|
+
var LMSWeeklyCell = function LMSWeeklyCell(_ref) {
|
959
|
+
var _events;
|
960
|
+
var events = _ref.events,
|
961
|
+
date = _ref.date,
|
962
|
+
onOpenDetail = _ref.onOpenDetail,
|
963
|
+
onOpenCreate = _ref.onOpenCreate,
|
964
|
+
onEventDetail = _ref.onEventDetail;
|
965
|
+
var isToday = dayjs().isSame(date, 'day');
|
966
|
+
var handleOpenCreateModal = function handleOpenCreateModal(e) {
|
967
|
+
if (e.target !== e.currentTarget) return;
|
968
|
+
onOpenCreate(dayjs(date).toDate());
|
969
|
+
};
|
970
|
+
events = (_events = events) === null || _events === void 0 ? void 0 : _events.sort(function (a, b) {
|
971
|
+
return a.type === EVENT_TYPES.BUSY && b.type !== EVENT_TYPES.BUSY ? 1 : -1;
|
972
|
+
});
|
973
|
+
var renderWeeklyEvent = React.useMemo(function () {
|
974
|
+
var _events2, _events3, _events4;
|
975
|
+
var isAllDay = (_events2 = events) === null || _events2 === void 0 ? void 0 : _events2.some(function (item) {
|
976
|
+
return item.isAllDay;
|
977
|
+
});
|
978
|
+
if (isAllDay && ((_events3 = events) === null || _events3 === void 0 ? void 0 : _events3.length) > 1) {
|
979
|
+
return React__default.createElement(React__default.Fragment, null, React__default.createElement(LMSWeeklyEvent, {
|
980
|
+
event: events[0],
|
981
|
+
onOpenDetail: onOpenDetail,
|
982
|
+
onEventDetail: onEventDetail
|
983
|
+
}), React__default.createElement("div", {
|
984
|
+
className: styles['see-more']
|
985
|
+
}, React__default.createElement(CustomTooltip, {
|
986
|
+
placement: 'bottom',
|
987
|
+
title: React__default.createElement("div", {
|
988
|
+
className: styles['calendar-tooltip']
|
989
|
+
}, events.slice(1, events.length).map(function (event, index) {
|
990
|
+
return React__default.createElement(LMSWeeklyEvent, {
|
991
|
+
event: event,
|
992
|
+
onOpenDetail: onOpenDetail,
|
993
|
+
onEventDetail: onEventDetail,
|
994
|
+
key: index + 1
|
995
|
+
});
|
996
|
+
}))
|
997
|
+
}, "+", Math.max(events.length - 1, 0), " More")));
|
998
|
+
}
|
999
|
+
return (_events4 = events) === null || _events4 === void 0 ? void 0 : _events4.map(function (event, index) {
|
1000
|
+
return React__default.createElement(LMSWeeklyEvent, {
|
1001
|
+
key: index,
|
1002
|
+
event: event,
|
1003
|
+
onOpenDetail: onOpenDetail,
|
1004
|
+
onEventDetail: onEventDetail
|
1005
|
+
});
|
1006
|
+
});
|
1007
|
+
}, [events]);
|
1008
|
+
return React__default.createElement("div", {
|
1009
|
+
className: styles['weekly-calendar__cell'] + " " + (isToday ? styles['bg-info/10'] : styles['bg-white']),
|
1010
|
+
onClick: handleOpenCreateModal
|
1011
|
+
}, renderWeeklyEvent);
|
1012
|
+
};
|
1013
|
+
|
1014
|
+
dayjs.extend(isBetween);
|
1015
|
+
var LMSWeeklyCalendar = function LMSWeeklyCalendar(_ref) {
|
1016
|
+
var startDate = _ref.startDate,
|
1017
|
+
events = _ref.events,
|
1018
|
+
onOpenDetail = _ref.onOpenDetail,
|
1019
|
+
onOpenCreate = _ref.onOpenCreate,
|
1020
|
+
onEventDetail = _ref.onEventDetail,
|
1021
|
+
loading = _ref.loading;
|
1022
|
+
var getEventsOfHour = function getEventsOfHour(events, targetHour) {
|
1023
|
+
return hoursOfDayKeys.reduce(function (acc, hour) {
|
1024
|
+
acc[hour] = {
|
1025
|
+
events: events.filter(function (event) {
|
1026
|
+
return dayjs(event.startDate).isSame(dayjs(targetHour.format('YYYY-MM-DD') + "T" + hour + ":00"), 'hour') && !checkIsAllday(dayjs(event.startDate), dayjs(event.endDate));
|
1027
|
+
}),
|
1028
|
+
date: dayjs(targetHour.format('YYYY-MM-DD') + "T" + hour)
|
1029
|
+
};
|
1030
|
+
return acc;
|
1031
|
+
}, {});
|
1032
|
+
};
|
1033
|
+
var getTableColumns = function getTableColumns() {
|
1034
|
+
var hourColumn = {
|
1035
|
+
title: React__default.createElement("div", {
|
1036
|
+
className: styles['weekly-calendar__title']
|
1037
|
+
}),
|
1038
|
+
dataIndex: 'hour',
|
1039
|
+
key: 'hour',
|
1040
|
+
width: 1,
|
1041
|
+
render: function render(value) {
|
1042
|
+
return React__default.createElement("div", null, value);
|
1043
|
+
}
|
1044
|
+
};
|
1045
|
+
var hours = Array.from({
|
1046
|
+
length: 17
|
1047
|
+
}, function (_, i) {
|
1048
|
+
return 7 + i;
|
1049
|
+
});
|
1050
|
+
var timeColums = hours.map(function (time, index) {
|
1051
|
+
return {
|
1052
|
+
title: React__default.createElement("div", {
|
1053
|
+
className: styles['weekly-calendar__title']
|
1054
|
+
}, time % 2 !== 0 ? React__default.createElement("div", {
|
1055
|
+
style: {
|
1056
|
+
textAlign: 'start'
|
1057
|
+
}
|
1058
|
+
}, time < 10 ? '0' + time + ':00' : time + ':00') : React__default.createElement("div", {
|
1059
|
+
style: {
|
1060
|
+
minWidth: '35px'
|
1061
|
+
}
|
1062
|
+
})),
|
1063
|
+
dataIndex: "" + (time < 10 ? '0' + time + ':00' : time + ':00'),
|
1064
|
+
key: "" + (time < 10 ? '0' + time + ':00' : time + ':00'),
|
1065
|
+
render: function render(value) {
|
1066
|
+
return React__default.createElement(LMSWeeklyCell, {
|
1067
|
+
key: index,
|
1068
|
+
events: value === null || value === void 0 ? void 0 : value.events,
|
1069
|
+
date: value === null || value === void 0 ? void 0 : value.date,
|
1070
|
+
onOpenDetail: onOpenDetail,
|
1071
|
+
onOpenCreate: onOpenCreate,
|
1072
|
+
onEventDetail: onEventDetail
|
1073
|
+
});
|
1074
|
+
}
|
1075
|
+
};
|
1076
|
+
});
|
1077
|
+
return [hourColumn].concat(timeColums);
|
1078
|
+
};
|
1079
|
+
var getTableData = function getTableData() {
|
1080
|
+
var data = [];
|
1081
|
+
for (var i = 0; i < 7; i++) {
|
1082
|
+
var targetHour = dayjs(startDate).add(i, 'day');
|
1083
|
+
data.push(_extends({
|
1084
|
+
id: i,
|
1085
|
+
hour: React__default.createElement("div", null, React__default.createElement("div", {
|
1086
|
+
className: styles['lms-calendar__tablet']
|
1087
|
+
}, Object.values(DAYS_OF_WEEK_SHORTEN)[i]), React__default.createElement("div", {
|
1088
|
+
className: styles['lms-calendar__tablet']
|
1089
|
+
}, dayjs(startDate).add(i, 'day').format('DD')))
|
1090
|
+
}, getEventsOfHour(events, targetHour)));
|
1091
|
+
}
|
1092
|
+
return data;
|
1093
|
+
};
|
1094
|
+
return React__default.createElement(antd.Table, {
|
1095
|
+
rowKey: function rowKey(record) {
|
1096
|
+
return record.id;
|
1097
|
+
},
|
1098
|
+
columns: getTableColumns(),
|
1099
|
+
dataSource: getTableData(),
|
1100
|
+
pagination: false,
|
1101
|
+
rowHoverable: false,
|
1102
|
+
className: styles['weekly-calendar'],
|
1103
|
+
loading: loading
|
1104
|
+
});
|
1105
|
+
};
|
1106
|
+
|
1082
1107
|
var SAPPCalendar = function SAPPCalendar(_ref) {
|
1083
|
-
var _courses$map;
|
1084
1108
|
var teacherName = _ref.teacherName,
|
1085
1109
|
events = _ref.events,
|
1086
1110
|
_ref$norms = _ref.norms,
|
@@ -1101,15 +1125,15 @@ var SAPPCalendar = function SAPPCalendar(_ref) {
|
|
1101
1125
|
var _useState = React.useState(dayjs()),
|
1102
1126
|
currentDate = _useState[0],
|
1103
1127
|
setCurrentDate = _useState[1];
|
1104
|
-
var _useState2 = React.useState('
|
1128
|
+
var _useState2 = React.useState('week'),
|
1105
1129
|
calendarMode = _useState2[0],
|
1106
1130
|
setCalendarMode = _useState2[1];
|
1107
1131
|
var _useState3 = React.useState({
|
1108
1132
|
isOpen: false,
|
1109
|
-
type:
|
1110
|
-
courseId:
|
1133
|
+
type: Object.values(LEARNING_MODE),
|
1134
|
+
courseId: courses !== null && courses !== void 0 && courses.length ? courses === null || courses === void 0 ? void 0 : courses.map(function (item) {
|
1111
1135
|
return item.id;
|
1112
|
-
})
|
1136
|
+
}) : []
|
1113
1137
|
}),
|
1114
1138
|
filter = _useState3[0],
|
1115
1139
|
setFilter = _useState3[1];
|
@@ -1180,12 +1204,11 @@ var SAPPCalendar = function SAPPCalendar(_ref) {
|
|
1180
1204
|
onOpenCreate: onOpenCreate,
|
1181
1205
|
onEventDetail: onEventDetail,
|
1182
1206
|
loading: loading
|
1183
|
-
}), calendarMode === 'week' && React__default.createElement(
|
1207
|
+
}), calendarMode === 'week' && React__default.createElement(LMSWeeklyCalendar, {
|
1184
1208
|
startDate: startDate,
|
1185
1209
|
endDate: endDate,
|
1186
1210
|
events: splittedEvents,
|
1187
1211
|
norms: norms,
|
1188
|
-
showWeeklyNorm: showWeeklyNorm,
|
1189
1212
|
onOpenDetail: onOpenDetail,
|
1190
1213
|
onOpenCreate: onOpenCreate,
|
1191
1214
|
onEventDetail: onEventDetail,
|