sapp-common-package-test-final 1.0.9 → 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.
@@ -1,6 +1,6 @@
1
1
  import dayjs from 'dayjs';
2
2
  import React, { useState, useEffect, useMemo } from 'react';
3
- import { DatePicker, Tooltip, Table, Select, Calendar } from 'antd';
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']
@@ -785,39 +590,39 @@ var FilterCalendar = function FilterCalendar(_ref) {
785
590
  icon: React.createElement("div", {
786
591
  className: styles$1['calendar-filter_note_blue']
787
592
  }),
788
- value: 'ONLINE'
593
+ value: LEARNING_MODE.ONLINE
789
594
  }, {
790
595
  title: 'Live Online',
791
596
  icon: React.createElement("div", {
792
597
  className: styles$1['calendar-filter_note_pureple']
793
598
  }),
794
- value: 'LIVE_ONLINE'
599
+ value: LEARNING_MODE.LIVE_ONLINE
795
600
  }, {
796
601
  title: 'Offline',
797
602
  icon: React.createElement("div", {
798
603
  className: styles$1['calendar-filter_note_green']
799
604
  }),
800
- value: 'OFFLINE'
605
+ value: LEARNING_MODE.OFFLINE
801
606
  }, {
802
607
  title: 'Case Study',
803
608
  icon: React.createElement(GoldStarIcon, null),
804
- value: 'CASE_STUDY'
609
+ value: LEARNING_MODE.CASE_STUDY
805
610
  }, {
806
611
  title: 'Test',
807
612
  icon: React.createElement(BookIcon, null),
808
- value: 'TEST'
613
+ value: LEARNING_MODE.TEST
809
614
  }, {
810
615
  title: 'Holiday',
811
616
  icon: React.createElement("div", {
812
617
  className: styles$1['calendar-filter_note_yellow']
813
618
  }),
814
- value: 'HOLIDAY'
619
+ value: LEARNING_MODE.HOLIDAY
815
620
  }, {
816
621
  title: 'Overdue',
817
622
  icon: React.createElement("div", {
818
623
  className: styles$1['calendar-filter_note_red']
819
624
  }),
820
- value: 'OVERDUE'
625
+ value: LEARNING_MODE.OVERDUE
821
626
  }];
822
627
  }, []);
823
628
  var handleFilter = function handleFilter(type, value) {
@@ -901,6 +706,20 @@ var FilterCalendar = function FilterCalendar(_ref) {
901
706
  }))));
902
707
  };
903
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
+
904
723
  var MonthlyEvent = function MonthlyEvent(_ref) {
905
724
  var event = _ref.event,
906
725
  isSameMonth = _ref.isSameMonth,
@@ -1074,6 +893,203 @@ var MonthlyCalendar = function MonthlyCalendar(_ref) {
1074
893
  });
1075
894
  };
1076
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
+
1077
1093
  var SAPPCalendar = function SAPPCalendar(_ref) {
1078
1094
  var teacherName = _ref.teacherName,
1079
1095
  events = _ref.events,
@@ -1095,13 +1111,15 @@ var SAPPCalendar = function SAPPCalendar(_ref) {
1095
1111
  var _useState = useState(dayjs()),
1096
1112
  currentDate = _useState[0],
1097
1113
  setCurrentDate = _useState[1];
1098
- var _useState2 = useState('month'),
1114
+ var _useState2 = useState('week'),
1099
1115
  calendarMode = _useState2[0],
1100
1116
  setCalendarMode = _useState2[1];
1101
1117
  var _useState3 = useState({
1102
1118
  isOpen: false,
1103
- type: [],
1104
- 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) {
1121
+ return item.id;
1122
+ }) : []
1105
1123
  }),
1106
1124
  filter = _useState3[0],
1107
1125
  setFilter = _useState3[1];
@@ -1131,11 +1149,12 @@ var SAPPCalendar = function SAPPCalendar(_ref) {
1131
1149
  useEffectAfterMounted(function () {
1132
1150
  onRefetchAPI(startDate.toDate(), endDate.toDate());
1133
1151
  }, [startDate, endDate]);
1152
+ console.log('course:', courses);
1134
1153
  useEffect(function () {
1135
1154
  if (type === 'filter') {
1136
1155
  onFilter && onFilter(filter);
1137
1156
  }
1138
- }, [events]);
1157
+ }, [filter]);
1139
1158
  return React.createElement("div", {
1140
1159
  className: styles['sapp-calendar']
1141
1160
  }, filter.isOpen && React.createElement(FilterCalendar, {
@@ -1171,12 +1190,11 @@ var SAPPCalendar = function SAPPCalendar(_ref) {
1171
1190
  onOpenCreate: onOpenCreate,
1172
1191
  onEventDetail: onEventDetail,
1173
1192
  loading: loading
1174
- }), calendarMode === 'week' && React.createElement(WeeklyCalendar, {
1193
+ }), calendarMode === 'week' && React.createElement(LMSWeeklyCalendar, {
1175
1194
  startDate: startDate,
1176
1195
  endDate: endDate,
1177
1196
  events: splittedEvents,
1178
1197
  norms: norms,
1179
- showWeeklyNorm: showWeeklyNorm,
1180
1198
  onOpenDetail: onOpenDetail,
1181
1199
  onOpenCreate: onOpenCreate,
1182
1200
  onEventDetail: onEventDetail,