sapp-common-package-test-final 1.0.10 → 1.0.11
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 +29 -0
- package/dist/index.css +25 -9
- package/dist/index.js +259 -246
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +260 -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.modern.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import dayjs from 'dayjs';
|
2
2
|
import React, { useState, useEffect, useMemo } from 'react';
|
3
|
-
import { DatePicker,
|
3
|
+
import { DatePicker, Select, Calendar, Tooltip, Table } from 'antd';
|
4
4
|
import clsx$1, { clsx } from 'clsx';
|
5
5
|
import isBetween from 'dayjs/plugin/isBetween';
|
6
6
|
|
@@ -56,7 +56,6 @@ var useEffectAfterMounted = function useEffectAfterMounted(callback, dependencie
|
|
56
56
|
}, dependencies);
|
57
57
|
};
|
58
58
|
|
59
|
-
var HOURS_PER_DAY = 24;
|
60
59
|
var MINUTES_PER_HOUR = 60;
|
61
60
|
var TIME_FORMAT = 'HH:mm';
|
62
61
|
var DAYS_OF_WEEK;
|
@@ -69,6 +68,27 @@ var DAYS_OF_WEEK;
|
|
69
68
|
DAYS_OF_WEEK["Saturday"] = "Saturday";
|
70
69
|
DAYS_OF_WEEK["Sunday"] = "Sunday";
|
71
70
|
})(DAYS_OF_WEEK || (DAYS_OF_WEEK = {}));
|
71
|
+
var HOUR_OF_DAY;
|
72
|
+
(function (HOUR_OF_DAY) {
|
73
|
+
HOUR_OF_DAY["07:00"] = "07:00";
|
74
|
+
HOUR_OF_DAY["08:00"] = "08:00";
|
75
|
+
HOUR_OF_DAY["09:00"] = "09:00";
|
76
|
+
HOUR_OF_DAY["10:00"] = "10:00";
|
77
|
+
HOUR_OF_DAY["11:00"] = "11:00";
|
78
|
+
HOUR_OF_DAY["12:00"] = "12:00";
|
79
|
+
HOUR_OF_DAY["13:00"] = "13:00";
|
80
|
+
HOUR_OF_DAY["14:00"] = "14:00";
|
81
|
+
HOUR_OF_DAY["15:00"] = "15:00";
|
82
|
+
HOUR_OF_DAY["16:00"] = "16:00";
|
83
|
+
HOUR_OF_DAY["17:00"] = "17:00";
|
84
|
+
HOUR_OF_DAY["18:00"] = "18:00";
|
85
|
+
HOUR_OF_DAY["19:00"] = "19:00";
|
86
|
+
HOUR_OF_DAY["20:00"] = "20:00";
|
87
|
+
HOUR_OF_DAY["21:00"] = "21:00";
|
88
|
+
HOUR_OF_DAY["22:00"] = "22:00";
|
89
|
+
HOUR_OF_DAY["23:00"] = "23:00";
|
90
|
+
HOUR_OF_DAY["24:00"] = "24:00";
|
91
|
+
})(HOUR_OF_DAY || (HOUR_OF_DAY = {}));
|
72
92
|
var EVENT_TYPES;
|
73
93
|
(function (EVENT_TYPES) {
|
74
94
|
EVENT_TYPES["TEACHING"] = "TEACHING";
|
@@ -80,6 +100,16 @@ var FORMAT_DATE_CARLENDA = {
|
|
80
100
|
MONTH_AND_WEEK: 'MMMM, YYYY',
|
81
101
|
DATE: 'MMMM DD, YYYY'
|
82
102
|
};
|
103
|
+
var LEARNING_MODE;
|
104
|
+
(function (LEARNING_MODE) {
|
105
|
+
LEARNING_MODE["ONLINE"] = "ONLINE";
|
106
|
+
LEARNING_MODE["LIVE_ONLINE"] = "LIVE_ONLINE";
|
107
|
+
LEARNING_MODE["OFFLINE"] = "OFFLINE";
|
108
|
+
LEARNING_MODE["CASE_STUDY"] = "CASE_STUDY";
|
109
|
+
LEARNING_MODE["HOLIDAY"] = "HOLIDAY";
|
110
|
+
LEARNING_MODE["OVERDUE"] = "OVERDUE";
|
111
|
+
LEARNING_MODE["TEST"] = "TEST";
|
112
|
+
})(LEARNING_MODE || (LEARNING_MODE = {}));
|
83
113
|
|
84
114
|
var _convertType;
|
85
115
|
var customDateFormat = function customDateFormat(value, formatStr) {
|
@@ -87,6 +117,7 @@ var customDateFormat = function customDateFormat(value, formatStr) {
|
|
87
117
|
};
|
88
118
|
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);
|
89
119
|
var daysOfWeekKeys = Object.values(DAYS_OF_WEEK);
|
120
|
+
var hoursOfDayKeys = Object.values(HOUR_OF_DAY);
|
90
121
|
var calculateNormOfWeek = function calculateNormOfWeek(norms, events, startDate, endDate) {
|
91
122
|
var norm = norms.find(function (norm) {
|
92
123
|
return startDate.isBetween(norm.startDate, norm.endDate, 'day', '[]') && endDate.isBetween(norm.startDate, norm.endDate, 'day', '[]');
|
@@ -366,7 +397,7 @@ var HiddenEyeIcon = function HiddenEyeIcon() {
|
|
366
397
|
}));
|
367
398
|
};
|
368
399
|
|
369
|
-
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"};
|
400
|
+
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"};
|
370
401
|
|
371
402
|
var Button = function Button(_ref) {
|
372
403
|
var _ref$type = _ref.type,
|
@@ -454,234 +485,6 @@ var HeaderCalendar = function HeaderCalendar(_ref) {
|
|
454
485
|
}, "Week")));
|
455
486
|
};
|
456
487
|
|
457
|
-
var CustomTooltip = function CustomTooltip(_ref) {
|
458
|
-
var title = _ref.title,
|
459
|
-
children = _ref.children,
|
460
|
-
_ref$placement = _ref.placement,
|
461
|
-
placement = _ref$placement === void 0 ? 'top' : _ref$placement;
|
462
|
-
return React.createElement(Tooltip, {
|
463
|
-
color: '#ffffff',
|
464
|
-
title: React.createElement("div", {
|
465
|
-
className: styles['text-gray-600']
|
466
|
-
}, title),
|
467
|
-
placement: placement
|
468
|
-
}, React.createElement("div", null, children));
|
469
|
-
};
|
470
|
-
|
471
|
-
var _getIconEvent;
|
472
|
-
var calculateBoxSize = function calculateBoxSize(startTime, endTime, isAllDay) {
|
473
|
-
if (isAllDay) {
|
474
|
-
return {
|
475
|
-
top: 10,
|
476
|
-
height: 50
|
477
|
-
};
|
478
|
-
}
|
479
|
-
var minutes = dayjs(startTime).minute();
|
480
|
-
var diffMinutes = dayjs(endTime).diff(startTime, 'minute', true);
|
481
|
-
return {
|
482
|
-
top: Math.floor(minutes / MINUTES_PER_HOUR * 100),
|
483
|
-
height: Math.floor(diffMinutes / MINUTES_PER_HOUR * 100)
|
484
|
-
};
|
485
|
-
};
|
486
|
-
var getIconEvent = (_getIconEvent = {}, _getIconEvent[EVENT_TYPES.TEACHING] = React.createElement(Book, null), _getIconEvent[EVENT_TYPES.BUSY] = React.createElement(CalendarDelete, null), _getIconEvent[EVENT_TYPES.TIME_OFF] = React.createElement(Star, null), _getIconEvent[EVENT_TYPES.OTHER] = React.createElement(CalendarAccept, null), _getIconEvent);
|
487
|
-
var MIN_HEIGHT_HIDE_DETAILS = 140;
|
488
|
-
var MIN_HEIGHT_HIDE_ALL = 105;
|
489
|
-
var WeeklyEvent = function WeeklyEvent(_ref) {
|
490
|
-
var event = _ref.event,
|
491
|
-
onOpenDetail = _ref.onOpenDetail,
|
492
|
-
onEventDetail = _ref.onEventDetail;
|
493
|
-
var _calculateBoxSize = calculateBoxSize(event.startDate, event.endDate, event.isAllDay),
|
494
|
-
top = _calculateBoxSize.top,
|
495
|
-
height = _calculateBoxSize.height;
|
496
|
-
var formattedDate = customDateFormat(event.startDate, TIME_FORMAT) + ' - ' + customDateFormat(event.endDate, TIME_FORMAT);
|
497
|
-
return React.createElement("div", {
|
498
|
-
className: styles["event-" + convertType[event.type]],
|
499
|
-
onClick: function onClick() {
|
500
|
-
onOpenDetail(dayjs(event.startDate).toDate(), [event]);
|
501
|
-
onEventDetail && onEventDetail(event);
|
502
|
-
},
|
503
|
-
style: {
|
504
|
-
top: top + "%",
|
505
|
-
height: height + "%",
|
506
|
-
zIndex: event.type === EVENT_TYPES.BUSY ? 2 : 1
|
507
|
-
}
|
508
|
-
}, React.createElement("div", {
|
509
|
-
className: clsx$1(styles['weekly-event'], height <= MIN_HEIGHT_HIDE_ALL && styles['weekly-event--collapse'])
|
510
|
-
}, React.createElement("div", {
|
511
|
-
className: styles.flex
|
512
|
-
}, getIconEvent[event.type]), React.createElement("div", {
|
513
|
-
className: clsx$1(height <= MIN_HEIGHT_HIDE_DETAILS && styles['weekly-event--collapse'])
|
514
|
-
}, React.createElement("div", {
|
515
|
-
className: styles['weekly-event__title']
|
516
|
-
}, React.createElement(CustomTooltip, {
|
517
|
-
title: event.title
|
518
|
-
}, event.title)), React.createElement("div", {
|
519
|
-
className: styles['weekly-event__date']
|
520
|
-
}, React.createElement(CustomTooltip, {
|
521
|
-
title: formattedDate
|
522
|
-
}, formattedDate)))));
|
523
|
-
};
|
524
|
-
|
525
|
-
var WeeklyCell = function WeeklyCell(_ref) {
|
526
|
-
var events = _ref.events,
|
527
|
-
date = _ref.date,
|
528
|
-
onOpenDetail = _ref.onOpenDetail,
|
529
|
-
onOpenCreate = _ref.onOpenCreate,
|
530
|
-
onEventDetail = _ref.onEventDetail;
|
531
|
-
var isToday = dayjs().isSame(date, 'day');
|
532
|
-
var handleOpenCreateModal = function handleOpenCreateModal(e) {
|
533
|
-
if (e.target !== e.currentTarget) return;
|
534
|
-
onOpenCreate(dayjs(date).toDate());
|
535
|
-
};
|
536
|
-
events.sort(function (a, b) {
|
537
|
-
return a.type === EVENT_TYPES.BUSY && b.type !== EVENT_TYPES.BUSY ? 1 : -1;
|
538
|
-
});
|
539
|
-
var renderWeeklyEvent = useMemo(function () {
|
540
|
-
var isAllDay = events.some(function (item) {
|
541
|
-
return item.isAllDay;
|
542
|
-
});
|
543
|
-
if (isAllDay && events.length > 1) {
|
544
|
-
return React.createElement(React.Fragment, null, React.createElement(WeeklyEvent, {
|
545
|
-
event: events[0],
|
546
|
-
onOpenDetail: onOpenDetail,
|
547
|
-
onEventDetail: onEventDetail
|
548
|
-
}), React.createElement("div", {
|
549
|
-
className: styles['see-more']
|
550
|
-
}, React.createElement(CustomTooltip, {
|
551
|
-
placement: 'bottom',
|
552
|
-
title: React.createElement("div", {
|
553
|
-
className: styles['calendar-tooltip']
|
554
|
-
}, events.slice(1, events.length).map(function (event, index) {
|
555
|
-
return React.createElement(WeeklyEvent, {
|
556
|
-
event: event,
|
557
|
-
onOpenDetail: onOpenDetail,
|
558
|
-
onEventDetail: onEventDetail,
|
559
|
-
key: index + 1
|
560
|
-
});
|
561
|
-
}))
|
562
|
-
}, "+", Math.max(events.length - 1, 0), " More")));
|
563
|
-
}
|
564
|
-
return events.map(function (event, index) {
|
565
|
-
return React.createElement(WeeklyEvent, {
|
566
|
-
key: index,
|
567
|
-
event: event,
|
568
|
-
onOpenDetail: onOpenDetail,
|
569
|
-
onEventDetail: onEventDetail
|
570
|
-
});
|
571
|
-
});
|
572
|
-
}, [events]);
|
573
|
-
return React.createElement("div", {
|
574
|
-
className: styles['weekly-calendar__cell'] + " " + (isToday ? styles['bg-info/10'] : styles['bg-white']),
|
575
|
-
onClick: handleOpenCreateModal
|
576
|
-
}, renderWeeklyEvent);
|
577
|
-
};
|
578
|
-
|
579
|
-
dayjs.extend(isBetween);
|
580
|
-
var getEventAllDay = function getEventAllDay(events, targetDate) {
|
581
|
-
return daysOfWeekKeys.reduce(function (acc, day, index) {
|
582
|
-
var currentDate = targetDate.add(index, 'day');
|
583
|
-
acc[day] = {
|
584
|
-
events: events.reduce(function (filteredEvents, event) {
|
585
|
-
if (dayjs(event.startDate).isSame(currentDate.startOf('day')) && checkIsAllday(dayjs(event.startDate), dayjs(event.endDate))) {
|
586
|
-
filteredEvents.push(_extends({}, event, {
|
587
|
-
isAllDay: true
|
588
|
-
}));
|
589
|
-
}
|
590
|
-
return filteredEvents;
|
591
|
-
}, []),
|
592
|
-
date: currentDate
|
593
|
-
};
|
594
|
-
return acc;
|
595
|
-
}, {});
|
596
|
-
};
|
597
|
-
var getEventsOfDay = function getEventsOfDay(events, targetHour) {
|
598
|
-
return daysOfWeekKeys.reduce(function (acc, day, index) {
|
599
|
-
var currentDate = targetHour.add(index, 'day');
|
600
|
-
acc[day] = {
|
601
|
-
events: events.filter(function (event) {
|
602
|
-
return dayjs(event.startDate).isSame(currentDate, 'hour') && !checkIsAllday(dayjs(event.startDate), dayjs(event.endDate));
|
603
|
-
}),
|
604
|
-
date: currentDate
|
605
|
-
};
|
606
|
-
return acc;
|
607
|
-
}, {});
|
608
|
-
};
|
609
|
-
var WeeklyCalendar = function WeeklyCalendar(_ref) {
|
610
|
-
var startDate = _ref.startDate,
|
611
|
-
endDate = _ref.endDate,
|
612
|
-
events = _ref.events,
|
613
|
-
norms = _ref.norms,
|
614
|
-
showWeeklyNorm = _ref.showWeeklyNorm,
|
615
|
-
onOpenDetail = _ref.onOpenDetail,
|
616
|
-
onOpenCreate = _ref.onOpenCreate,
|
617
|
-
onEventDetail = _ref.onEventDetail,
|
618
|
-
loading = _ref.loading;
|
619
|
-
var getTableColumns = function getTableColumns() {
|
620
|
-
var _calculateNormOfWeek = calculateNormOfWeek(norms, events, startDate, endDate),
|
621
|
-
normOfWeek = _calculateNormOfWeek.normOfWeek,
|
622
|
-
totalNorm = _calculateNormOfWeek.totalNorm;
|
623
|
-
var hourColumn = {
|
624
|
-
title: React.createElement("div", {
|
625
|
-
className: styles['weekly-calendar__title']
|
626
|
-
}, showWeeklyNorm && React.createElement(React.Fragment, null, React.createElement("div", null, "Weekly Norm"), React.createElement("div", {
|
627
|
-
className: clsx$1(normOfWeek > totalNorm && styles['!text-error'])
|
628
|
-
}, normOfWeek + "/" + totalNorm))),
|
629
|
-
dataIndex: 'hour',
|
630
|
-
key: 'hour',
|
631
|
-
width: 1,
|
632
|
-
render: function render(value) {
|
633
|
-
return React.createElement("div", null, value);
|
634
|
-
}
|
635
|
-
};
|
636
|
-
var dayColumns = Object.values(DAYS_OF_WEEK).map(function (day, index) {
|
637
|
-
return {
|
638
|
-
title: React.createElement("div", {
|
639
|
-
className: styles['weekly-calendar__title']
|
640
|
-
}, React.createElement("div", null, day.slice(0, 3)), React.createElement("div", null, dayjs(startDate).add(index, 'day').format('DD/MM'))),
|
641
|
-
dataIndex: day,
|
642
|
-
key: day,
|
643
|
-
render: function render(value) {
|
644
|
-
return React.createElement(WeeklyCell, {
|
645
|
-
key: index,
|
646
|
-
events: value.events,
|
647
|
-
date: value.date,
|
648
|
-
onOpenDetail: onOpenDetail,
|
649
|
-
onOpenCreate: onOpenCreate,
|
650
|
-
onEventDetail: onEventDetail
|
651
|
-
});
|
652
|
-
}
|
653
|
-
};
|
654
|
-
});
|
655
|
-
return [hourColumn].concat(dayColumns);
|
656
|
-
};
|
657
|
-
var getTableData = function getTableData() {
|
658
|
-
var data = [];
|
659
|
-
data.push(_extends({
|
660
|
-
id: -1,
|
661
|
-
hour: 'All day'
|
662
|
-
}, getEventAllDay(events, startDate)));
|
663
|
-
for (var i = 0; i < HOURS_PER_DAY; i++) {
|
664
|
-
var targetHour = dayjs(startDate).add(i, 'hour');
|
665
|
-
data.push(_extends({
|
666
|
-
id: i,
|
667
|
-
hour: targetHour.format('HH:mm')
|
668
|
-
}, getEventsOfDay(events, targetHour)));
|
669
|
-
}
|
670
|
-
return data;
|
671
|
-
};
|
672
|
-
return React.createElement(Table, {
|
673
|
-
rowKey: function rowKey(record) {
|
674
|
-
return record.id;
|
675
|
-
},
|
676
|
-
columns: getTableColumns(),
|
677
|
-
dataSource: getTableData(),
|
678
|
-
pagination: false,
|
679
|
-
rowHoverable: false,
|
680
|
-
className: styles['weekly-calendar'],
|
681
|
-
loading: loading
|
682
|
-
});
|
683
|
-
};
|
684
|
-
|
685
488
|
var SelectBox = function SelectBox(_ref) {
|
686
489
|
var value = _ref.value,
|
687
490
|
options = _ref.options,
|
@@ -725,6 +528,8 @@ var LMSHeaderCalendar = function LMSHeaderCalendar(_ref) {
|
|
725
528
|
};
|
726
529
|
return React.createElement("div", {
|
727
530
|
className: styles['header-calendar']
|
531
|
+
}, React.createElement("div", {
|
532
|
+
className: styles['header-calendar_filter']
|
728
533
|
}, React.createElement("div", {
|
729
534
|
className: clsx$1('cursor-pointer', filter.isOpen && styles['text-lms-primary']),
|
730
535
|
onClick: toggleTurnOnFilter
|
@@ -752,7 +557,7 @@ var LMSHeaderCalendar = function LMSHeaderCalendar(_ref) {
|
|
752
557
|
onClick: function onClick() {
|
753
558
|
return handleChangeDate(currentDate.add(1, calendarMode));
|
754
559
|
}
|
755
|
-
})), showTeacherName && React.createElement("div", {
|
560
|
+
}))), showTeacherName && React.createElement("div", {
|
756
561
|
className: styles['header-calendar__title']
|
757
562
|
}, title), React.createElement("div", {
|
758
563
|
className: styles['header-calendar__controls']
|
@@ -779,46 +584,45 @@ var FilterCalendar = function FilterCalendar(_ref) {
|
|
779
584
|
var filter = _ref.filter,
|
780
585
|
setFilter = _ref.setFilter,
|
781
586
|
courses = _ref.courses;
|
782
|
-
console.log('course:', courses);
|
783
587
|
var noteFilter = useMemo(function () {
|
784
588
|
return [{
|
785
589
|
title: 'Online',
|
786
590
|
icon: React.createElement("div", {
|
787
591
|
className: styles$1['calendar-filter_note_blue']
|
788
592
|
}),
|
789
|
-
value:
|
593
|
+
value: LEARNING_MODE.ONLINE
|
790
594
|
}, {
|
791
595
|
title: 'Live Online',
|
792
596
|
icon: React.createElement("div", {
|
793
597
|
className: styles$1['calendar-filter_note_pureple']
|
794
598
|
}),
|
795
|
-
value:
|
599
|
+
value: LEARNING_MODE.LIVE_ONLINE
|
796
600
|
}, {
|
797
601
|
title: 'Offline',
|
798
602
|
icon: React.createElement("div", {
|
799
603
|
className: styles$1['calendar-filter_note_green']
|
800
604
|
}),
|
801
|
-
value:
|
605
|
+
value: LEARNING_MODE.OFFLINE
|
802
606
|
}, {
|
803
607
|
title: 'Case Study',
|
804
608
|
icon: React.createElement(GoldStarIcon, null),
|
805
|
-
value:
|
609
|
+
value: LEARNING_MODE.CASE_STUDY
|
806
610
|
}, {
|
807
611
|
title: 'Test',
|
808
612
|
icon: React.createElement(BookIcon, null),
|
809
|
-
value:
|
613
|
+
value: LEARNING_MODE.TEST
|
810
614
|
}, {
|
811
615
|
title: 'Holiday',
|
812
616
|
icon: React.createElement("div", {
|
813
617
|
className: styles$1['calendar-filter_note_yellow']
|
814
618
|
}),
|
815
|
-
value:
|
619
|
+
value: LEARNING_MODE.HOLIDAY
|
816
620
|
}, {
|
817
621
|
title: 'Overdue',
|
818
622
|
icon: React.createElement("div", {
|
819
623
|
className: styles$1['calendar-filter_note_red']
|
820
624
|
}),
|
821
|
-
value:
|
625
|
+
value: LEARNING_MODE.OVERDUE
|
822
626
|
}];
|
823
627
|
}, []);
|
824
628
|
var handleFilter = function handleFilter(type, value) {
|
@@ -902,6 +706,20 @@ var FilterCalendar = function FilterCalendar(_ref) {
|
|
902
706
|
}))));
|
903
707
|
};
|
904
708
|
|
709
|
+
var CustomTooltip = function CustomTooltip(_ref) {
|
710
|
+
var title = _ref.title,
|
711
|
+
children = _ref.children,
|
712
|
+
_ref$placement = _ref.placement,
|
713
|
+
placement = _ref$placement === void 0 ? 'top' : _ref$placement;
|
714
|
+
return React.createElement(Tooltip, {
|
715
|
+
color: '#ffffff',
|
716
|
+
title: React.createElement("div", {
|
717
|
+
className: styles['text-gray-600']
|
718
|
+
}, title),
|
719
|
+
placement: placement
|
720
|
+
}, React.createElement("div", null, children));
|
721
|
+
};
|
722
|
+
|
905
723
|
var MonthlyEvent = function MonthlyEvent(_ref) {
|
906
724
|
var event = _ref.event,
|
907
725
|
isSameMonth = _ref.isSameMonth,
|
@@ -1075,8 +893,204 @@ var MonthlyCalendar = function MonthlyCalendar(_ref) {
|
|
1075
893
|
});
|
1076
894
|
};
|
1077
895
|
|
896
|
+
var _getIconEvent;
|
897
|
+
var getIconEvent = (_getIconEvent = {}, _getIconEvent[EVENT_TYPES.TEACHING] = React.createElement(Book, null), _getIconEvent[EVENT_TYPES.BUSY] = React.createElement(CalendarDelete, null), _getIconEvent[EVENT_TYPES.TIME_OFF] = React.createElement(Star, null), _getIconEvent[EVENT_TYPES.OTHER] = React.createElement(CalendarAccept, null), _getIconEvent);
|
898
|
+
var calculateBoxSize = function calculateBoxSize(startTime, endTime) {
|
899
|
+
var minutes = dayjs(startTime).minute();
|
900
|
+
var diffMinutes = dayjs(endTime).diff(startTime, 'hour', true);
|
901
|
+
return {
|
902
|
+
width: diffMinutes || 1,
|
903
|
+
left: Math.floor(minutes / MINUTES_PER_HOUR * 100)
|
904
|
+
};
|
905
|
+
};
|
906
|
+
var LMSWeeklyEvent = function LMSWeeklyEvent(_ref) {
|
907
|
+
var event = _ref.event,
|
908
|
+
onOpenDetail = _ref.onOpenDetail,
|
909
|
+
onEventDetail = _ref.onEventDetail;
|
910
|
+
var formattedDate = customDateFormat(event.startDate, TIME_FORMAT) + ' - ' + customDateFormat(event.endDate, TIME_FORMAT);
|
911
|
+
var _calculateBoxSize = calculateBoxSize(event.startDate, event.endDate),
|
912
|
+
width = _calculateBoxSize.width,
|
913
|
+
left = _calculateBoxSize.left;
|
914
|
+
return React.createElement("div", {
|
915
|
+
className: styles["event-" + convertType[event.type]],
|
916
|
+
onClick: function onClick() {
|
917
|
+
onOpenDetail(dayjs(event.startDate).toDate(), [event]);
|
918
|
+
onEventDetail && onEventDetail(event);
|
919
|
+
},
|
920
|
+
style: {
|
921
|
+
top: "0%",
|
922
|
+
height: "100%",
|
923
|
+
width: width * 100 + '%',
|
924
|
+
left: left + '%',
|
925
|
+
zIndex: event.type === EVENT_TYPES.BUSY ? 2 : 1
|
926
|
+
}
|
927
|
+
}, React.createElement("div", {
|
928
|
+
className: clsx$1(styles['weekly-event'])
|
929
|
+
}, React.createElement("div", {
|
930
|
+
className: clsx$1(styles['weekly-event--collapse'])
|
931
|
+
}, React.createElement("div", {
|
932
|
+
className: styles.flex
|
933
|
+
}, getIconEvent[event.type]), React.createElement("div", {
|
934
|
+
className: styles['weekly-event__title']
|
935
|
+
}, React.createElement(CustomTooltip, {
|
936
|
+
title: event.title
|
937
|
+
}, event.title))), React.createElement("div", {
|
938
|
+
className: styles['weekly-event__date']
|
939
|
+
}, React.createElement(CustomTooltip, {
|
940
|
+
title: formattedDate
|
941
|
+
}, formattedDate))));
|
942
|
+
};
|
943
|
+
|
944
|
+
var LMSWeeklyCell = function LMSWeeklyCell(_ref) {
|
945
|
+
var _events;
|
946
|
+
var events = _ref.events,
|
947
|
+
date = _ref.date,
|
948
|
+
onOpenDetail = _ref.onOpenDetail,
|
949
|
+
onOpenCreate = _ref.onOpenCreate,
|
950
|
+
onEventDetail = _ref.onEventDetail;
|
951
|
+
var isToday = dayjs().isSame(date, 'day');
|
952
|
+
var handleOpenCreateModal = function handleOpenCreateModal(e) {
|
953
|
+
if (e.target !== e.currentTarget) return;
|
954
|
+
onOpenCreate(dayjs(date).toDate());
|
955
|
+
};
|
956
|
+
events = (_events = events) === null || _events === void 0 ? void 0 : _events.sort(function (a, b) {
|
957
|
+
return a.type === EVENT_TYPES.BUSY && b.type !== EVENT_TYPES.BUSY ? 1 : -1;
|
958
|
+
});
|
959
|
+
var renderWeeklyEvent = useMemo(function () {
|
960
|
+
var _events2, _events3, _events4;
|
961
|
+
var isAllDay = (_events2 = events) === null || _events2 === void 0 ? void 0 : _events2.some(function (item) {
|
962
|
+
return item.isAllDay;
|
963
|
+
});
|
964
|
+
if (isAllDay && ((_events3 = events) === null || _events3 === void 0 ? void 0 : _events3.length) > 1) {
|
965
|
+
return React.createElement(React.Fragment, null, React.createElement(LMSWeeklyEvent, {
|
966
|
+
event: events[0],
|
967
|
+
onOpenDetail: onOpenDetail,
|
968
|
+
onEventDetail: onEventDetail
|
969
|
+
}), React.createElement("div", {
|
970
|
+
className: styles['see-more']
|
971
|
+
}, React.createElement(CustomTooltip, {
|
972
|
+
placement: 'bottom',
|
973
|
+
title: React.createElement("div", {
|
974
|
+
className: styles['calendar-tooltip']
|
975
|
+
}, events.slice(1, events.length).map(function (event, index) {
|
976
|
+
return React.createElement(LMSWeeklyEvent, {
|
977
|
+
event: event,
|
978
|
+
onOpenDetail: onOpenDetail,
|
979
|
+
onEventDetail: onEventDetail,
|
980
|
+
key: index + 1
|
981
|
+
});
|
982
|
+
}))
|
983
|
+
}, "+", Math.max(events.length - 1, 0), " More")));
|
984
|
+
}
|
985
|
+
return (_events4 = events) === null || _events4 === void 0 ? void 0 : _events4.map(function (event, index) {
|
986
|
+
return React.createElement(LMSWeeklyEvent, {
|
987
|
+
key: index,
|
988
|
+
event: event,
|
989
|
+
onOpenDetail: onOpenDetail,
|
990
|
+
onEventDetail: onEventDetail
|
991
|
+
});
|
992
|
+
});
|
993
|
+
}, [events]);
|
994
|
+
return React.createElement("div", {
|
995
|
+
className: styles['weekly-calendar__cell'] + " " + (isToday ? styles['bg-info/10'] : styles['bg-white']),
|
996
|
+
onClick: handleOpenCreateModal
|
997
|
+
}, renderWeeklyEvent);
|
998
|
+
};
|
999
|
+
|
1000
|
+
dayjs.extend(isBetween);
|
1001
|
+
var LMSWeeklyCalendar = function LMSWeeklyCalendar(_ref) {
|
1002
|
+
var startDate = _ref.startDate,
|
1003
|
+
events = _ref.events,
|
1004
|
+
onOpenDetail = _ref.onOpenDetail,
|
1005
|
+
onOpenCreate = _ref.onOpenCreate,
|
1006
|
+
onEventDetail = _ref.onEventDetail,
|
1007
|
+
loading = _ref.loading;
|
1008
|
+
var getEventsOfHour = function getEventsOfHour(events, targetHour) {
|
1009
|
+
return hoursOfDayKeys.reduce(function (acc, hour) {
|
1010
|
+
acc[hour] = {
|
1011
|
+
events: events.filter(function (event) {
|
1012
|
+
return dayjs(event.startDate).isSame(dayjs(targetHour.format('YYYY-MM-DD') + "T" + hour + ":00"), 'hour') && !checkIsAllday(dayjs(event.startDate), dayjs(event.endDate));
|
1013
|
+
}),
|
1014
|
+
date: dayjs(targetHour.format('YYYY-MM-DD') + "T" + hour)
|
1015
|
+
};
|
1016
|
+
return acc;
|
1017
|
+
}, {});
|
1018
|
+
};
|
1019
|
+
var getTableColumns = function getTableColumns() {
|
1020
|
+
var hourColumn = {
|
1021
|
+
title: React.createElement("div", {
|
1022
|
+
className: styles['weekly-calendar__title']
|
1023
|
+
}),
|
1024
|
+
dataIndex: 'hour',
|
1025
|
+
key: 'hour',
|
1026
|
+
width: 1,
|
1027
|
+
render: function render(value) {
|
1028
|
+
return React.createElement("div", null, value);
|
1029
|
+
}
|
1030
|
+
};
|
1031
|
+
var hours = Array.from({
|
1032
|
+
length: 17
|
1033
|
+
}, function (_, i) {
|
1034
|
+
return 7 + i;
|
1035
|
+
});
|
1036
|
+
var timeColums = hours.map(function (time, index) {
|
1037
|
+
return {
|
1038
|
+
title: React.createElement("div", {
|
1039
|
+
className: styles['weekly-calendar__title']
|
1040
|
+
}, time % 2 !== 0 ? React.createElement("div", {
|
1041
|
+
style: {
|
1042
|
+
textAlign: 'start'
|
1043
|
+
}
|
1044
|
+
}, time < 10 ? '0' + time + ':00' : time + ':00') : React.createElement("div", {
|
1045
|
+
style: {
|
1046
|
+
minWidth: '35px'
|
1047
|
+
}
|
1048
|
+
})),
|
1049
|
+
dataIndex: "" + (time < 10 ? '0' + time + ':00' : time + ':00'),
|
1050
|
+
key: "" + (time < 10 ? '0' + time + ':00' : time + ':00'),
|
1051
|
+
render: function render(value) {
|
1052
|
+
return React.createElement(LMSWeeklyCell, {
|
1053
|
+
key: index,
|
1054
|
+
events: value === null || value === void 0 ? void 0 : value.events,
|
1055
|
+
date: value === null || value === void 0 ? void 0 : value.date,
|
1056
|
+
onOpenDetail: onOpenDetail,
|
1057
|
+
onOpenCreate: onOpenCreate,
|
1058
|
+
onEventDetail: onEventDetail
|
1059
|
+
});
|
1060
|
+
}
|
1061
|
+
};
|
1062
|
+
});
|
1063
|
+
return [hourColumn].concat(timeColums);
|
1064
|
+
};
|
1065
|
+
var getTableData = function getTableData() {
|
1066
|
+
var data = [];
|
1067
|
+
for (var i = 0; i < 7; i++) {
|
1068
|
+
var targetHour = dayjs(startDate).add(i, 'day');
|
1069
|
+
data.push(_extends({
|
1070
|
+
id: i,
|
1071
|
+
hour: React.createElement("div", null, React.createElement("div", {
|
1072
|
+
className: styles['lms-calendar__tablet']
|
1073
|
+
}, Object.values(DAYS_OF_WEEK)[i]), React.createElement("div", {
|
1074
|
+
className: styles['lms-calendar__tablet']
|
1075
|
+
}, dayjs(startDate).add(i, 'day').format('DD')))
|
1076
|
+
}, getEventsOfHour(events, targetHour)));
|
1077
|
+
}
|
1078
|
+
return data;
|
1079
|
+
};
|
1080
|
+
return React.createElement(Table, {
|
1081
|
+
rowKey: function rowKey(record) {
|
1082
|
+
return record.id;
|
1083
|
+
},
|
1084
|
+
columns: getTableColumns(),
|
1085
|
+
dataSource: getTableData(),
|
1086
|
+
pagination: false,
|
1087
|
+
rowHoverable: false,
|
1088
|
+
className: styles['weekly-calendar'],
|
1089
|
+
loading: loading
|
1090
|
+
});
|
1091
|
+
};
|
1092
|
+
|
1078
1093
|
var SAPPCalendar = function SAPPCalendar(_ref) {
|
1079
|
-
var _courses$map;
|
1080
1094
|
var teacherName = _ref.teacherName,
|
1081
1095
|
events = _ref.events,
|
1082
1096
|
_ref$norms = _ref.norms,
|
@@ -1097,15 +1111,15 @@ var SAPPCalendar = function SAPPCalendar(_ref) {
|
|
1097
1111
|
var _useState = useState(dayjs()),
|
1098
1112
|
currentDate = _useState[0],
|
1099
1113
|
setCurrentDate = _useState[1];
|
1100
|
-
var _useState2 = useState('
|
1114
|
+
var _useState2 = useState('week'),
|
1101
1115
|
calendarMode = _useState2[0],
|
1102
1116
|
setCalendarMode = _useState2[1];
|
1103
1117
|
var _useState3 = useState({
|
1104
1118
|
isOpen: false,
|
1105
|
-
type:
|
1106
|
-
courseId:
|
1119
|
+
type: Object.values(LEARNING_MODE),
|
1120
|
+
courseId: courses !== null && courses !== void 0 && courses.length ? courses === null || courses === void 0 ? void 0 : courses.map(function (item) {
|
1107
1121
|
return item.id;
|
1108
|
-
})
|
1122
|
+
}) : []
|
1109
1123
|
}),
|
1110
1124
|
filter = _useState3[0],
|
1111
1125
|
setFilter = _useState3[1];
|
@@ -1176,12 +1190,11 @@ var SAPPCalendar = function SAPPCalendar(_ref) {
|
|
1176
1190
|
onOpenCreate: onOpenCreate,
|
1177
1191
|
onEventDetail: onEventDetail,
|
1178
1192
|
loading: loading
|
1179
|
-
}), calendarMode === 'week' && React.createElement(
|
1193
|
+
}), calendarMode === 'week' && React.createElement(LMSWeeklyCalendar, {
|
1180
1194
|
startDate: startDate,
|
1181
1195
|
endDate: endDate,
|
1182
1196
|
events: splittedEvents,
|
1183
1197
|
norms: norms,
|
1184
|
-
showWeeklyNorm: showWeeklyNorm,
|
1185
1198
|
onOpenDetail: onOpenDetail,
|
1186
1199
|
onOpenCreate: onOpenCreate,
|
1187
1200
|
onEventDetail: onEventDetail,
|