sapp-common-package-test-final 1.0.12 → 1.0.13
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/index.d.ts +3 -0
- package/dist/components/SAPPCalendar/WeeklyCalendar/WeeklyCalendar.d.ts +5 -3
- package/dist/index.css +7 -2
- package/dist/index.js +268 -5
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +268 -5
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
package/dist/index.modern.js
CHANGED
@@ -56,6 +56,7 @@ var useEffectAfterMounted = function useEffectAfterMounted(callback, dependencie
|
|
56
56
|
}, dependencies);
|
57
57
|
};
|
58
58
|
|
59
|
+
var HOURS_PER_DAY = 24;
|
59
60
|
var MINUTES_PER_HOUR = 60;
|
60
61
|
var TIME_FORMAT = 'HH:mm';
|
61
62
|
var DAYS_OF_WEEK;
|
@@ -407,7 +408,7 @@ var HiddenEyeIcon = function HiddenEyeIcon() {
|
|
407
408
|
}));
|
408
409
|
};
|
409
410
|
|
410
|
-
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"};
|
411
|
+
var styles = {"flex":"_2hGgU","transform":"_3-Pu9","cursor-pointer":"_2Mcv6","resize":"_uCXxT","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"};
|
411
412
|
|
412
413
|
var Button = function Button(_ref) {
|
413
414
|
var _ref$type = _ref.type,
|
@@ -904,8 +905,224 @@ var MonthlyCalendar = function MonthlyCalendar(_ref) {
|
|
904
905
|
};
|
905
906
|
|
906
907
|
var _getIconEvent;
|
908
|
+
var calculateBoxSize = function calculateBoxSize(startTime, endTime, isAllDay) {
|
909
|
+
if (isAllDay) {
|
910
|
+
return {
|
911
|
+
top: 10,
|
912
|
+
height: 50
|
913
|
+
};
|
914
|
+
}
|
915
|
+
var minutes = dayjs(startTime).minute();
|
916
|
+
var diffMinutes = dayjs(endTime).diff(startTime, 'minute', true);
|
917
|
+
return {
|
918
|
+
top: Math.floor(minutes / MINUTES_PER_HOUR * 100),
|
919
|
+
height: Math.floor(diffMinutes / MINUTES_PER_HOUR * 100)
|
920
|
+
};
|
921
|
+
};
|
907
922
|
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);
|
908
|
-
var
|
923
|
+
var MIN_HEIGHT_HIDE_DETAILS = 140;
|
924
|
+
var MIN_HEIGHT_HIDE_ALL = 105;
|
925
|
+
var WeeklyEvent = function WeeklyEvent(_ref) {
|
926
|
+
var event = _ref.event,
|
927
|
+
onOpenDetail = _ref.onOpenDetail,
|
928
|
+
onEventDetail = _ref.onEventDetail;
|
929
|
+
var _calculateBoxSize = calculateBoxSize(event.startDate, event.endDate, event.isAllDay),
|
930
|
+
top = _calculateBoxSize.top,
|
931
|
+
height = _calculateBoxSize.height;
|
932
|
+
var formattedDate = customDateFormat(event.startDate, TIME_FORMAT) + ' - ' + customDateFormat(event.endDate, TIME_FORMAT);
|
933
|
+
return React.createElement("div", {
|
934
|
+
className: styles["event-" + convertType[event.type]],
|
935
|
+
onClick: function onClick() {
|
936
|
+
onOpenDetail(dayjs(event.startDate).toDate(), [event]);
|
937
|
+
onEventDetail && onEventDetail(event);
|
938
|
+
},
|
939
|
+
style: {
|
940
|
+
top: top + "%",
|
941
|
+
height: height + "%",
|
942
|
+
zIndex: event.type === EVENT_TYPES.BUSY ? 2 : 1
|
943
|
+
}
|
944
|
+
}, React.createElement("div", {
|
945
|
+
className: clsx$1(styles['weekly-event'], height <= MIN_HEIGHT_HIDE_ALL && styles['weekly-event--collapse'])
|
946
|
+
}, React.createElement("div", {
|
947
|
+
className: styles.flex
|
948
|
+
}, getIconEvent[event.type]), React.createElement("div", {
|
949
|
+
className: clsx$1(height <= MIN_HEIGHT_HIDE_DETAILS && styles['weekly-event--collapse'])
|
950
|
+
}, React.createElement("div", {
|
951
|
+
className: styles['weekly-event__title']
|
952
|
+
}, React.createElement(CustomTooltip, {
|
953
|
+
title: event.title
|
954
|
+
}, event.title)), React.createElement("div", {
|
955
|
+
className: styles['weekly-event__date']
|
956
|
+
}, React.createElement(CustomTooltip, {
|
957
|
+
title: formattedDate
|
958
|
+
}, formattedDate)))));
|
959
|
+
};
|
960
|
+
|
961
|
+
var WeeklyCell = function WeeklyCell(_ref) {
|
962
|
+
var _events;
|
963
|
+
var events = _ref.events,
|
964
|
+
date = _ref.date,
|
965
|
+
onOpenDetail = _ref.onOpenDetail,
|
966
|
+
onOpenCreate = _ref.onOpenCreate,
|
967
|
+
onEventDetail = _ref.onEventDetail;
|
968
|
+
var isToday = dayjs().isSame(date, 'day');
|
969
|
+
var handleOpenCreateModal = function handleOpenCreateModal(e) {
|
970
|
+
if (e.target !== e.currentTarget) return;
|
971
|
+
onOpenCreate(dayjs(date).toDate());
|
972
|
+
};
|
973
|
+
events = (_events = events) === null || _events === void 0 ? void 0 : _events.sort(function (a, b) {
|
974
|
+
return a.type === EVENT_TYPES.BUSY && b.type !== EVENT_TYPES.BUSY ? 1 : -1;
|
975
|
+
});
|
976
|
+
var renderWeeklyEvent = useMemo(function () {
|
977
|
+
var _events2, _events3, _events4;
|
978
|
+
var isAllDay = (_events2 = events) === null || _events2 === void 0 ? void 0 : _events2.some(function (item) {
|
979
|
+
return item.isAllDay;
|
980
|
+
});
|
981
|
+
if (isAllDay && ((_events3 = events) === null || _events3 === void 0 ? void 0 : _events3.length) > 1) {
|
982
|
+
return React.createElement(React.Fragment, null, React.createElement(WeeklyEvent, {
|
983
|
+
event: events[0],
|
984
|
+
onOpenDetail: onOpenDetail,
|
985
|
+
onEventDetail: onEventDetail
|
986
|
+
}), React.createElement("div", {
|
987
|
+
className: styles['see-more']
|
988
|
+
}, React.createElement(CustomTooltip, {
|
989
|
+
placement: 'bottom',
|
990
|
+
title: React.createElement("div", {
|
991
|
+
className: styles['calendar-tooltip']
|
992
|
+
}, events.slice(1, events.length).map(function (event, index) {
|
993
|
+
return React.createElement(WeeklyEvent, {
|
994
|
+
event: event,
|
995
|
+
onOpenDetail: onOpenDetail,
|
996
|
+
onEventDetail: onEventDetail,
|
997
|
+
key: index + 1
|
998
|
+
});
|
999
|
+
}))
|
1000
|
+
}, "+", Math.max(events.length - 1, 0), " More")));
|
1001
|
+
}
|
1002
|
+
return (_events4 = events) === null || _events4 === void 0 ? void 0 : _events4.map(function (event, index) {
|
1003
|
+
return React.createElement(WeeklyEvent, {
|
1004
|
+
key: index,
|
1005
|
+
event: event,
|
1006
|
+
onOpenDetail: onOpenDetail,
|
1007
|
+
onEventDetail: onEventDetail
|
1008
|
+
});
|
1009
|
+
});
|
1010
|
+
}, [events]);
|
1011
|
+
return React.createElement("div", {
|
1012
|
+
className: styles['weekly-calendar__cell'] + " " + (isToday ? styles['bg-info/10'] : styles['bg-white']),
|
1013
|
+
onClick: handleOpenCreateModal
|
1014
|
+
}, renderWeeklyEvent);
|
1015
|
+
};
|
1016
|
+
|
1017
|
+
dayjs.extend(isBetween);
|
1018
|
+
var getEventAllDay = function getEventAllDay(events, targetDate) {
|
1019
|
+
return daysOfWeekKeys.reduce(function (acc, day, index) {
|
1020
|
+
var currentDate = targetDate.add(index, 'day');
|
1021
|
+
acc[day] = {
|
1022
|
+
events: events.reduce(function (filteredEvents, event) {
|
1023
|
+
if (dayjs(event.startDate).isSame(currentDate.startOf('day')) && checkIsAllday(dayjs(event.startDate), dayjs(event.endDate))) {
|
1024
|
+
filteredEvents.push(_extends({}, event, {
|
1025
|
+
isAllDay: true
|
1026
|
+
}));
|
1027
|
+
}
|
1028
|
+
return filteredEvents;
|
1029
|
+
}, []),
|
1030
|
+
date: currentDate
|
1031
|
+
};
|
1032
|
+
return acc;
|
1033
|
+
}, {});
|
1034
|
+
};
|
1035
|
+
var getEventsOfDay = function getEventsOfDay(events, targetHour) {
|
1036
|
+
return daysOfWeekKeys.reduce(function (acc, day, index) {
|
1037
|
+
var currentDate = targetHour.add(index, 'day');
|
1038
|
+
acc[day] = {
|
1039
|
+
events: events.filter(function (event) {
|
1040
|
+
return dayjs(event.startDate).isSame(currentDate, 'hour') && !checkIsAllday(dayjs(event.startDate), dayjs(event.endDate));
|
1041
|
+
}),
|
1042
|
+
date: currentDate
|
1043
|
+
};
|
1044
|
+
return acc;
|
1045
|
+
}, {});
|
1046
|
+
};
|
1047
|
+
var WeeklyCalendar = function WeeklyCalendar(_ref) {
|
1048
|
+
var startDate = _ref.startDate,
|
1049
|
+
endDate = _ref.endDate,
|
1050
|
+
events = _ref.events,
|
1051
|
+
norms = _ref.norms,
|
1052
|
+
showWeeklyNorm = _ref.showWeeklyNorm,
|
1053
|
+
onOpenDetail = _ref.onOpenDetail,
|
1054
|
+
onOpenCreate = _ref.onOpenCreate,
|
1055
|
+
onEventDetail = _ref.onEventDetail,
|
1056
|
+
loading = _ref.loading;
|
1057
|
+
var getTableColumns = function getTableColumns() {
|
1058
|
+
var _calculateNormOfWeek = calculateNormOfWeek(norms, events, startDate, endDate),
|
1059
|
+
normOfWeek = _calculateNormOfWeek.normOfWeek,
|
1060
|
+
totalNorm = _calculateNormOfWeek.totalNorm;
|
1061
|
+
var hourColumn = {
|
1062
|
+
title: React.createElement("div", {
|
1063
|
+
className: styles['weekly-calendar__title']
|
1064
|
+
}, showWeeklyNorm && React.createElement(React.Fragment, null, React.createElement("div", null, "Weekly Norm"), React.createElement("div", {
|
1065
|
+
className: clsx$1(normOfWeek > totalNorm && styles['!text-error'])
|
1066
|
+
}, normOfWeek + "/" + totalNorm))),
|
1067
|
+
dataIndex: 'hour',
|
1068
|
+
key: 'hour',
|
1069
|
+
width: 1,
|
1070
|
+
render: function render(value) {
|
1071
|
+
return React.createElement("div", null, value);
|
1072
|
+
}
|
1073
|
+
};
|
1074
|
+
var dayColumns = Object.values(DAYS_OF_WEEK).map(function (day, index) {
|
1075
|
+
return {
|
1076
|
+
title: React.createElement("div", {
|
1077
|
+
className: styles['weekly-calendar__title']
|
1078
|
+
}, React.createElement("div", null, day.slice(0, 3)), React.createElement("div", null, dayjs(startDate).add(index, 'day').format('DD/MM'))),
|
1079
|
+
dataIndex: day,
|
1080
|
+
key: day,
|
1081
|
+
render: function render(value) {
|
1082
|
+
return React.createElement(WeeklyCell, {
|
1083
|
+
key: index,
|
1084
|
+
events: value.events,
|
1085
|
+
date: value.date,
|
1086
|
+
onOpenDetail: onOpenDetail,
|
1087
|
+
onOpenCreate: onOpenCreate,
|
1088
|
+
onEventDetail: onEventDetail
|
1089
|
+
});
|
1090
|
+
}
|
1091
|
+
};
|
1092
|
+
});
|
1093
|
+
return [hourColumn].concat(dayColumns);
|
1094
|
+
};
|
1095
|
+
var getTableData = function getTableData() {
|
1096
|
+
var data = [];
|
1097
|
+
data.push(_extends({
|
1098
|
+
id: -1,
|
1099
|
+
hour: 'All day'
|
1100
|
+
}, getEventAllDay(events, startDate)));
|
1101
|
+
for (var i = 0; i < HOURS_PER_DAY; i++) {
|
1102
|
+
var targetHour = dayjs(startDate).add(i, 'hour');
|
1103
|
+
data.push(_extends({
|
1104
|
+
id: i,
|
1105
|
+
hour: targetHour.format('HH:mm')
|
1106
|
+
}, getEventsOfDay(events, targetHour)));
|
1107
|
+
}
|
1108
|
+
return data;
|
1109
|
+
};
|
1110
|
+
return React.createElement(Table, {
|
1111
|
+
rowKey: function rowKey(record) {
|
1112
|
+
return record.id;
|
1113
|
+
},
|
1114
|
+
columns: getTableColumns(),
|
1115
|
+
dataSource: getTableData(),
|
1116
|
+
pagination: false,
|
1117
|
+
rowHoverable: false,
|
1118
|
+
className: styles['weekly-calendar'],
|
1119
|
+
loading: loading
|
1120
|
+
});
|
1121
|
+
};
|
1122
|
+
|
1123
|
+
var _getIconEvent$1;
|
1124
|
+
var getIconEvent$1 = (_getIconEvent$1 = {}, _getIconEvent$1[EVENT_TYPES.TEACHING] = React.createElement(Book, null), _getIconEvent$1[EVENT_TYPES.BUSY] = React.createElement(CalendarDelete, null), _getIconEvent$1[EVENT_TYPES.TIME_OFF] = React.createElement(Star, null), _getIconEvent$1[EVENT_TYPES.OTHER] = React.createElement(CalendarAccept, null), _getIconEvent$1);
|
1125
|
+
var calculateBoxSize$1 = function calculateBoxSize(startTime, endTime) {
|
909
1126
|
var minutes = dayjs(startTime).minute();
|
910
1127
|
var diffMinutes = dayjs(endTime).diff(startTime, 'hour', true);
|
911
1128
|
return {
|
@@ -918,7 +1135,7 @@ var LMSWeeklyEvent = function LMSWeeklyEvent(_ref) {
|
|
918
1135
|
onOpenDetail = _ref.onOpenDetail,
|
919
1136
|
onEventDetail = _ref.onEventDetail;
|
920
1137
|
var formattedDate = customDateFormat(event.startDate, TIME_FORMAT) + ' - ' + customDateFormat(event.endDate, TIME_FORMAT);
|
921
|
-
var _calculateBoxSize = calculateBoxSize(event.startDate, event.endDate),
|
1138
|
+
var _calculateBoxSize = calculateBoxSize$1(event.startDate, event.endDate),
|
922
1139
|
width = _calculateBoxSize.width,
|
923
1140
|
left = _calculateBoxSize.left;
|
924
1141
|
return React.createElement("div", {
|
@@ -940,7 +1157,7 @@ var LMSWeeklyEvent = function LMSWeeklyEvent(_ref) {
|
|
940
1157
|
className: clsx$1(styles['weekly-event--collapse'])
|
941
1158
|
}, React.createElement("div", {
|
942
1159
|
className: styles.flex
|
943
|
-
}, getIconEvent[event.type]), React.createElement("div", {
|
1160
|
+
}, getIconEvent$1[event.type]), React.createElement("div", {
|
944
1161
|
className: styles['weekly-event__title']
|
945
1162
|
}, React.createElement(CustomTooltip, {
|
946
1163
|
title: event.title
|
@@ -1100,6 +1317,51 @@ var LMSWeeklyCalendar = function LMSWeeklyCalendar(_ref) {
|
|
1100
1317
|
});
|
1101
1318
|
};
|
1102
1319
|
|
1320
|
+
function LMSModeWeeklyCalendar(_ref) {
|
1321
|
+
var startDate = _ref.startDate,
|
1322
|
+
endDate = _ref.endDate,
|
1323
|
+
events = _ref.events,
|
1324
|
+
norms = _ref.norms,
|
1325
|
+
_ref$showWeeklyNorm = _ref.showWeeklyNorm,
|
1326
|
+
showWeeklyNorm = _ref$showWeeklyNorm === void 0 ? false : _ref$showWeeklyNorm,
|
1327
|
+
onOpenDetail = _ref.onOpenDetail,
|
1328
|
+
onOpenCreate = _ref.onOpenCreate,
|
1329
|
+
onEventDetail = _ref.onEventDetail,
|
1330
|
+
loading = _ref.loading;
|
1331
|
+
var _useState = useState(window.innerWidth),
|
1332
|
+
windowWidth = _useState[0],
|
1333
|
+
setWindowWidth = _useState[1];
|
1334
|
+
useEffect(function () {
|
1335
|
+
var handleResize = function handleResize() {
|
1336
|
+
setWindowWidth(window.innerWidth);
|
1337
|
+
};
|
1338
|
+
window.addEventListener('resize', handleResize);
|
1339
|
+
return function () {
|
1340
|
+
window.removeEventListener('resize', handleResize);
|
1341
|
+
};
|
1342
|
+
}, []);
|
1343
|
+
return React.createElement(React.Fragment, null, windowWidth > 1024 ? React.createElement(WeeklyCalendar, {
|
1344
|
+
startDate: startDate,
|
1345
|
+
endDate: endDate,
|
1346
|
+
events: events,
|
1347
|
+
norms: norms,
|
1348
|
+
showWeeklyNorm: showWeeklyNorm,
|
1349
|
+
onOpenDetail: onOpenDetail,
|
1350
|
+
onOpenCreate: onOpenCreate,
|
1351
|
+
onEventDetail: onEventDetail,
|
1352
|
+
loading: loading
|
1353
|
+
}) : React.createElement(LMSWeeklyCalendar, {
|
1354
|
+
startDate: startDate,
|
1355
|
+
endDate: endDate,
|
1356
|
+
events: events,
|
1357
|
+
norms: norms,
|
1358
|
+
onOpenDetail: onOpenDetail,
|
1359
|
+
onOpenCreate: onOpenCreate,
|
1360
|
+
onEventDetail: onEventDetail,
|
1361
|
+
loading: loading
|
1362
|
+
}));
|
1363
|
+
}
|
1364
|
+
|
1103
1365
|
var SAPPCalendar = function SAPPCalendar(_ref) {
|
1104
1366
|
var teacherName = _ref.teacherName,
|
1105
1367
|
events = _ref.events,
|
@@ -1200,10 +1462,11 @@ var SAPPCalendar = function SAPPCalendar(_ref) {
|
|
1200
1462
|
onOpenCreate: onOpenCreate,
|
1201
1463
|
onEventDetail: onEventDetail,
|
1202
1464
|
loading: loading
|
1203
|
-
}), calendarMode === 'week' && React.createElement(
|
1465
|
+
}), calendarMode === 'week' && React.createElement(LMSModeWeeklyCalendar, {
|
1204
1466
|
startDate: startDate,
|
1205
1467
|
endDate: endDate,
|
1206
1468
|
events: splittedEvents,
|
1469
|
+
showWeeklyNorm: showWeeklyNorm,
|
1207
1470
|
norms: norms,
|
1208
1471
|
onOpenDetail: onOpenDetail,
|
1209
1472
|
onOpenCreate: onOpenCreate,
|