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.
@@ -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 calculateBoxSize = function calculateBoxSize(startTime, endTime) {
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(LMSWeeklyCalendar, {
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,