sapp-common-package-test-final 1.5.4 → 1.5.5

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/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/hooks/useEffectAfterMounted.ts","../src/constants/index.ts","../src/utils/index.ts","../src/icons/index.tsx","../src/components/SAPPCalendar/common/Button.tsx","../src/components/SAPPCalendar/common/Icon.tsx","../src/components/SAPPCalendar/HeaderCalendar/HeaderCalendar.tsx","../src/components/SAPPCalendar/common/CustomTooltip.tsx","../src/components/SAPPCalendar/MonthlyCalendar/MonthlyEvent.tsx","../src/components/SAPPCalendar/MonthlyCalendar/MonthlyCell.tsx","../src/components/SAPPCalendar/MonthlyCalendar/MonthlyCalendar.tsx","../src/components/SAPPCalendar/WeeklyCalendar/WeeklyEvent.tsx","../src/components/SAPPCalendar/WeeklyCalendar/WeeklyCell.tsx","../src/components/SAPPCalendar/WeeklyCalendar/WeeklyCalendar.tsx","../src/components/SAPPCalendar/LMSWeeklyCalendar/LMSWeeklyEvent.tsx","../src/components/SAPPCalendar/LMSWeeklyCalendar/LMSWeeklyCell.tsx","../src/components/SAPPCalendar/LMSWeeklyCalendar/LMSWeeklyCalendar.tsx","../src/components/SAPPCalendar/LMSWeeklyCalendar/index.tsx","../src/components/SAPPCalendar/common/SelectBox.tsx","../src/components/SAPPCalendar/HeaderCalendar/LMSHeaderCalendar.tsx","../src/components/SAPPCalendar/FilterCalendar/FilterCalendar.tsx","../src/components/SAPPCalendar/SAPPCalendar.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\n\nexport const useEffectAfterMounted = (\n callback: () => void,\n dependencies: any[]\n) => {\n const [mounted, setMounted] = useState(false)\n\n useEffect(() => {\n if (!mounted) {\n setMounted(true)\n return\n }\n return callback()\n }, dependencies)\n}\n","/* eslint-disable no-unused-vars */\nexport const HOURS_PER_DAY = 24\nexport const MINUTES_PER_HOUR = 60\nexport const TIME_FORMAT = 'HH:mm'\n\nexport const MIN_HEIGHT_HIDE_DETAILS = 140\n\nexport const MIN_HEIGHT_HIDE_ALL = 105\n\nexport const MIN_HEIGHT_EVENT = 50\n\nexport const BORDER_WEEKLY_CELL = 1\n\nexport enum DAYS_OF_WEEK {\n Monday = 'Monday',\n Tuesday = 'Tuesday',\n Wednesday = 'Wednesday',\n Thursday = 'Thursday',\n Friday = 'Friday',\n Saturday = 'Saturday',\n Sunday = 'Sunday'\n}\nexport enum DAYS_OF_WEEK_SHORTEN {\n Monday = 'Mon',\n Tuesday = 'Tue',\n Wednesday = 'Wed',\n Thursday = 'Thur',\n Friday = 'Fri',\n Saturday = 'Sat',\n Sunday = 'Sun'\n}\nexport enum HOUR_OF_DAY {\n '07:00' = '07:00',\n '08:00' = '08:00',\n '09:00' = '09:00',\n '10:00' = '10:00',\n '11:00' = '11:00',\n '12:00' = '12:00',\n '13:00' = '13:00',\n '14:00' = '14:00',\n '15:00' = '15:00',\n '16:00' = '16:00',\n '17:00' = '17:00',\n '18:00' = '18:00',\n '19:00' = '19:00',\n '20:00' = '20:00',\n '21:00' = '21:00',\n '22:00' = '22:00',\n '23:00' = '23:00',\n '24:00' = '24:00'\n}\nexport enum EVENT_TYPES {\n TEACHING = 'TEACHING',\n BUSY = 'BUSY',\n HOLIDAY = 'HOLIDAY',\n OTHER = 'OTHER',\n LIVE_ONLINE = 'LIVE_ONLINE'\n}\n\nexport enum FORMAT_DATE_CARLENDA {\n MONTH_AND_WEEK = 'MMMM DD',\n DATE = 'DD'\n}\nexport enum LEARNING_MODE {\n ONLINE = 'ONLINE',\n LIVE_ONLINE = 'LIVE_ONLINE',\n OFFLINE = 'OFFLINE',\n CASE_STUDY = 'CASE_STUDY',\n HOLIDAY = 'HOLIDAY',\n OVERDUE = 'OVERDUE',\n TEST = 'TEST',\n KEY_BEFORE_CONTENT = 'KEY_BEFORE_CONTENT'\n}\n\nexport enum CALENDAR_TYPE {\n OPS = 'OPS',\n LMS = 'LMS'\n}\n","/* eslint-disable no-unused-vars */\nimport dayjs, { Dayjs } from 'dayjs'\nimport {\n DAYS_OF_WEEK,\n EVENT_TYPES,\n HOUR_OF_DAY,\n TIME_FORMAT\n} from '../constants'\nimport { EventType, IEvent, INorm, INormOfWeek } from '../types'\n\nexport const customDateFormat = (value: Dayjs | Date, formatStr: string) =>\n dayjs(value).format(formatStr)\n\nexport const convertType: Record<EventType, string> = {\n [EVENT_TYPES.TEACHING]: 'info',\n [EVENT_TYPES.BUSY]: 'error',\n [EVENT_TYPES.HOLIDAY]: 'warning',\n [EVENT_TYPES.OTHER]: 'success',\n [EVENT_TYPES.LIVE_ONLINE]: 'purple'\n}\n\nexport const daysOfWeekKeys = Object.values(DAYS_OF_WEEK)\n\nexport const calculateNormOfWeek = (\n norms: INorm[],\n events: IEvent[],\n startDate: Dayjs,\n endDate: Dayjs\n): INormOfWeek => {\n const norm = norms.find(\n (norm) =>\n startDate.isBetween(norm.startDate, norm.endDate, 'day', '[]') &&\n endDate.isBetween(norm.startDate, norm.endDate, 'day', '[]')\n )\n\n if (!norm) {\n return {\n normOfWeek: 0,\n totalNorm: 0\n }\n }\n\n const normsOfWeek = events.filter(\n (event) =>\n dayjs(event.startDate).isBetween(startDate, endDate, 'day', '[]') &&\n endDate.isBetween(startDate, endDate, 'day', '[]') &&\n event.type === EVENT_TYPES.TEACHING\n )\n\n return {\n normOfWeek: normsOfWeek.length,\n totalNorm: norm.maxShift\n }\n}\n\nexport const splitEventsIntoDays = (events: IEvent[]) => {\n const splittedEvents: IEvent[] = []\n\n for (const event of events) {\n const startDate = dayjs(event.startDate)\n const endDate = dayjs(event.endDate)\n const isSameDay = startDate.isSame(endDate, 'day')\n\n if (isSameDay) {\n splittedEvents.push(event)\n continue\n }\n\n // Start day\n splittedEvents.push({\n ...event,\n startDate: startDate.toDate(),\n endDate: startDate.endOf('day').toDate()\n })\n\n // All-day events for intermediate days\n let currentDate = startDate.startOf('day').add(1, 'day')\n while (currentDate.isBefore(endDate, 'day')) {\n splittedEvents.push({\n ...event,\n startDate: currentDate.startOf('day').toDate(),\n endDate: currentDate.endOf('day').toDate()\n })\n currentDate = currentDate.add(1, 'day')\n }\n\n // End day\n splittedEvents.push({\n ...event,\n startDate: endDate.startOf('day').toDate(),\n endDate: endDate.toDate()\n })\n }\n\n return splittedEvents\n}\n\nexport const checkIsAllday = (startDate: Dayjs, endDate: Dayjs) => {\n if (!startDate.isValid() || !endDate.isValid()) {\n return false\n }\n\n return (\n startDate.format(TIME_FORMAT) ===\n startDate.startOf('day').format(TIME_FORMAT) &&\n endDate.format(TIME_FORMAT) === endDate.endOf('day').format(TIME_FORMAT) &&\n startDate.isBefore(endDate)\n )\n}\n\nexport const hoursOfDayKeys = Object.values(HOUR_OF_DAY)\n","/* eslint-disable no-unused-vars */\nimport React from 'react'\nimport { IEvent } from '../types'\nimport { CALENDAR_TYPE, EVENT_TYPES } from '../constants'\n\nexport const Left = () => (\n <svg\n width='16'\n height='16'\n viewBox='0 0 16 16'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n d='M9.68642 12.6136C9.59868 12.6141 9.5117 12.5973 9.43048 12.5641C9.34925 12.5309 9.27538 12.482 9.21308 12.4202L5.25975 8.47356C5.13793 8.3458 5.06887 8.17674 5.06642 8.00023C5.06591 7.91249 5.08273 7.82551 5.1159 7.74429C5.14908 7.66306 5.19796 7.58919 5.25975 7.52689L9.21308 3.58023C9.34062 3.47101 9.50467 3.41394 9.67245 3.42042C9.84024 3.4269 9.9994 3.49645 10.1181 3.61518C10.2369 3.73391 10.3064 3.89307 10.3129 4.06086C10.3194 4.22864 10.2623 4.39269 10.1531 4.52023L6.66642 8.00023L10.1398 11.4802C10.2639 11.6051 10.3336 11.7741 10.3336 11.9502C10.3336 12.1264 10.2639 12.2953 10.1398 12.4202C10.0189 12.5402 9.85668 12.6094 9.68642 12.6136Z'\n fill='#252F4A'\n />\n </svg>\n)\n\nexport const Right = () => (\n <svg\n width='16'\n height='16'\n viewBox='0 0 16 16'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n d='M6.84715 12.6666C6.75894 12.6662 6.67169 12.6483 6.59044 12.614C6.50919 12.5797 6.43556 12.5295 6.37381 12.4666C6.24965 12.3416 6.17995 12.1727 6.17995 11.9966C6.17995 11.8204 6.24965 11.6515 6.37381 11.5266L9.85381 7.99989L6.37381 4.55322C6.31165 4.49019 6.26252 4.41553 6.22921 4.3335C6.19591 4.25148 6.17908 4.1637 6.1797 4.07517C6.18032 3.98665 6.19837 3.89911 6.23282 3.81756C6.26727 3.73601 6.31744 3.66205 6.38048 3.59989C6.44351 3.53773 6.51817 3.48859 6.6002 3.45529C6.68222 3.42198 6.77 3.40516 6.85853 3.40578C6.94705 3.4064 7.03459 3.42445 7.11614 3.4589C7.19769 3.49334 7.27165 3.54352 7.33381 3.60655L11.2805 7.55989C11.4046 7.6848 11.4743 7.85376 11.4743 8.02989C11.4743 8.20601 11.4046 8.37498 11.2805 8.49989L7.33381 12.4466C7.27224 12.5148 7.19722 12.5696 7.11347 12.6074C7.02972 12.6453 6.93905 12.6654 6.84715 12.6666Z'\n fill='#252F4A'\n />\n </svg>\n)\n\nexport const Book = () => (\n <svg\n width='20'\n height='20'\n viewBox='0 0 20 20'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M7.36051 3.61971C6.37671 3.45978 5.3735 3.45977 4.38969 3.61969C4.04645 3.67549 3.70164 3.7585 2.93716 3.94368C2.81469 3.97335 2.74354 3.99072 2.69032 4.00583C2.6569 4.01532 2.64293 4.02058 2.6395 4.02196C2.6395 4.02196 2.6395 4.02196 2.6395 4.02196C2.57147 4.05542 2.52252 4.11776 2.50609 4.19125C2.50556 4.19493 2.50375 4.2097 2.5024 4.24419C2.50024 4.29939 2.50011 4.37254 2.50011 4.49846V15.8196C2.50011 15.9083 2.50015 15.9626 2.50105 16.0033C2.50163 16.0294 2.50244 16.041 2.50265 16.0437C2.52153 16.1749 2.64055 16.2691 2.7739 16.2564C2.7766 16.2559 2.78803 16.254 2.81375 16.2484C2.85362 16.2397 2.90644 16.2269 2.99264 16.206L3.00819 16.2023C3.34117 16.1216 3.52697 16.0766 3.71304 16.0384C5.13954 15.7457 6.61067 15.7457 8.03717 16.0384C8.22321 16.0766 8.40898 16.1216 8.74185 16.2022L9.25011 16.3253V4.04958L8.81305 3.94371C8.04857 3.75852 7.70375 3.6755 7.36051 3.61971ZM10.7501 4.04959V16.3253L11.2582 16.2023C11.5912 16.1216 11.777 16.0766 11.963 16.0384C13.3895 15.7457 14.8607 15.7457 16.2872 16.0384C16.4732 16.0766 16.659 16.1216 16.992 16.2023L17.0076 16.206C17.0938 16.2269 17.1466 16.2397 17.1865 16.2484C17.2256 16.257 17.2317 16.257 17.2242 16.2562C17.3584 16.2701 17.4786 16.1756 17.4976 16.0437C17.4978 16.041 17.4986 16.0294 17.4992 16.0033C17.5001 15.9626 17.5001 15.9083 17.5001 15.8196V4.49852C17.5001 4.37258 17.5 4.29943 17.4978 4.24423C17.4965 4.20973 17.4947 4.19496 17.4941 4.19129C17.4777 4.11779 17.4287 4.05545 17.3607 4.022C17.3573 4.02062 17.3433 4.01536 17.3099 4.00587C17.2567 3.99075 17.1855 3.97338 17.063 3.94372C16.2985 3.75853 15.9537 3.67551 15.6104 3.61972C14.6267 3.45981 13.6235 3.45981 12.6398 3.61972C12.2965 3.67551 11.9517 3.75853 11.1872 3.94372L10.7501 4.04959ZM4.14902 2.13913C5.29223 1.95329 6.45799 1.9533 7.6012 2.13914C8.00774 2.20523 8.41052 2.30281 9.13225 2.47765L9.80168 2.63981C9.87479 2.65752 9.91513 2.66723 9.94602 2.67381C9.97272 2.67949 9.97804 2.67967 9.97581 2.67945C9.99197 2.68102 10.0082 2.68102 10.0244 2.67945C10.0222 2.67967 10.0275 2.67949 10.0542 2.67381C10.0851 2.66723 10.1254 2.65752 10.1985 2.63982L10.868 2.47765C11.5897 2.30281 11.9925 2.20524 12.3991 2.13915C13.5423 1.95333 14.708 1.95333 15.8511 2.13915C16.2577 2.20524 16.6605 2.30281 17.3822 2.47765L17.4162 2.48588C17.4319 2.48969 17.4478 2.4935 17.4637 2.49732C17.6482 2.5417 17.8425 2.58844 18.0149 2.67215C18.4972 2.9064 18.8457 3.34888 18.9599 3.87292C19.0008 4.0602 19.0005 4.26011 19.0002 4.44971C19.0001 4.46606 19.0001 4.48234 19.0001 4.49852V15.8196C19.0001 15.8317 19.0001 15.8438 19.0001 15.8559C19.0003 15.9884 19.0004 16.1238 18.9843 16.2426C18.8576 17.1797 18.0092 17.8457 17.0693 17.7482C16.9501 17.7358 16.8185 17.7038 16.6896 17.6724C16.6779 17.6696 16.6661 17.6667 16.6544 17.6639C16.3018 17.5784 16.1428 17.54 15.9857 17.5078C14.7581 17.2559 13.4921 17.2559 12.2645 17.5078C12.1074 17.54 11.9484 17.5784 11.5958 17.6639L10.5517 17.9168C10.5427 17.9189 10.5337 17.9211 10.5246 17.9233C10.4134 17.9504 10.2943 17.9794 10.1697 17.9915C10.0569 18.0025 9.9433 18.0025 9.83048 17.9915C9.70589 17.9794 9.5868 17.9504 9.47557 17.9233C9.4665 17.9211 9.45749 17.9189 9.44854 17.9168L8.40443 17.6639C8.05182 17.5784 7.89278 17.54 7.7357 17.5078C6.50811 17.2559 5.2421 17.2559 4.01452 17.5078C3.85743 17.54 3.6984 17.5784 3.34578 17.6639C3.33408 17.6667 3.32234 17.6696 3.31058 17.6724C3.18171 17.7038 3.05015 17.7358 2.93091 17.7482C1.991 17.8457 1.14259 17.1797 1.01588 16.2426C0.999808 16.1238 0.999947 15.9883 1.00008 15.8559C1.00009 15.8438 1.00011 15.8317 1.00011 15.8196V4.49846C1.00011 4.48228 1.00008 4.466 1.00005 4.44965C0.999745 4.26006 0.999419 4.06018 1.04026 3.8729C1.15455 3.34885 1.50299 2.90636 1.98536 2.67211C2.15773 2.5884 2.35205 2.54166 2.53655 2.49729C2.55245 2.49346 2.56828 2.48965 2.58402 2.48584L2.61796 2.47762C3.3397 2.30278 3.74248 2.20521 4.14902 2.13913Z'\n fill='#025EFF'\n />\n </svg>\n)\n\nexport const CalendarDelete = () => (\n <svg\n width='20'\n height='20'\n viewBox='0 0 20 20'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M6.75 1C7.16421 1 7.5 1.33579 7.5 1.75V3H12.5V1.75C12.5 1.33579 12.8358 1 13.25 1C13.6642 1 14 1.33579 14 1.75V3H16.25C17.7688 3 19 4.23122 19 5.75V8.75C19 9.16421 18.6642 9.5 18.25 9.5H2.5V16.25C2.5 16.9404 3.05964 17.5 3.75 17.5H8.75C9.16421 17.5 9.5 17.8358 9.5 18.25C9.5 18.6642 9.16421 19 8.75 19H3.75C2.23122 19 1 17.7688 1 16.25V5.75C1 4.23122 2.23122 3 3.75 3H6V1.75C6 1.33579 6.33579 1 6.75 1ZM6 4.5H3.75C3.05964 4.5 2.5 5.05964 2.5 5.75V8H17.5V5.75C17.5 5.05964 16.9404 4.5 16.25 4.5H14V5.25C14 5.66421 13.6642 6 13.25 6C12.8358 6 12.5 5.66421 12.5 5.25V4.5H7.5V5.25C7.5 5.66421 7.16421 6 6.75 6C6.33579 6 6 5.66421 6 5.25V4.5ZM12 15.75C12 15.3358 12.3358 15 12.75 15H19.25C19.6642 15 20 15.3358 20 15.75C20 16.1642 19.6642 16.5 19.25 16.5H12.75C12.3358 16.5 12 16.1642 12 15.75Z'\n fill='#D20306'\n />\n </svg>\n)\n\nexport const CalendarAccept = () => (\n <svg\n width='20'\n height='20'\n viewBox='0 0 20 20'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <g clipPath='url(#clip0_678_4877)'>\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M6.75 1C7.16421 1 7.5 1.33579 7.5 1.75V3H12.5V1.75C12.5 1.33579 12.8358 1 13.25 1C13.6642 1 14 1.33579 14 1.75V3H16.25C17.7688 3 19 4.23122 19 5.75V8.75C19 9.16421 18.6642 9.5 18.25 9.5H2.5V16.25C2.5 16.9404 3.05964 17.5 3.75 17.5H8.75C9.16421 17.5 9.5 17.8358 9.5 18.25C9.5 18.6642 9.16421 19 8.75 19H3.75C2.23122 19 1 17.7688 1 16.25V5.75C1 4.23122 2.23122 3 3.75 3H6V1.75C6 1.33579 6.33579 1 6.75 1ZM6 4.5H3.75C3.05964 4.5 2.5 5.05964 2.5 5.75V8H17.5V5.75C17.5 5.05964 16.9404 4.5 16.25 4.5H14V5.25C14 5.66421 13.6642 6 13.25 6C12.8358 6 12.5 5.66421 12.5 5.25V4.5H7.5V5.25C7.5 5.66421 7.16421 6 6.75 6C6.33579 6 6 5.66421 6 5.25V4.5ZM19.765 13.2047C20.0661 13.4891 20.0797 13.9638 19.7953 14.265L15.5453 18.765C15.4014 18.9173 15.2005 19.0025 14.991 18.9999C14.7815 18.9974 14.5827 18.9074 14.4425 18.7517L12.1925 16.2517C11.9154 15.9438 11.9404 15.4696 12.2483 15.1925C12.5562 14.9154 13.0304 14.9404 13.3075 15.2483L15.0133 17.1436L18.7047 13.235C18.9891 12.9339 19.4638 12.9203 19.765 13.2047Z'\n fill='#07AF17'\n />\n </g>\n <defs>\n <clipPath id='clip0_678_4877'>\n <rect width='20' height='20' fill='white' />\n </clipPath>\n </defs>\n </svg>\n)\n\nexport const Star = () => (\n <svg\n width='20'\n height='20'\n viewBox='0 0 20 20'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M10.0928 2.52324C9.99905 2.47488 9.86181 2.50026 9.79335 2.64522L8.00799 6.42557C7.76215 6.94613 7.27807 7.32297 6.69953 7.41082L2.70736 8.01703C2.66367 8.02366 2.61758 8.04593 2.57857 8.08775C2.47149 8.20255 2.47467 8.39827 2.58316 8.50878L5.47192 11.4514C5.87611 11.8631 6.05323 12.4463 5.96057 13.0109L5.27863 17.1659C5.2674 17.2343 5.27853 17.3035 5.30766 17.3614C5.3787 17.5027 5.51526 17.5255 5.60897 17.474L9.17967 15.5123C9.69201 15.2308 10.3079 15.2308 10.8202 15.5123L14.3909 17.474C14.434 17.4977 14.48 17.5045 14.5234 17.4967C14.5864 17.4854 14.6553 17.4449 14.7056 17.3752C14.754 17.3081 14.7706 17.2347 14.7603 17.1681L14.0393 13.0109C13.9466 12.4463 14.1238 11.8631 14.5279 11.4514L17.4167 8.50878C17.4568 8.46792 17.4872 8.40957 17.4968 8.34084C17.5227 8.15465 17.3972 8.03293 17.2925 8.01703L13.3003 7.41082C12.7218 7.32297 12.2377 6.94613 11.9919 6.42557L10.2065 2.64522C10.1788 2.58657 10.1367 2.54586 10.0928 2.52324ZM8.437 2.00466C8.85086 1.12835 9.89685 0.734429 10.7804 1.1901C11.1257 1.36818 11.3985 1.65664 11.5629 2.00466L13.3482 5.78501C13.3898 5.87307 13.4613 5.91807 13.5255 5.92782L17.5177 6.53403C18.4915 6.6819 19.1133 7.60658 18.9825 8.54743C18.9296 8.92748 18.7578 9.28392 18.4871 9.5596L15.5984 12.5022C15.5379 12.5637 15.5029 12.662 15.5191 12.7656L16.2401 16.9229C16.4008 17.902 15.7151 18.807 14.788 18.9732C14.4037 19.042 14.0097 18.976 13.6686 18.7887L10.0979 16.8269C10.0354 16.7926 9.96447 16.7926 9.90194 16.8269L6.33123 18.7887C5.46031 19.2671 4.40376 18.9024 3.96767 18.0356C3.79485 17.692 3.7363 17.3015 3.79843 16.9229L4.48038 12.7679C4.49751 12.6635 4.4624 12.5642 4.40151 12.5022L1.51275 9.5596C0.840839 8.87517 0.828048 7.76534 1.48168 7.0646C1.74558 6.78168 2.09641 6.59261 2.48217 6.53403L6.47434 5.92782C6.53853 5.91807 6.61006 5.87307 6.65165 5.78501L8.437 2.00466Z'\n fill='#F57C00'\n />\n </svg>\n)\n\nexport const TestIcon = () => (\n <svg\n width='14'\n height='15'\n viewBox='0 0 14 15'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n d='M4.38413 3.03685H7.85239C8.24984 3.03685 8.52203 2.6436 8.37463 2.28174L7.99366 1.34663C7.90843 1.13708 7.7017 1 7.47142 1H4.76462C4.53482 1 4.32762 1.13754 4.24238 1.34663L3.86189 2.28174C3.71449 2.6436 3.98668 3.03685 4.38413 3.03685Z'\n fill='#FFB800'\n />\n <path\n d='M12.7209 8.27831C12.3488 7.9183 11.7508 7.9183 11.3788 8.27831L10.9775 8.67433L12.3206 9.98607L12.7209 9.59375C13.0929 9.22912 13.0929 8.64294 12.7209 8.27831Z'\n fill='#FFB800'\n />\n <path\n d='M10.4791 9.16455L8.18108 11.4169C8.12928 11.4631 8.09631 11.5277 8.0869 11.597L7.90795 12.6124C7.87028 12.8385 8.06806 13.0324 8.29881 12.9955L9.33952 12.8247C9.40545 12.8108 9.47138 12.7785 9.51847 12.7324L11.8212 10.4754L10.4791 9.16455Z'\n fill='#FFB800'\n />\n <path\n d='M9.68361 2.01953H9.02857L9.03092 2.02553C9.18727 2.40816 9.13923 2.84156 8.90331 3.18312C8.66738 3.52513 8.27464 3.7296 7.85317 3.7296H4.38444C3.96297 3.7296 3.57023 3.52559 3.33431 3.18312C3.09791 2.8411 3.05035 2.40816 3.20622 2.02507L3.20857 2.01953H2.55401C1.69224 2.01953 1 2.70263 1 3.54267V11.4768C1 12.3169 1.69224 13 2.55401 13H7.25888C7.20285 12.8412 7.1826 12.6709 7.21085 12.5006L7.39074 11.4791C7.41805 11.2728 7.53154 11.0591 7.70625 10.904L10.196 8.46286L10.8764 7.79037C10.9852 7.68514 11.1081 7.60298 11.2367 7.5319V3.54267C11.2376 2.70263 10.5407 2.01953 9.68361 2.01953ZM3.90128 9.69568H3.47229C3.23824 9.69568 3.04846 9.50967 3.04846 9.28028C3.04846 9.05088 3.23824 8.86488 3.47229 8.86488H3.90176C4.1358 8.86488 4.32558 9.05088 4.32558 9.28028C4.32558 9.50967 4.13533 9.69568 3.90128 9.69568ZM3.90128 7.17512H3.47229C3.23824 7.17512 3.04846 6.98911 3.04846 6.75972C3.04846 6.53032 3.23824 6.34432 3.47229 6.34432H3.90176C4.1358 6.34432 4.32558 6.53032 4.32558 6.75972C4.32558 6.98911 4.13533 7.17512 3.90128 7.17512ZM7.69683 9.69522H5.60128C5.36723 9.69522 5.17745 9.50921 5.17745 9.27981C5.17745 9.05042 5.36723 8.86441 5.60128 8.86441H7.69683C7.93087 8.86441 8.12065 9.05042 8.12065 9.27981C8.12065 9.50921 7.93135 9.69522 7.69683 9.69522ZM8.76533 7.17512H5.60033C5.36629 7.17512 5.17651 6.98911 5.17651 6.75972C5.17651 6.53032 5.36629 6.34432 5.60033 6.34432H8.76533C8.99937 6.34432 9.18915 6.53032 9.18915 6.75972C9.18915 6.98911 8.99937 7.17512 8.76533 7.17512Z'\n fill='#FFB800'\n />\n </svg>\n)\n\nexport const HiddenEyeIcon = () => (\n <svg\n width='16'\n height='17'\n viewBox='0 0 16 17'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n d='M7.92867 10.5001C8.45911 10.5001 8.96782 10.2894 9.34289 9.91436C9.71796 9.53929 9.92868 9.03058 9.92868 8.50015C9.92868 8.44158 9.926 8.38354 9.921 8.32622L7.75475 10.4925C7.81207 10.4975 7.86992 10.5001 7.92867 10.5001ZM14.5487 2.31372L13.7858 1.55157C13.759 1.5248 13.7227 1.50977 13.6848 1.50977C13.647 1.50977 13.6106 1.5248 13.5839 1.55157L11.6317 3.50425C10.5548 2.9539 9.34427 2.67872 8.0001 2.67872C4.56796 2.67872 2.00725 4.46622 0.31796 8.04122C0.250059 8.185 0.214844 8.34203 0.214844 8.50104C0.214844 8.66005 0.250059 8.81708 0.31796 8.96086C0.99296 10.3826 1.80576 11.5222 2.75635 12.3796L0.867246 14.268C0.840475 14.2948 0.825437 14.3311 0.825437 14.369C0.825437 14.4069 0.840475 14.4432 0.867246 14.47L1.62957 15.2323C1.65636 15.2591 1.69268 15.2741 1.73055 15.2741C1.76842 15.2741 1.80474 15.2591 1.83153 15.2323L14.5487 2.51586C14.562 2.50259 14.5725 2.48684 14.5797 2.46949C14.5869 2.45215 14.5906 2.43356 14.5906 2.41479C14.5906 2.39602 14.5869 2.37743 14.5797 2.36008C14.5725 2.34274 14.562 2.32698 14.5487 2.31372ZM4.78582 8.50015C4.78577 7.9573 4.92632 7.4237 5.1938 6.95132C5.46127 6.47894 5.84653 6.08389 6.31206 5.80466C6.77758 5.52543 7.30749 5.37154 7.85017 5.35798C8.39285 5.34442 8.92979 5.47166 9.40868 5.72729L8.54046 6.5955C8.19032 6.48339 7.81606 6.46989 7.45875 6.55648C7.10143 6.64307 6.77488 6.82641 6.51491 7.08638C6.25494 7.34635 6.0716 7.67291 5.98501 8.03022C5.89841 8.38753 5.91192 8.76179 6.02403 9.11193L5.15582 9.98015C4.91218 9.52493 4.78506 9.01646 4.78582 8.50015Z'\n fill='#DCDDDD'\n />\n <path\n d='M15.6819 8.03917C15.0533 6.71536 14.3052 5.6359 13.4374 4.80078L10.8635 7.37489C11.0805 7.94206 11.1286 8.55992 11.002 9.15383C10.8754 9.74774 10.5795 10.2923 10.1501 10.7217C9.72073 11.1511 9.17618 11.4469 8.58227 11.5735C7.98836 11.7001 7.3705 11.652 6.80333 11.4351L4.62012 13.6183C5.63297 14.087 6.75952 14.3213 7.99976 14.3213C11.4319 14.3213 13.9926 12.5338 15.6819 8.95882C15.7498 8.81504 15.785 8.65801 15.785 8.499C15.785 8.33999 15.7498 8.18295 15.6819 8.03917Z'\n fill='#DCDDDD'\n />\n </svg>\n)\n\nexport const EyeIcon = () => (\n <svg\n width='16'\n height='17'\n viewBox='0 0 16 17'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n d='M5.92868 8.50014C5.92868 9.03057 6.13939 9.53928 6.51446 9.91435C6.88953 10.2894 7.39824 10.5001 7.92868 10.5001C8.45911 10.5001 8.96782 10.2894 9.34289 9.91435C9.71796 9.53928 9.92868 9.03057 9.92868 8.50014C9.92868 7.96971 9.71796 7.461 9.34289 7.08593C8.96782 6.71085 8.45911 6.50014 7.92868 6.50014C7.39824 6.50014 6.88953 6.71085 6.51446 7.08593C6.13939 7.461 5.92868 7.96971 5.92868 8.50014ZM15.6822 8.03943C13.9894 4.47335 11.4305 2.67871 8.0001 2.67871C4.56796 2.67871 2.01082 4.47335 0.31796 8.04121C0.250059 8.18499 0.214844 8.34203 0.214844 8.50103C0.214844 8.66004 0.250059 8.81707 0.31796 8.96085C2.01082 12.5269 4.56975 14.3216 8.0001 14.3216C11.4322 14.3216 13.9894 12.5269 15.6822 8.95907C15.8197 8.66978 15.8197 8.33407 15.6822 8.03943ZM7.92868 11.643C6.19296 11.643 4.78582 10.2359 4.78582 8.50014C4.78582 6.76443 6.19296 5.35728 7.92868 5.35728C9.66439 5.35728 11.0715 6.76443 11.0715 8.50014C11.0715 10.2359 9.66439 11.643 7.92868 11.643Z'\n fill='#DCDDDD'\n />\n </svg>\n)\n\nexport const FlagIcon = () => (\n <svg\n width='14'\n height='15'\n viewBox='0 0 14 15'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n d='M11.229 5.1665L12.7165 3.18317C12.7813 3.09646 12.8208 2.99343 12.8304 2.8856C12.8401 2.77776 12.8196 2.66936 12.7711 2.57252C12.7227 2.47568 12.6483 2.39422 12.5563 2.33723C12.4642 2.28025 12.3581 2.24999 12.2498 2.24984H5.24984C5.24984 2.09513 5.18838 1.94675 5.07898 1.83736C4.96959 1.72796 4.82121 1.6665 4.6665 1.6665C4.51179 1.6665 4.36342 1.72796 4.25402 1.83736C4.14463 1.94675 4.08317 2.09513 4.08317 2.24984V12.1665H3.49984C3.34513 12.1665 3.19675 12.228 3.08736 12.3374C2.97796 12.4468 2.9165 12.5951 2.9165 12.7498C2.9165 12.9045 2.97796 13.0529 3.08736 13.1623C3.19675 13.2717 3.34513 13.3332 3.49984 13.3332H5.83317C5.98788 13.3332 6.13625 13.2717 6.24565 13.1623C6.35505 13.0529 6.4165 12.9045 6.4165 12.7498C6.4165 12.5951 6.35505 12.4468 6.24565 12.3374C6.13625 12.228 5.98788 12.1665 5.83317 12.1665H5.24984V8.08317H12.2498C12.3581 8.08302 12.4642 8.05276 12.5563 7.99578C12.6483 7.93879 12.7227 7.85733 12.7711 7.76049C12.8196 7.66365 12.8401 7.55525 12.8304 7.44741C12.8208 7.33957 12.7813 7.23654 12.7165 7.14984L11.229 5.1665Z'\n fill='#FFB800'\n />\n </svg>\n)\n\nexport const GoldStarIcon = () => (\n <svg\n width='14'\n height='15'\n viewBox='0 0 14 15'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <g clipPath='url(#clip0_23522_33890)'>\n <path\n d='M13.9308 5.27509L9.73388 4.66514L7.85774 0.86162C7.8065 0.757482 7.7222 0.67318 7.61806 0.621937C7.35689 0.493005 7.03951 0.600449 6.90893 0.86162L5.03279 4.66514L0.835862 5.27509C0.720153 5.29162 0.614362 5.34617 0.533366 5.42882C0.435446 5.52946 0.381488 5.66486 0.383347 5.80527C0.385207 5.94568 0.442733 6.0796 0.543284 6.17762L3.57982 9.13811L2.86242 13.3185C2.8456 13.4158 2.85636 13.5158 2.89348 13.6072C2.93061 13.6987 2.99261 13.7779 3.07246 13.8359C3.15231 13.8939 3.24682 13.9283 3.34526 13.9353C3.4437 13.9424 3.54213 13.9216 3.62941 13.8756L7.38333 11.9019L11.1373 13.8756C11.2397 13.9301 11.3588 13.9483 11.4728 13.9285C11.7604 13.8789 11.9538 13.6061 11.9042 13.3185L11.1869 9.13811L14.2234 6.17762C14.306 6.09662 14.3606 5.99083 14.3771 5.87512C14.4217 5.58585 14.2201 5.31807 13.9308 5.27509Z'\n fill='#FFB800'\n />\n </g>\n <defs>\n <clipPath id='clip0_23522_33890'>\n <rect\n width='14'\n height='14'\n fill='white'\n transform='translate(0 0.5)'\n />\n </clipPath>\n </defs>\n </svg>\n)\n\nexport const TagIcon = () => (\n <svg\n width='20'\n height='21'\n viewBox='0 0 20 21'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n d='M11.25 1.125L0 12.375L6.875 19.25L18.125 8V1.125H11.25ZM14.375 6.125C14.1278 6.125 13.8861 6.05169 13.6805 5.91434C13.475 5.77699 13.3148 5.58176 13.2201 5.35335C13.1255 5.12495 13.1008 4.87361 13.149 4.63114C13.1972 4.38866 13.3163 4.16593 13.4911 3.99112C13.6659 3.8163 13.8887 3.69725 14.1311 3.64902C14.3736 3.60079 14.6249 3.62554 14.8534 3.72015C15.0818 3.81476 15.277 3.97498 15.4143 4.18054C15.5517 4.3861 15.625 4.62777 15.625 4.875C15.625 5.20652 15.4933 5.52446 15.2589 5.75888C15.0245 5.9933 14.7065 6.125 14.375 6.125Z'\n fill='#21272A'\n />\n <path\n d='M18.75 3V8.625L8.47266 18.9023L9.45313 19.875L20 9.25V3H18.75Z'\n fill='#21272A'\n />\n </svg>\n)\n\nexport const EducationIcon = () => (\n <svg\n width='20'\n height='21'\n viewBox='0 0 20 21'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <g clipPath='url(#clip0_22306_18116)'>\n <path\n d='M10 14.9699L3.75 11.3984V15.243L10 18.7148L16.25 15.243V11.3984L10 14.9699Z'\n fill='#21272A'\n />\n <path\n d='M20.0098 8.0002L10 2.28027L-0.00976562 8.0002L10 13.7201L18.125 9.07715V15.5002H20V8.00566L20.0098 8.0002Z'\n fill='#21272A'\n />\n </g>\n <defs>\n <clipPath id='clip0_22306_18116'>\n <rect\n width='20'\n height='20'\n fill='white'\n transform='translate(0 0.5)'\n />\n </clipPath>\n </defs>\n </svg>\n)\n\nexport const FilterIcon = () => {\n return (\n <svg\n width='35'\n height='35'\n viewBox='0 0 35 35'\n fill='currentColor'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n d='M26.5 8.4961V26.5036H8.5V8.4961H26.5ZM28 6.99609L7 6.99619L7 28.0036L28 27.9961V6.99609ZM10.2625 9.9886H17.7625V24.9886H10.2625V9.9886Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n\nexport const LeftArrowIcon = () => {\n return (\n <svg\n width='16'\n height='17'\n viewBox='0 0 16 17'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n d='M11.3125 3.36853V13.631C11.3125 13.9388 10.9875 14.1107 10.7656 13.9201L4.81563 8.78884C4.64531 8.64196 4.64531 8.35915 4.81563 8.21071L10.7656 3.07946C10.9875 2.88884 11.3125 3.06071 11.3125 3.36853Z'\n fill='#404041'\n />\n </svg>\n )\n}\n\nexport const RightArrowIcon = () => {\n return (\n <svg\n width='8'\n height='11'\n viewBox='0 0 8 11'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n d='M0.6875 0.368526L0.6875 10.631C0.6875 10.9388 1.0125 11.1107 1.23438 10.9201L7.18437 5.78884C7.35469 5.64196 7.35469 5.35915 7.18437 5.21071L1.23438 0.079463C1.0125 -0.111162 0.6875 0.0607128 0.6875 0.368526Z'\n fill='#404041'\n />\n </svg>\n )\n}\n\nconst getIconEvent = {\n [EVENT_TYPES.TEACHING]: <Book />,\n [EVENT_TYPES.BUSY]: <CalendarDelete />,\n [EVENT_TYPES.HOLIDAY]: <Star />,\n [EVENT_TYPES.OTHER]: <CalendarAccept />,\n [EVENT_TYPES.LIVE_ONLINE]: ''\n} as const\n\nexport const getIconforEvent = (event: IEvent) => {\n if (event.source === CALENDAR_TYPE.LMS) {\n const icon = []\n if (event.isCaseStudy) {\n icon.push(<GoldStarIcon />)\n }\n if (event.isTest) {\n icon.push(<TestIcon />)\n }\n\n if (event.isKeyContentBefore) {\n icon.push(<FlagIcon />)\n }\n\n return icon\n } else {\n return getIconEvent[event.type]\n }\n}\n","/* eslint-disable no-unused-vars */\nimport React from 'react'\nimport { ButtonColor, ButtonType } from '../../../types'\nimport styles from '../SAPPCalendar.module.css'\n\ninterface IButtonProps {\n type?: ButtonType\n color?: ButtonColor\n hoverColor?: ButtonColor\n onClick?: () => void\n children: any\n}\n\nconst Button = ({\n type = 'button',\n color = 'default',\n onClick,\n children\n}: IButtonProps) => {\n console.log('value:', styles[`btn-${color}`])\n return (\n <button\n type={type}\n onClick={onClick}\n className={`${styles.btn} ${styles[`btn-${color}`]}`}\n >\n {children}\n </button>\n )\n}\n\nexport default Button\n","import { clsx } from 'clsx'\nimport React from 'react'\nimport styles from '../SAPPCalendar.module.css'\n\ninterface IIconProps {\n icon: React.ReactNode\n onClick?: () => void\n className?: string\n}\n\nconst Icon = ({ icon, onClick, className }: IIconProps) => {\n return (\n <div\n className={clsx(\n styles.icon,\n onClick && styles['cursor-pointer'],\n className\n )}\n onClick={onClick}\n >\n {icon}\n </div>\n )\n}\n\nexport default Icon\n","/* eslint-disable no-unused-vars */\nimport { DatePicker } from 'antd'\nimport dayjs, { Dayjs } from 'dayjs'\nimport React, { Dispatch, SetStateAction } from 'react'\nimport { Left, Right } from '../../../icons'\nimport { CalendarMode } from '../../../types'\nimport Button from '../common/Button'\nimport Icon from '../common/Icon'\n// TODO: config đường dẫn dạng @utils, @component,... tương ứng với folder nào ( sửa tất cả e nhé)\nimport { customDateFormat } from '../../../utils'\nimport styles from '../SAPPCalendar.module.css'\n\ninterface IHeaderCalendarProps {\n title?: string\n showTeacherName?: boolean\n currentDate: Dayjs\n setCurrentDate: Dispatch<SetStateAction<Dayjs>>\n calendarMode: CalendarMode\n setCalendarMode: Dispatch<SetStateAction<CalendarMode>>\n}\n\nconst HeaderCalendar = ({\n title,\n showTeacherName,\n currentDate,\n setCurrentDate,\n calendarMode,\n setCalendarMode\n}: IHeaderCalendarProps) => {\n const handleChangeDate = (date: Dayjs) => {\n setCurrentDate(date)\n }\n\n const handleChangeMode = (mode: CalendarMode) => {\n setCalendarMode(mode)\n setCurrentDate(dayjs())\n }\n\n return (\n <div className={styles['header-calendar']}>\n <div className={styles['header-calendar__nav']}>\n <Icon\n icon={<Left />}\n onClick={() =>\n handleChangeDate(currentDate.subtract(1, calendarMode))\n }\n />\n <DatePicker\n picker={calendarMode === 'day' ? 'date' : calendarMode}\n onChange={handleChangeDate}\n format={(value) => customDateFormat(value, 'MMMM, YYYY')}\n value={currentDate}\n allowClear={false}\n suffixIcon={null}\n className={styles['header-calendar__date-picker']}\n size='large'\n />\n <Icon\n icon={<Right />}\n onClick={() => handleChangeDate(currentDate.add(1, calendarMode))}\n />\n </div>\n {showTeacherName && (\n <div className={styles['header-calendar__title']}>{title}</div>\n )}\n <div className={styles['header-calendar__controls']}>\n <Button onClick={() => handleChangeDate(dayjs())}>Today</Button>\n <div className={styles['header-calendar__divider']} />\n <Button\n color={calendarMode === 'month' ? 'primary' : 'default'}\n onClick={() => handleChangeMode('month')}\n >\n Month\n </Button>\n <Button\n color={calendarMode === 'week' ? 'primary' : 'default'}\n onClick={() => handleChangeMode('week')}\n >\n Week\n </Button>\n </div>\n </div>\n )\n}\n\nexport default HeaderCalendar\n","import { Tooltip } from 'antd'\nimport { TooltipPlacement } from 'antd/es/tooltip'\nimport React from 'react'\nimport styles from '../SAPPCalendar.module.css'\n\ninterface ICustomTooltipProps {\n title: React.ReactNode\n children: React.ReactNode\n placement?: TooltipPlacement\n}\n\nconst CustomTooltip = ({\n title,\n children,\n placement = 'top'\n}: ICustomTooltipProps) => {\n return (\n <Tooltip\n color='#ffffff'\n title={<div className={styles['text-gray-600']}>{title}</div>}\n placement={placement}\n >\n <div>{children}</div>\n </Tooltip>\n )\n}\n\nexport default CustomTooltip\n","import React from 'react'\nimport { TIME_FORMAT } from '../../../constants'\n// eslint-disable-next-line no-unused-vars\nimport { IEvent } from '../../../types'\nimport { convertType, customDateFormat } from '../../../utils'\nimport styles from '../SAPPCalendar.module.css'\nimport CustomTooltip from '../common/CustomTooltip'\nimport { getIconforEvent } from '../../../icons'\n\ninterface IMonthlyEventProps {\n event: IEvent\n isSameMonth: boolean\n onEventDetail?: (event: IEvent) => void\n}\n\nconst MonthlyEvent = ({\n event,\n isSameMonth,\n onEventDetail\n}: IMonthlyEventProps) => {\n const formattedDate =\n customDateFormat(event.startDate, TIME_FORMAT) +\n ' - ' +\n customDateFormat(event.endDate, TIME_FORMAT)\n const formattedDateStart = customDateFormat(event.startDate, TIME_FORMAT)\n\n return (\n <React.Fragment>\n <li\n className={\n styles[`event-${isSameMonth ? convertType[event.type] : 'default'}`]\n }\n style={{ cursor: 'pointer' }}\n onClick={() => onEventDetail && onEventDetail(event)}\n >\n <div className={styles['monthly-event__title']}>\n <div className={styles['weekly-event__title_icon']}>\n {getIconforEvent(event)}\n </div>\n <CustomTooltip title={event.title}>\n {event?.title?.length > 5\n ? event?.title?.slice(0, 5) + '...'\n : event?.title}\n </CustomTooltip>\n </div>\n <div className={styles['monthly-event__date']}>\n <CustomTooltip title={formattedDate}>{formattedDate}</CustomTooltip>\n </div>\n <div className={styles['monthly-event__date_tablet']}>\n {getIconforEvent(event)}\n <CustomTooltip title={formattedDate}>\n {formattedDateStart}\n </CustomTooltip>\n </div>\n </li>\n </React.Fragment>\n )\n}\n\nexport default MonthlyEvent\n","/* eslint-disable no-unused-vars */\nimport dayjs, { Dayjs } from 'dayjs'\nimport React, { MouseEvent } from 'react'\nimport { IEvent } from '../../../types'\nimport CustomTooltip from '../common/CustomTooltip'\nimport styles from '../SAPPCalendar.module.css'\nimport MonthlyEvent from './MonthlyEvent'\n\ninterface IMonthlyCellProps {\n events: IEvent[]\n date: Dayjs\n currentDate: Dayjs\n onOpenDetail: (date: Date, events: IEvent[]) => void\n onOpenCreate: (date: Date) => void\n onEventDetail?: (event: IEvent) => void\n}\n\nconst MonthlyCell = ({\n currentDate,\n events,\n date,\n onOpenDetail,\n onOpenCreate,\n onEventDetail\n}: IMonthlyCellProps) => {\n const hasMore = events.length > 2\n const isSameMonth = currentDate.isSame(date, 'month')\n const isToday = dayjs().isSame(date, 'day')\n\n const handleOpenCreateModal = (e: MouseEvent<HTMLDivElement>) => {\n if (e.target !== e.currentTarget) return\n\n onOpenCreate(\n dayjs(date).hour(dayjs().hour()).minute(dayjs().minute()).toDate()\n )\n }\n\n return (\n <div\n className={`${styles['monthly-calendar__cell']} ${\n isToday\n ? styles['monthly-calendar__cell--active']\n : styles['border-gray-4']\n } ${isSameMonth ? styles['bg-white'] : styles['bg-button']}`}\n onClick={handleOpenCreateModal}\n >\n <div\n className={\n isSameMonth ? styles['text-black'] : styles['text-secondary-text']\n }\n >\n {date.format('DD')}\n </div>\n <ul onClick={() => onOpenDetail(date.toDate(), events)}>\n {events.slice(0, 2).map((event, index) => (\n <MonthlyEvent\n key={index}\n event={event}\n isSameMonth={isSameMonth}\n onEventDetail={onEventDetail}\n />\n ))}\n {hasMore && (\n <CustomTooltip\n placement='bottom'\n title={\n <div className={styles['calendar-tooltip']}>\n {events.slice(2, events.length).map((event, index) => (\n <MonthlyEvent\n key={index}\n event={event}\n isSameMonth={isSameMonth}\n onEventDetail={onEventDetail}\n />\n ))}\n </div>\n }\n >\n <div\n className={\n isSameMonth\n ? styles['text-info']\n : styles['text-secondary-text']\n }\n >\n +{Math.max(events.length - 2, 0)} More\n </div>\n </CustomTooltip>\n )}\n </ul>\n </div>\n )\n}\n\nexport default MonthlyCell\n","/* eslint-disable no-unused-vars */\nimport { Table } from 'antd'\nimport clsx from 'clsx'\nimport dayjs, { Dayjs } from 'dayjs'\nimport React from 'react'\nimport { DAYS_OF_WEEK } from '../../../constants'\nimport {\n EventsByDay,\n ICell,\n IEvent,\n INorm,\n INormOfWeek,\n ITableColumn\n} from '../../../types'\nimport { calculateNormOfWeek, daysOfWeekKeys } from '../../../utils'\nimport styles from '../SAPPCalendar.module.css'\nimport MonthlyCell from './MonthlyCell'\n\ninterface IMonthlyCalendarProps {\n currentDate: Dayjs\n startDate: Dayjs\n endDate: Dayjs\n events: IEvent[]\n norms: INorm[]\n showWeeklyNorm: boolean\n onOpenDetail: (date: Date, events: IEvent[]) => void\n onOpenCreate: (date: Date) => void\n onEventDetail?: (event: IEvent) => void\n loading?: boolean\n}\n\nconst getEventsOfWeek = (events: IEvent[], targetDate: Dayjs): EventsByDay =>\n daysOfWeekKeys.reduce((acc: EventsByDay, day, index) => {\n const currentDate = targetDate.add(index, 'day')\n\n acc[day] = {\n events: events.filter((event) =>\n dayjs(event.startDate).isSame(currentDate, 'date')\n ),\n date: currentDate\n }\n return acc\n }, {} as EventsByDay)\n\nconst MonthlyCalendar = ({\n currentDate,\n startDate,\n endDate,\n events,\n norms,\n showWeeklyNorm,\n onOpenDetail,\n onOpenCreate,\n onEventDetail,\n loading\n}: IMonthlyCalendarProps) => {\n const getTableColumns = () => {\n const weeklyNormColumn: ITableColumn = {\n title: (\n <div\n className={`${styles['monthly-calendar__title']} ${styles['monthly-calendar__title-active']}`}\n >\n Weekly Norm\n </div>\n ),\n dataIndex: 'norm',\n key: 'norm',\n width: 1,\n render: (value: INormOfWeek) => {\n const { normOfWeek, totalNorm } = value\n return (\n <div className={styles['weekly-norm__cell']}>\n <div\n className={clsx(\n styles['weekly-norm__value'],\n normOfWeek > totalNorm && styles['!text-error']\n )}\n >\n {`${normOfWeek}/${totalNorm}`}\n </div>\n </div>\n )\n }\n }\n\n const dayColumns: ITableColumn[] = Object.values(DAYS_OF_WEEK).map(\n (day, index) => ({\n title: (\n <div className={styles['monthly-calendar__title']}>\n {day.slice(0, 3)}\n </div>\n ),\n dataIndex: day,\n key: day,\n width: '14%',\n render: (value: ICell) => (\n <MonthlyCell\n key={index}\n events={value.events}\n date={value.date}\n currentDate={currentDate}\n onOpenDetail={onOpenDetail}\n onOpenCreate={onOpenCreate}\n onEventDetail={onEventDetail}\n />\n )\n })\n )\n\n return showWeeklyNorm ? [weeklyNormColumn, ...dayColumns] : dayColumns\n }\n\n const getWeeksOfFullMonth = () => {\n const weeks: Dayjs[] = []\n let targetDate = startDate.clone()\n\n while (targetDate.isBefore(endDate)) {\n weeks.push(targetDate)\n targetDate = targetDate.add(1, 'week')\n }\n\n return weeks\n }\n\n const getTableData = () => {\n const weeks = getWeeksOfFullMonth()\n\n const data = weeks.map((week, index) => {\n const eventsOfWeek = getEventsOfWeek(events, week)\n\n if (!showWeeklyNorm) {\n return {\n id: index,\n ...eventsOfWeek\n }\n }\n\n return {\n id: index,\n norm: calculateNormOfWeek(\n norms,\n events,\n week,\n week.endOf('week').add(1, 'day') // add 1 day because end of week is Saturday\n ),\n ...eventsOfWeek\n }\n })\n\n return data\n }\n\n return (\n <Table\n rowKey={(record) => record.id}\n columns={getTableColumns()}\n dataSource={getTableData()}\n pagination={false}\n rowHoverable={false}\n className={styles['monthly-calendar']}\n loading={loading}\n />\n )\n}\n\nexport default MonthlyCalendar\n","/* eslint-disable no-unused-vars */\nimport clsx from 'clsx'\nimport dayjs from 'dayjs'\nimport React from 'react'\nimport {\n BORDER_WEEKLY_CELL,\n MIN_HEIGHT_EVENT,\n MIN_HEIGHT_HIDE_ALL,\n MIN_HEIGHT_HIDE_DETAILS,\n MINUTES_PER_HOUR,\n TIME_FORMAT\n} from '../../../constants'\nimport { IEvent } from '../../../types'\nimport { convertType, customDateFormat } from '../../../utils'\nimport styles from '../SAPPCalendar.module.css'\nimport CustomTooltip from '../common/CustomTooltip'\nimport { getIconforEvent } from '../../../icons'\n\ninterface IWeeklyEventProps {\n event: IEvent\n onOpenDetail: (date: Date, events: IEvent[]) => void\n onEventDetail?: (event: IEvent) => void\n zIndex: number\n}\n\nconst calculateBoxSize = (\n startTime: Date,\n endTime: Date,\n isAllDay?: boolean\n) => {\n if (isAllDay) {\n return {\n top: 10,\n height: 50\n }\n }\n\n const minutes = dayjs(startTime).minute()\n const diffMinutes = dayjs(endTime).diff(startTime, 'minute', true)\n\n const top = Math.floor((minutes / MINUTES_PER_HOUR) * 100)\n const height = Math.floor((diffMinutes / MINUTES_PER_HOUR) * 100)\n const border = Math.floor(\n ((top + height) / MINUTES_PER_HOUR) * BORDER_WEEKLY_CELL\n )\n\n return {\n top,\n height: height + border\n }\n}\n\nconst WeeklyEvent = ({\n event,\n onOpenDetail,\n onEventDetail,\n zIndex\n}: IWeeklyEventProps) => {\n const { top, height } = calculateBoxSize(\n event.startDate,\n event.endDate,\n event.isAllDay\n )\n\n const isMinHeight = height < MIN_HEIGHT_EVENT\n\n const formattedDate =\n customDateFormat(event.startDate, TIME_FORMAT) +\n ' - ' +\n customDateFormat(event.endDate, TIME_FORMAT)\n\n return (\n <div\n className={clsx(\n styles[`event-${convertType[event.type]}`],\n isMinHeight && styles['event--min-height']\n )}\n onClick={() => {\n onOpenDetail(dayjs(event.startDate).toDate(), [event])\n onEventDetail && onEventDetail(event)\n }}\n style={{\n top: `${top}%`,\n height: `${Math.max(height, MIN_HEIGHT_EVENT)}%`,\n zIndex\n }}\n >\n <div\n className={clsx(\n styles['weekly-event'],\n height <= MIN_HEIGHT_HIDE_ALL && styles['weekly-event--collapse']\n )}\n >\n <div\n className={clsx(\n height <= MIN_HEIGHT_HIDE_DETAILS &&\n styles['weekly-event--collapse']\n )}\n >\n <div className={styles['weekly-event__title']}>\n <div className={styles['weekly-event__title_icon']}>\n {getIconforEvent(event)}\n </div>\n <CustomTooltip title={event.title}>\n {event.title.length > 5 ? event.title.slice(0, 5) + '...' : ''}\n </CustomTooltip>\n </div>\n <div className={styles['weekly-event__date']}>\n <CustomTooltip title={formattedDate}>{formattedDate}</CustomTooltip>\n </div>\n </div>\n </div>\n </div>\n )\n}\nexport default WeeklyEvent\n","/* eslint-disable prettier/prettier */\nimport dayjs, { Dayjs } from 'dayjs'\nimport React, { MouseEvent, useMemo } from 'react'\nimport { EVENT_TYPES } from '../../../constants'\nimport { IEvent } from '../../../types'\nimport CustomTooltip from '../common/CustomTooltip'\nimport styles from '../SAPPCalendar.module.css'\nimport WeeklyEvent from './WeeklyEvent'\n\ninterface IWeeklyCellProps {\n events: IEvent[]\n date: Dayjs\n onOpenDetail: (date: Date, events: IEvent[]) => void\n onOpenCreate: (date: Date) => void\n onEventDetail?: (event: IEvent) => void\n}\n\nconst WeeklyCell = ({\n events,\n date,\n onOpenDetail,\n onOpenCreate,\n onEventDetail\n}: IWeeklyCellProps) => {\n const isToday = dayjs().isSame(date, 'day')\n\n const handleOpenCreateModal = (e: MouseEvent<HTMLDivElement>) => {\n if (e.target !== e.currentTarget) return\n\n onOpenCreate(dayjs(date).toDate())\n }\n\n events.sort((a, b) =>\n a.type === EVENT_TYPES.BUSY && b.type !== EVENT_TYPES.BUSY ? 1 : -1\n )\n\n const renderWeeklyEvent = useMemo(() => {\n const isAllDay = events.some((item: IEvent) => item.isAllDay)\n if (isAllDay && events.length > 1) {\n return (\n <React.Fragment>\n <WeeklyEvent\n event={events[0]}\n onOpenDetail={onOpenDetail}\n onEventDetail={onEventDetail}\n zIndex={1}\n />\n <div className={styles['see-more']}>\n <CustomTooltip\n placement='bottom'\n title={\n <div className={styles['calendar-tooltip']}>\n {events.slice(1, events.length).map((event, index) => (\n <WeeklyEvent\n event={event}\n onOpenDetail={onOpenDetail}\n onEventDetail={onEventDetail}\n key={index + 1}\n zIndex={index + 1}\n />\n ))}\n </div>\n }\n >\n +{Math.max(events.length - 1, 0)} More\n </CustomTooltip>\n </div>\n </React.Fragment>\n )\n }\n return events.map((event, index) => (\n <WeeklyEvent\n key={index}\n event={event}\n onOpenDetail={onOpenDetail}\n onEventDetail={onEventDetail}\n zIndex={index + 1}\n />\n ))\n }, [events])\n\n return (\n <div\n className={`${styles['weekly-calendar__cell']} ${\n isToday ? styles['bg-info/10'] : styles['bg-white']\n }`}\n onClick={handleOpenCreateModal}\n >\n {renderWeeklyEvent}\n </div>\n )\n}\n\nexport default WeeklyCell\n","/* eslint-disable no-unused-vars */\nimport { Table } from 'antd'\nimport clsx from 'clsx'\nimport dayjs, { Dayjs } from 'dayjs'\nimport isBetween from 'dayjs/plugin/isBetween'\nimport React from 'react'\nimport { CALENDAR_TYPE, DAYS_OF_WEEK, HOURS_PER_DAY } from '../../../constants'\nimport { EventsByDay, ICell, IEvent, INorm, ITableColumn } from '../../../types'\nimport {\n calculateNormOfWeek,\n checkIsAllday,\n daysOfWeekKeys\n} from '../../../utils'\nimport styles from '../SAPPCalendar.module.css'\nimport WeeklyCell from './WeeklyCell'\n\ndayjs.extend(isBetween)\n\nexport interface IWeeklyCalendarProps {\n startDate: Dayjs\n endDate: Dayjs\n events: IEvent[]\n norms: INorm[]\n showWeeklyNorm: boolean\n onOpenDetail: (date: Date, events: IEvent[]) => void\n onOpenCreate: (date: Date) => void\n onEventDetail?: (event: IEvent) => void\n loading?: boolean\n type?: 'LMS' | 'OPS'\n}\n\nconst getEventAllDay = (events: IEvent[], targetDate: Dayjs) =>\n daysOfWeekKeys.reduce((acc: EventsByDay, day, index) => {\n const currentDate = targetDate.add(index, 'day')\n\n acc[day] = {\n events: events.reduce((filteredEvents: IEvent[], event) => {\n if (\n dayjs(event.startDate).isSame(currentDate.startOf('day')) &&\n checkIsAllday(dayjs(event.startDate), dayjs(event.endDate))\n ) {\n filteredEvents.push({\n ...event,\n isAllDay: true\n })\n }\n\n return filteredEvents\n }, []),\n date: currentDate\n }\n return acc\n }, {} as EventsByDay)\n\nconst getEventsOfDay = (events: IEvent[], targetHour: Dayjs) =>\n daysOfWeekKeys.reduce((acc: EventsByDay, day, index) => {\n const currentDate = targetHour.add(index, 'day')\n\n acc[day] = {\n events: events.filter(\n (event) =>\n dayjs(event.startDate).isSame(currentDate, 'hour') &&\n !checkIsAllday(dayjs(event.startDate), dayjs(event.endDate))\n ),\n date: currentDate\n }\n return acc\n }, {} as EventsByDay)\n\nconst WeeklyCalendar = ({\n startDate,\n endDate,\n events,\n norms,\n showWeeklyNorm,\n onOpenDetail,\n onOpenCreate,\n onEventDetail,\n loading,\n type\n}: IWeeklyCalendarProps) => {\n const getTableColumns = () => {\n const { normOfWeek, totalNorm } = calculateNormOfWeek(\n norms,\n events,\n startDate,\n endDate\n )\n const hourColumn: ITableColumn = {\n title: (\n <div className={styles['weekly-calendar__title']}>\n {showWeeklyNorm && (\n <React.Fragment>\n <div>Weekly Norm</div>\n <div\n className={clsx(\n normOfWeek > totalNorm && styles['!text-error']\n )}\n >{`${normOfWeek}/${totalNorm}`}</div>\n </React.Fragment>\n )}\n </div>\n ),\n dataIndex: 'hour',\n key: 'hour',\n width: 1,\n render: (value: string) => <div>{value}</div>\n }\n\n const dayColumns: ITableColumn[] = Object.values(DAYS_OF_WEEK).map(\n (day, index) => ({\n title: (\n <div className={styles['weekly-calendar__title']}>\n <div>{day.slice(0, 3)}</div>\n <div>{dayjs(startDate).add(index, 'day').format('DD/MM')}</div>\n </div>\n ),\n dataIndex: day,\n key: day,\n render: (value: ICell) => (\n <WeeklyCell\n key={index}\n events={value.events}\n date={value.date}\n onOpenDetail={onOpenDetail}\n onOpenCreate={onOpenCreate}\n onEventDetail={onEventDetail}\n />\n )\n })\n )\n\n return [hourColumn, ...dayColumns]\n }\n\n const getTableData = () => {\n const data = []\n // All day\n data.push({\n id: -1,\n hour: 'All day',\n ...getEventAllDay(events, startDate)\n })\n const count = type === CALENDAR_TYPE.LMS ? 7 : 0\n // Hour\n for (let i = count; i < HOURS_PER_DAY; i++) {\n const targetHour = dayjs(startDate).add(i, 'hour')\n\n data.push({\n id: i,\n hour: targetHour.format('HH:mm'),\n ...getEventsOfDay(events, targetHour)\n })\n }\n\n return data\n }\n\n return (\n <Table\n rowKey={(record) => record.id}\n columns={getTableColumns()}\n dataSource={getTableData()}\n pagination={false}\n rowHoverable={false}\n className={styles['weekly-calendar']}\n loading={loading}\n />\n )\n}\n\nexport default WeeklyCalendar\n","/* eslint-disable no-unused-vars */\nimport clsx from 'clsx'\nimport dayjs from 'dayjs'\nimport React from 'react'\nimport { EVENT_TYPES, MINUTES_PER_HOUR, TIME_FORMAT } from '../../../constants'\nimport { getIconforEvent } from '../../../icons'\nimport { IEvent } from '../../../types'\nimport { convertType, customDateFormat } from '../../../utils'\nimport styles from '../SAPPCalendar.module.css'\nimport CustomTooltip from '../common/CustomTooltip'\n\ninterface IWeeklyEventProps {\n event: IEvent\n onOpenDetail: (date: Date, events: IEvent[]) => void\n onEventDetail?: (event: IEvent) => void\n}\n\nconst calculateBoxSize = (startTime: Date, endTime: Date) => {\n const minutes = dayjs(startTime).minute()\n const diffMinutes = dayjs(endTime).diff(startTime, 'hour', true)\n return {\n width: diffMinutes || 1,\n left: Math.floor((minutes / MINUTES_PER_HOUR) * 100)\n }\n}\n\nconst LMSWeeklyEvent = ({\n event,\n onOpenDetail,\n onEventDetail\n}: IWeeklyEventProps) => {\n const formattedDate =\n customDateFormat(event.startDate, TIME_FORMAT) +\n ' - ' +\n customDateFormat(event.endDate, TIME_FORMAT)\n\n const { width, left } = calculateBoxSize(event.startDate, event.endDate)\n return (\n <div\n className={styles[`event-${convertType[event.type]}`]}\n onClick={() => {\n onOpenDetail(dayjs(event.startDate).toDate(), [event])\n onEventDetail && onEventDetail(event)\n }}\n style={{\n top: `0%`,\n height: `100%`,\n width: width * 100 + '%',\n left: left + '%',\n zIndex: event.type === EVENT_TYPES.BUSY ? 2 : 1\n }}\n >\n <div className={clsx(styles['weekly-event'])}>\n <div className={clsx(styles['weekly-event--collapse'])}>\n <div className={styles['weekly-event__title']}>\n <div className={styles['weekly-event__title_icon']}>\n {getIconforEvent(event)}\n </div>\n <CustomTooltip title={event.title}>\n {event.title.length > 5 ? event.title.slice(0, 5) + '...' : ''}\n </CustomTooltip>\n </div>\n </div>\n <div className={styles['weekly-event__date']}>\n <CustomTooltip title={formattedDate}>{formattedDate}</CustomTooltip>\n </div>\n </div>\n </div>\n )\n}\nexport default LMSWeeklyEvent\n","/* eslint-disable no-unused-vars */\n/* eslint-disable prettier/prettier */\nimport dayjs, { Dayjs } from 'dayjs'\nimport React, { MouseEvent, useMemo } from 'react'\nimport { EVENT_TYPES } from '../../../constants'\nimport { IEvent } from '../../../types'\nimport styles from '../SAPPCalendar.module.css'\nimport CustomTooltip from '../common/CustomTooltip'\nimport LMSWeeklyEvent from './LMSWeeklyEvent'\n\ninterface IWeeklyCellProps {\n events: IEvent[]\n date: Dayjs\n onOpenDetail: (date: Date, events: IEvent[]) => void\n onOpenCreate: (date: Date) => void\n onEventDetail?: (event: IEvent) => void,\n}\n\nconst LMSWeeklyCell = ({\n events,\n date,\n onOpenDetail,\n onOpenCreate,\n onEventDetail,\n}: IWeeklyCellProps) => {\n const isToday = dayjs().isSame(date, 'day')\n\n const handleOpenCreateModal = (e: MouseEvent<HTMLDivElement>) => {\n if (e.target !== e.currentTarget) return\n\n onOpenCreate(dayjs(date).toDate())\n }\n\n events = events?.sort((a, b) =>\n a.type === EVENT_TYPES.BUSY && b.type !== EVENT_TYPES.BUSY ? 1 : -1\n )\n\n const renderWeeklyEvent = useMemo(() => {\n const isAllDay = events?.some((item: IEvent) => item.isAllDay)\n if (isAllDay && events?.length > 1) {\n return (\n <React.Fragment>\n <LMSWeeklyEvent\n event={events[0]}\n onOpenDetail={onOpenDetail}\n onEventDetail={onEventDetail}\n />\n <div\n className={\n styles['see-more']\n }\n >\n <CustomTooltip\n placement='bottom'\n title={\n <div className={styles['calendar-tooltip']}>\n {events.slice(1, events.length).map((event, index) => (\n <LMSWeeklyEvent\n event={event}\n onOpenDetail={onOpenDetail}\n onEventDetail={onEventDetail}\n key={index + 1}\n />\n ))}\n </div>\n }\n >\n +{Math.max(events.length - 1, 0)} More\n </CustomTooltip>\n </div>\n\n </React.Fragment>\n )\n }\n return events?.map((event, index) => (\n <LMSWeeklyEvent\n key={index}\n event={event}\n onOpenDetail={onOpenDetail}\n onEventDetail={onEventDetail}\n />\n ))\n }, [events])\n\n return (\n <div\n className={`${styles['weekly-calendar__cell']} ${styles['weekly-calendar-lms__cell']} ${isToday ? styles['bg-info/10'] : styles['bg-white']\n }`}\n onClick={handleOpenCreateModal}\n >\n {renderWeeklyEvent}\n </div>\n )\n}\n\nexport default LMSWeeklyCell\n","/* eslint-disable no-unused-vars */\nimport { Table } from 'antd'\nimport dayjs, { Dayjs } from 'dayjs'\nimport isBetween from 'dayjs/plugin/isBetween'\nimport React from 'react'\nimport { DAYS_OF_WEEK_SHORTEN } from '../../../constants'\nimport {\n EventsByHour,\n ICell,\n IEvent,\n INorm,\n ITableColumn\n} from '../../../types'\nimport styles from '../SAPPCalendar.module.css'\nimport { checkIsAllday, hoursOfDayKeys } from '../../../utils'\nimport LMSWeeklyCell from './LMSWeeklyCell'\n\ndayjs.extend(isBetween)\n\ninterface IWeeklyCalendarProps {\n startDate: Dayjs\n endDate: Dayjs\n events: IEvent[]\n norms: INorm[]\n onOpenDetail: (date: Date, events: IEvent[]) => void\n onOpenCreate: (date: Date) => void\n onEventDetail?: (event: IEvent) => void\n loading?: boolean\n type?: 'OPS' | 'LMS'\n}\n\nconst LMSWeeklyCalendar = ({\n startDate,\n events,\n onOpenDetail,\n onOpenCreate,\n onEventDetail,\n loading\n}: IWeeklyCalendarProps) => {\n const getEventsOfHour = (events: IEvent[], targetHour: Dayjs) =>\n hoursOfDayKeys.reduce((acc: any, hour) => {\n acc[hour] = {\n events: events.filter((event) => {\n return (\n dayjs(event.startDate).isSame(\n dayjs(`${targetHour.format('YYYY-MM-DD')}T${hour}:00`),\n 'hour'\n ) && !checkIsAllday(dayjs(event.startDate), dayjs(event.endDate))\n )\n }),\n date: dayjs(`${targetHour.format('YYYY-MM-DD')}T${hour}`)\n }\n return acc\n }, {} as EventsByHour)\n\n const getTableColumns = () => {\n const hourColumn: ITableColumn = {\n title: <div className={styles['weekly-calendar__title']} />,\n dataIndex: 'hour',\n key: 'hour',\n width: 1,\n render: (value: string) => <div>{value}</div>\n }\n\n const hours = Array.from({ length: 17 }, (_, i) => 7 + i)\n const timeColums: ITableColumn[] = hours.map((time, index) => ({\n title: (\n <div className={styles['weekly-calendar__title']}>\n {time % 2 !== 0 ? (\n <div style={{ textAlign: 'start' }}>\n {time < 10 ? '0' + time + ':00' : time + ':00'}\n </div>\n ) : (\n <div style={{ minWidth: '35px' }} />\n )}\n </div>\n ),\n dataIndex: `${time < 10 ? '0' + time + ':00' : time + ':00'}`,\n key: `${time < 10 ? '0' + time + ':00' : time + ':00'}`,\n render: (value: ICell) => {\n return (\n <LMSWeeklyCell\n key={index}\n events={value?.events}\n date={value?.date}\n onOpenDetail={onOpenDetail}\n onOpenCreate={onOpenCreate}\n onEventDetail={onEventDetail}\n />\n )\n }\n }))\n\n return [hourColumn, ...timeColums]\n }\n\n const getTableData = () => {\n const data = []\n for (let i = 0; i < 7; i++) {\n const targetHour = dayjs(startDate).add(i + 1, 'day')\n data.push({\n id: i,\n hour: (\n <div>\n <div className={styles['lms-calendar__tablet']}>\n {Object.values(DAYS_OF_WEEK_SHORTEN)[i]}\n </div>\n <div className={styles['lms-calendar__tablet']}>\n {dayjs(startDate).add(i, 'day').format('DD')}\n </div>\n </div>\n ),\n ...getEventsOfHour(events, targetHour)\n })\n }\n return data\n }\n\n return (\n <Table\n rowKey={(record) => record.id}\n columns={getTableColumns()}\n dataSource={getTableData()}\n pagination={false}\n rowHoverable={false}\n className={styles['weekly-calendar']}\n loading={loading}\n />\n )\n}\n\nexport default LMSWeeklyCalendar\n","/* eslint-disable no-unused-vars */\nimport React, { useEffect, useState } from 'react'\nimport WeeklyCalendar, {\n IWeeklyCalendarProps\n} from '../WeeklyCalendar/WeeklyCalendar'\nimport LMSWeeklyCalendar from './LMSWeeklyCalendar'\nimport { CALENDAR_TYPE } from '../../../constants'\n\nexport default function LMSModeWeeklyCalendar({\n startDate,\n endDate,\n events,\n norms,\n showWeeklyNorm = false,\n onOpenDetail,\n onOpenCreate,\n onEventDetail,\n loading\n}: IWeeklyCalendarProps) {\n const [windowWidth, setWindowWidth] = useState(window.innerWidth)\n\n useEffect(() => {\n const handleResize = () => {\n setWindowWidth(window.innerWidth)\n }\n\n window.addEventListener('resize', handleResize)\n\n return () => {\n window.removeEventListener('resize', handleResize)\n }\n }, [])\n\n return (\n <React.Fragment>\n {windowWidth > 1024 ? (\n <WeeklyCalendar\n startDate={startDate}\n endDate={endDate}\n events={events}\n norms={norms}\n showWeeklyNorm={showWeeklyNorm}\n onOpenDetail={onOpenDetail}\n onOpenCreate={onOpenCreate}\n onEventDetail={onEventDetail}\n loading={loading}\n type={CALENDAR_TYPE.LMS}\n />\n ) : (\n <LMSWeeklyCalendar\n startDate={startDate}\n endDate={endDate}\n events={events}\n norms={norms}\n onOpenDetail={onOpenDetail}\n onOpenCreate={onOpenCreate}\n onEventDetail={onEventDetail}\n loading={loading}\n type={CALENDAR_TYPE.LMS}\n />\n )}\n </React.Fragment>\n )\n}\n","import React from 'react'\nimport { Select } from 'antd'\nimport '../SAPPCalendar.tailwind.css'\n\ninterface IProps {\n value: string | number\n options: { value: string; label: string }[]\n defaultValue?: string\n className?: string\n disabled?: boolean\n onChange?: (e: string | number) => void\n}\nconst SelectBox: React.FC<IProps> = ({\n value,\n options,\n defaultValue,\n className = '',\n disabled,\n onChange\n}) => {\n return (\n <Select\n defaultValue={defaultValue}\n className={className}\n disabled={disabled}\n options={options}\n value={value}\n onChange={onChange}\n />\n )\n}\n\nexport default SelectBox\n","/* eslint-disable no-unused-vars */\nimport { DatePicker } from 'antd'\nimport dayjs, { Dayjs } from 'dayjs'\nimport React, { Dispatch, SetStateAction } from 'react'\nimport { FilterIcon, LeftArrowIcon, RightArrowIcon } from '../../../icons'\nimport { CalendarMode, IFilter } from '../../../types'\nimport Button from '../common/Button'\nimport Icon from '../common/Icon'\n// TODO: config đường dẫn dạng @utils, @component,... tương ứng với folder nào ( sửa tất cả e nhé)\nimport { customDateFormat } from '../../../utils'\nimport styles from '../SAPPCalendar.module.css'\nimport clsx from 'clsx'\nimport { FORMAT_DATE_CARLENDA } from '../../../constants'\nimport SelectBox from '../common/SelectBox'\n\ninterface IHeaderCalendarProps {\n title?: string\n showTeacherName?: boolean\n currentDate: Dayjs\n setCurrentDate: Dispatch<SetStateAction<Dayjs>>\n calendarMode: CalendarMode\n setCalendarMode: Dispatch<SetStateAction<CalendarMode>>\n toggleTurnOnFilter: () => void\n filter: IFilter\n hasFilter: boolean\n}\n\nconst LMSHeaderCalendar = ({\n title,\n showTeacherName,\n currentDate,\n setCurrentDate,\n calendarMode,\n setCalendarMode,\n toggleTurnOnFilter,\n filter,\n hasFilter\n}: IHeaderCalendarProps) => {\n const options = [\n {\n value: 'month',\n label: 'Month'\n },\n {\n value: 'week',\n label: 'Week'\n }\n ]\n const handleChangeDate = (date: Dayjs) => {\n setCurrentDate(date)\n }\n\n const handleChangeMode = (mode: CalendarMode) => {\n setCalendarMode(mode)\n setCurrentDate(dayjs())\n }\n return (\n <div className={styles['header-calendar']}>\n <div className={styles['header-calendar_filter']}>\n {hasFilter && (\n <div\n className={clsx(\n styles['hover-item'],\n filter.isOpen && styles['text-lms-primary']\n )}\n onClick={toggleTurnOnFilter}\n >\n <FilterIcon />\n </div>\n )}\n <div className={`${styles['header-calendar__nav']}`}>\n <Icon\n icon={<LeftArrowIcon />}\n onClick={() =>\n handleChangeDate(currentDate.subtract(1, calendarMode))\n }\n className={styles['rounded-none']}\n />\n <DatePicker\n picker={calendarMode === 'day' ? 'date' : calendarMode}\n onChange={handleChangeDate}\n format={(value) =>\n customDateFormat(\n value,\n calendarMode === 'day'\n ? FORMAT_DATE_CARLENDA.DATE\n : FORMAT_DATE_CARLENDA.MONTH_AND_WEEK\n )\n }\n value={currentDate}\n allowClear={false}\n suffixIcon={null}\n className={styles['header-calendar__date-picker']}\n size='large'\n />\n <Icon\n icon={<RightArrowIcon />}\n onClick={() => handleChangeDate(currentDate.add(1, calendarMode))}\n />\n </div>\n </div>\n {showTeacherName && (\n <div className={styles['header-calendar__title']}>{title}</div>\n )}\n <div className={styles['header-calendar__controls']}>\n <Button color='lms-default' onClick={() => handleChangeDate(dayjs())}>\n Today\n </Button>\n <div className={styles['header-calendar__divider']} />\n <SelectBox\n value={calendarMode}\n options={options}\n className='select-mode'\n onChange={(mode) => {\n handleChangeMode(mode as CalendarMode)\n }}\n />\n </div>\n </div>\n )\n}\n\nexport default LMSHeaderCalendar\n","/* eslint-disable no-unused-vars */\nimport React, { Dispatch, SetStateAction, useMemo } from 'react'\nimport { Calendar } from 'antd'\nimport styles from '../SAPPCalendarFilter.module.css'\nimport {\n EducationIcon,\n EyeIcon,\n FlagIcon,\n GoldStarIcon,\n HiddenEyeIcon,\n TagIcon,\n TestIcon\n} from '../../../icons'\nimport { ICourse, IFilter } from '../../../types'\nimport { Dayjs } from 'dayjs'\nimport { LEARNING_MODE } from '../../../constants'\n\ninterface IProps {\n filter: IFilter\n setFilter: Dispatch<SetStateAction<IFilter>>\n courses?: ICourse[]\n onRefetchAPI: (filterDate: Date) => void\n}\n\nconst FilterCalendar = ({\n filter,\n setFilter,\n courses,\n onRefetchAPI\n}: IProps) => {\n const noteFilter = useMemo(\n () => [\n {\n title: 'Online',\n icon: <div className={styles['calendar-filter_note_blue']} />,\n value: LEARNING_MODE.ONLINE\n },\n {\n title: 'Live Online',\n icon: <div className={styles['calendar-filter_note_pureple']} />,\n value: LEARNING_MODE.LIVE_ONLINE\n },\n {\n title: 'Offline',\n icon: <div className={styles['calendar-filter_note_green']} />,\n value: LEARNING_MODE.OFFLINE\n },\n { title: 'Test', icon: <TestIcon />, value: LEARNING_MODE.TEST },\n {\n title: 'Case Study',\n icon: <GoldStarIcon />,\n value: LEARNING_MODE.CASE_STUDY\n },\n {\n title: 'Key Content Before',\n icon: <FlagIcon />,\n value: LEARNING_MODE.KEY_BEFORE_CONTENT\n },\n {\n title: 'Holiday',\n icon: <div className={styles['calendar-filter_note_yellow']} />,\n value: LEARNING_MODE.HOLIDAY\n },\n {\n title: 'Overdue',\n icon: <div className={styles['calendar-filter_note_red']} />,\n value: LEARNING_MODE.OVERDUE\n }\n ],\n []\n )\n const handleFilter = (type: string, value: string) => {\n switch (type) {\n case 'course': {\n setFilter((prev: IFilter) => {\n const courseId = prev.courseId || []\n const updatedCourseId = courseId.includes(value)\n ? courseId.filter((item) => item !== value)\n : [...courseId, value]\n return { ...prev, courseId: updatedCourseId }\n })\n break\n }\n case 'note': {\n setFilter((prev: IFilter) => {\n const typeArray = prev.type || []\n const updatedType = typeArray.includes(value)\n ? typeArray.filter((item) => item !== value)\n : [...typeArray, value]\n return { ...prev, type: updatedType }\n })\n break\n }\n case 'day': {\n setFilter((prev: IFilter) => {\n return { ...prev, day: value }\n })\n break\n }\n }\n }\n\n const handleFilterday = (date: Dayjs) => {\n onRefetchAPI(date.toDate())\n handleFilter('day', date.toString())\n }\n return (\n <div className={styles['calendar-filter']}>\n <Calendar\n mode='month'\n className={styles['custom-today-picker']}\n fullscreen={false}\n onChange={handleFilterday}\n />\n <div>\n <div className={styles['calendar-filter_title']}>\n <TagIcon />\n <h3>Notes</h3>\n </div>\n <div>\n {noteFilter.map((item) => {\n return (\n <div\n className={styles['calendar-filter_content_list_item']}\n key={item.value}\n >\n <div className={styles['calendar-filter_content_list_item']}>\n {item.icon}\n {item.title}\n </div>\n <div\n onClick={() => handleFilter('note', item.value)}\n className={styles['calendar-filter_content_item_eye']}\n >\n {filter.type?.includes(item.value) ? (\n <EyeIcon />\n ) : (\n <HiddenEyeIcon />\n )}\n </div>\n </div>\n )\n })}\n </div>\n </div>\n <div>\n <div className={styles['calendar-filter_title']}>\n <EducationIcon />\n <h3>My courses</h3>\n </div>\n <div>\n {courses?.map((item, key) => {\n return (\n <div\n key={key}\n className={styles['calendar-filter_content_list_item']}\n >\n <div className={styles['calendar-filter_content_list_item']}>\n {item.name}\n </div>\n <div\n onClick={() => handleFilter('course', item.id)}\n className={styles['calendar-filter_content_item_eye']}\n >\n {filter.courseId?.includes(item.id) ? (\n <EyeIcon />\n ) : (\n <HiddenEyeIcon />\n )}\n </div>\n </div>\n )\n })}\n </div>\n </div>\n </div>\n )\n}\n\nexport default FilterCalendar\n","/* eslint-disable no-unused-vars */\nimport dayjs, { Dayjs } from 'dayjs'\nimport React, { useMemo, useState, useEffect } from 'react'\nimport { useEffectAfterMounted } from '../../hooks/useEffectAfterMounted'\nimport { CalendarMode, ICourse, IEvent, IFilter, INorm } from '../../types'\nimport { splitEventsIntoDays } from '../../utils'\nimport HeaderCalendar from './HeaderCalendar/HeaderCalendar'\nimport MonthlyCalendar from './MonthlyCalendar/MonthlyCalendar'\nimport styles from './SAPPCalendar.module.css'\nimport WeeklyCalendar from './WeeklyCalendar/WeeklyCalendar'\nimport LMSModeWeeklyCalendar from './LMSWeeklyCalendar'\nimport { CALENDAR_TYPE, LEARNING_MODE } from '../../constants'\nimport LMSHeaderCalendar from './HeaderCalendar/LMSHeaderCalendar'\nimport FilterCalendar from './FilterCalendar/FilterCalendar'\n\ninterface IAntdCalendarProps {\n events: IEvent[]\n norms?: INorm[]\n teacherName?: string\n showTeacherName?: boolean\n showWeeklyNorm?: boolean\n onOpenDetail: (date: Date, events: IEvent[]) => void\n onOpenCreate: (date: Date) => void\n onRefetchAPI: (startDate: Date, endDate: Date) => Promise<void>\n onEventDetail?: (event: IEvent) => void\n loading?: boolean\n type?: string\n courses?: ICourse[]\n onfilter?: (filter: IFilter) => void\n hasFilter?: boolean\n headerType?: CALENDAR_TYPE.OPS | CALENDAR_TYPE.LMS\n}\n\nconst SAPPCalendar = ({\n teacherName,\n events,\n norms = [],\n showTeacherName = true,\n showWeeklyNorm = true,\n onOpenDetail,\n onOpenCreate,\n onRefetchAPI,\n onEventDetail,\n loading,\n type = 'OPS',\n courses,\n onfilter,\n hasFilter = false,\n headerType = CALENDAR_TYPE.OPS\n}: IAntdCalendarProps) => {\n const [currentDate, setCurrentDate] = useState<Dayjs>(dayjs())\n const [calendarMode, setCalendarMode] = useState<CalendarMode>('month')\n const [filter, setFilter] = useState<IFilter>({\n courseId: courses ? courses.map((item) => item.id) : [],\n isOpen: false,\n type: Object.values(LEARNING_MODE),\n day: ''\n })\n\n const startDate = useMemo(\n () =>\n dayjs(currentDate).startOf(calendarMode).startOf('week').add(1, 'day'),\n [currentDate, calendarMode]\n ) // add 1 day because start of week is Sunday\n\n const endDate = useMemo(\n () => dayjs(currentDate).endOf(calendarMode).endOf('week').add(1, 'day'),\n [currentDate, calendarMode]\n ) // add 1 day because end of week is Saturday\n\n const splittedEvents = splitEventsIntoDays(events)\n splittedEvents.sort((a, b) => dayjs(a.startDate).diff(b.startDate))\n\n const handleFilterDate = (date: Dayjs) => {\n setCurrentDate(date)\n }\n\n useEffect(() => {\n onfilter && onfilter(filter)\n }, [filter])\n\n useEffectAfterMounted(() => {\n onRefetchAPI(startDate.toDate(), endDate.toDate())\n }, [startDate, endDate])\n\n return (\n <div className={styles['sapp-calendar']}>\n {filter.isOpen && (\n <FilterCalendar\n filter={filter}\n setFilter={setFilter}\n onRefetchAPI={(date) => handleFilterDate(dayjs(date))}\n />\n )}\n <div className={styles['sapp-calendar__container']}>\n {headerType === CALENDAR_TYPE.LMS ? (\n <LMSHeaderCalendar\n title={teacherName}\n showTeacherName={showTeacherName}\n currentDate={currentDate}\n setCurrentDate={setCurrentDate}\n calendarMode={calendarMode}\n setCalendarMode={setCalendarMode}\n toggleTurnOnFilter={() =>\n setFilter((prev) => ({ ...prev, isOpen: !filter.isOpen }))\n }\n hasFilter={hasFilter}\n filter={filter}\n />\n ) : (\n <HeaderCalendar\n title={teacherName}\n showTeacherName={showTeacherName}\n currentDate={currentDate}\n setCurrentDate={setCurrentDate}\n calendarMode={calendarMode}\n setCalendarMode={setCalendarMode}\n />\n )}\n {calendarMode === 'month' && (\n <MonthlyCalendar\n currentDate={currentDate}\n startDate={startDate}\n endDate={endDate}\n events={splittedEvents}\n norms={norms}\n showWeeklyNorm={showWeeklyNorm}\n onOpenDetail={onOpenDetail}\n onOpenCreate={onOpenCreate}\n onEventDetail={onEventDetail}\n loading={loading}\n />\n )}\n {calendarMode === 'week' && type === CALENDAR_TYPE.LMS && (\n <LMSModeWeeklyCalendar\n startDate={startDate}\n endDate={endDate}\n events={splittedEvents}\n norms={norms}\n showWeeklyNorm={showWeeklyNorm}\n onOpenDetail={onOpenDetail}\n onOpenCreate={onOpenCreate}\n onEventDetail={onEventDetail}\n loading={loading}\n />\n )}\n {calendarMode === 'week' && type === CALENDAR_TYPE.OPS && (\n <WeeklyCalendar\n startDate={startDate}\n endDate={endDate}\n events={splittedEvents}\n norms={norms}\n showWeeklyNorm={showWeeklyNorm}\n onOpenDetail={onOpenDetail}\n onOpenCreate={onOpenCreate}\n onEventDetail={onEventDetail}\n loading={loading}\n />\n )}\n </div>\n </div>\n )\n}\n\nexport default SAPPCalendar\n"],"names":["useEffectAfterMounted","callback","dependencies","_useState","useState","mounted","setMounted","useEffect","HOURS_PER_DAY","MINUTES_PER_HOUR","TIME_FORMAT","MIN_HEIGHT_HIDE_DETAILS","MIN_HEIGHT_HIDE_ALL","MIN_HEIGHT_EVENT","BORDER_WEEKLY_CELL","DAYS_OF_WEEK","DAYS_OF_WEEK_SHORTEN","HOUR_OF_DAY","EVENT_TYPES","FORMAT_DATE_CARLENDA","LEARNING_MODE","CALENDAR_TYPE","customDateFormat","value","formatStr","dayjs","format","convertType","_convertType","TEACHING","BUSY","HOLIDAY","OTHER","LIVE_ONLINE","daysOfWeekKeys","Object","values","calculateNormOfWeek","norms","events","startDate","endDate","norm","find","isBetween","normOfWeek","totalNorm","normsOfWeek","filter","event","type","length","maxShift","splitEventsIntoDays","splittedEvents","_iterator","_createForOfIteratorHelperLoose","_step","done","isSameDay","isSame","push","_extends","toDate","endOf","currentDate","startOf","add","isBefore","checkIsAllday","isValid","hoursOfDayKeys","Left","React","width","height","viewBox","fill","xmlns","d","Right","Book","fillRule","clipRule","CalendarDelete","CalendarAccept","clipPath","id","Star","TestIcon","HiddenEyeIcon","EyeIcon","FlagIcon","GoldStarIcon","transform","TagIcon","EducationIcon","FilterIcon","LeftArrowIcon","RightArrowIcon","getIconEvent","_getIconEvent","getIconforEvent","source","LMS","icon","isCaseStudy","isTest","isKeyContentBefore","Button","_ref","_ref$type","_ref$color","color","onClick","children","console","log","styles","className","btn","Icon","clsx","HeaderCalendar","title","showTeacherName","setCurrentDate","calendarMode","setCalendarMode","handleChangeDate","date","handleChangeMode","mode","subtract","DatePicker","picker","onChange","allowClear","suffixIcon","size","CustomTooltip","_ref$placement","placement","Tooltip","MonthlyEvent","isSameMonth","onEventDetail","formattedDate","formattedDateStart","Fragment","style","cursor","_event$title","_event$title2","slice","MonthlyCell","onOpenDetail","onOpenCreate","hasMore","isToday","handleOpenCreateModal","e","target","currentTarget","hour","minute","map","index","key","Math","max","getEventsOfWeek","targetDate","reduce","acc","day","MonthlyCalendar","showWeeklyNorm","loading","getTableColumns","weeklyNormColumn","dataIndex","render","dayColumns","concat","getWeeksOfFullMonth","weeks","clone","getTableData","data","week","eventsOfWeek","Table","rowKey","record","columns","dataSource","pagination","rowHoverable","calculateBoxSize","startTime","endTime","isAllDay","top","minutes","diffMinutes","diff","floor","border","WeeklyEvent","zIndex","_calculateBoxSize","isMinHeight","WeeklyCell","sort","a","b","renderWeeklyEvent","useMemo","some","item","extend","getEventAllDay","filteredEvents","getEventsOfDay","targetHour","WeeklyCalendar","_calculateNormOfWeek","hourColumn","count","i","left","LMSWeeklyEvent","LMSWeeklyCell","_events","_events2","_events3","_events4","LMSWeeklyCalendar","getEventsOfHour","hours","Array","from","_","timeColums","time","textAlign","minWidth","LMSModeWeeklyCalendar","_ref$showWeeklyNorm","window","innerWidth","windowWidth","setWindowWidth","handleResize","addEventListener","removeEventListener","SelectBox","options","defaultValue","_ref$className","disabled","Select","LMSHeaderCalendar","toggleTurnOnFilter","hasFilter","label","isOpen","DATE","MONTH_AND_WEEK","FilterCalendar","setFilter","courses","onRefetchAPI","noteFilter","ONLINE","OFFLINE","TEST","CASE_STUDY","KEY_BEFORE_CONTENT","OVERDUE","handleFilter","prev","courseId","updatedCourseId","includes","typeArray","updatedType","handleFilterday","toString","Calendar","fullscreen","_filter$type","name","_filter$courseId","SAPPCalendar","teacherName","_ref$norms","_ref$showTeacherName","onfilter","_ref$hasFilter","_ref$headerType","headerType","OPS","_useState2","_useState3","handleFilterDate"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/hooks/useEffectAfterMounted.ts","../src/constants/index.ts","../src/utils/index.ts","../src/icons/index.tsx","../src/components/SAPPCalendar/common/Button.tsx","../src/components/SAPPCalendar/common/Icon.tsx","../src/components/SAPPCalendar/HeaderCalendar/HeaderCalendar.tsx","../src/components/SAPPCalendar/common/CustomTooltip.tsx","../src/components/SAPPCalendar/MonthlyCalendar/MonthlyEvent.tsx","../src/components/SAPPCalendar/MonthlyCalendar/MonthlyCell.tsx","../src/components/SAPPCalendar/MonthlyCalendar/MonthlyCalendar.tsx","../src/components/SAPPCalendar/WeeklyCalendar/WeeklyEvent.tsx","../src/components/SAPPCalendar/WeeklyCalendar/WeeklyCell.tsx","../src/components/SAPPCalendar/WeeklyCalendar/WeeklyCalendar.tsx","../src/components/SAPPCalendar/LMSWeeklyCalendar/LMSWeeklyEvent.tsx","../src/components/SAPPCalendar/LMSWeeklyCalendar/LMSWeeklyCell.tsx","../src/components/SAPPCalendar/LMSWeeklyCalendar/LMSWeeklyCalendar.tsx","../src/components/SAPPCalendar/LMSWeeklyCalendar/index.tsx","../src/components/SAPPCalendar/common/SelectBox.tsx","../src/components/SAPPCalendar/HeaderCalendar/LMSHeaderCalendar.tsx","../src/components/SAPPCalendar/FilterCalendar/FilterCalendar.tsx","../src/components/SAPPCalendar/SAPPCalendar.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\n\nexport const useEffectAfterMounted = (\n callback: () => void,\n dependencies: any[]\n) => {\n const [mounted, setMounted] = useState(false)\n\n useEffect(() => {\n if (!mounted) {\n setMounted(true)\n return\n }\n return callback()\n }, dependencies)\n}\n","/* eslint-disable no-unused-vars */\nexport const HOURS_PER_DAY = 24\nexport const MINUTES_PER_HOUR = 60\nexport const TIME_FORMAT = 'HH:mm'\n\nexport const MIN_HEIGHT_HIDE_DETAILS = 140\n\nexport const MIN_HEIGHT_HIDE_ALL = 105\n\nexport const MIN_HEIGHT_EVENT = 50\n\nexport const BORDER_WEEKLY_CELL = 1\n\nexport enum DAYS_OF_WEEK {\n Monday = 'Monday',\n Tuesday = 'Tuesday',\n Wednesday = 'Wednesday',\n Thursday = 'Thursday',\n Friday = 'Friday',\n Saturday = 'Saturday',\n Sunday = 'Sunday'\n}\nexport enum DAYS_OF_WEEK_SHORTEN {\n Monday = 'Mon',\n Tuesday = 'Tue',\n Wednesday = 'Wed',\n Thursday = 'Thur',\n Friday = 'Fri',\n Saturday = 'Sat',\n Sunday = 'Sun'\n}\nexport enum HOUR_OF_DAY {\n '07:00' = '07:00',\n '08:00' = '08:00',\n '09:00' = '09:00',\n '10:00' = '10:00',\n '11:00' = '11:00',\n '12:00' = '12:00',\n '13:00' = '13:00',\n '14:00' = '14:00',\n '15:00' = '15:00',\n '16:00' = '16:00',\n '17:00' = '17:00',\n '18:00' = '18:00',\n '19:00' = '19:00',\n '20:00' = '20:00',\n '21:00' = '21:00',\n '22:00' = '22:00',\n '23:00' = '23:00',\n '24:00' = '24:00'\n}\nexport enum EVENT_TYPES {\n TEACHING = 'TEACHING',\n BUSY = 'BUSY',\n HOLIDAY = 'HOLIDAY',\n OTHER = 'OTHER',\n LIVE_ONLINE = 'LIVE_ONLINE'\n}\n\nexport enum FORMAT_DATE_CARLENDA {\n MONTH_AND_WEEK = 'MMMM DD',\n DATE = 'DD'\n}\nexport enum LEARNING_MODE {\n ONLINE = 'ONLINE',\n LIVE_ONLINE = 'LIVE_ONLINE',\n OFFLINE = 'OFFLINE',\n CASE_STUDY = 'CASE_STUDY',\n HOLIDAY = 'HOLIDAY',\n OVERDUE = 'OVERDUE',\n TEST = 'TEST',\n KEY_BEFORE_CONTENT = 'KEY_BEFORE_CONTENT'\n}\n\nexport enum CALENDAR_TYPE {\n OPS = 'OPS',\n LMS = 'LMS'\n}\n","/* eslint-disable no-unused-vars */\nimport dayjs, { Dayjs } from 'dayjs'\nimport {\n DAYS_OF_WEEK,\n EVENT_TYPES,\n HOUR_OF_DAY,\n TIME_FORMAT\n} from '../constants'\nimport { EventType, IEvent, INorm, INormOfWeek } from '../types'\n\nexport const customDateFormat = (value: Dayjs | Date, formatStr: string) =>\n dayjs(value).format(formatStr)\n\nexport const convertType: Record<EventType, string> = {\n [EVENT_TYPES.TEACHING]: 'info',\n [EVENT_TYPES.BUSY]: 'error',\n [EVENT_TYPES.HOLIDAY]: 'warning',\n [EVENT_TYPES.OTHER]: 'success',\n [EVENT_TYPES.LIVE_ONLINE]: 'purple'\n}\n\nexport const daysOfWeekKeys = Object.values(DAYS_OF_WEEK)\n\nexport const calculateNormOfWeek = (\n norms: INorm[],\n events: IEvent[],\n startDate: Dayjs,\n endDate: Dayjs\n): INormOfWeek => {\n const norm = norms.find(\n (norm) =>\n startDate.isBetween(norm.startDate, norm.endDate, 'day', '[]') &&\n endDate.isBetween(norm.startDate, norm.endDate, 'day', '[]')\n )\n\n if (!norm) {\n return {\n normOfWeek: 0,\n totalNorm: 0\n }\n }\n\n const normsOfWeek = events.filter(\n (event) =>\n dayjs(event.startDate).isBetween(startDate, endDate, 'day', '[]') &&\n endDate.isBetween(startDate, endDate, 'day', '[]') &&\n event.type === EVENT_TYPES.TEACHING\n )\n\n return {\n normOfWeek: normsOfWeek.length,\n totalNorm: norm.maxShift\n }\n}\n\nexport const splitEventsIntoDays = (events: IEvent[]) => {\n const splittedEvents: IEvent[] = []\n\n for (const event of events) {\n const startDate = dayjs(event.startDate)\n const endDate = dayjs(event.endDate)\n const isSameDay = startDate.isSame(endDate, 'day')\n\n if (isSameDay) {\n splittedEvents.push(event)\n continue\n }\n\n // Start day\n splittedEvents.push({\n ...event,\n startDate: startDate.toDate(),\n endDate: startDate.endOf('day').toDate()\n })\n\n // All-day events for intermediate days\n let currentDate = startDate.startOf('day').add(1, 'day')\n while (currentDate.isBefore(endDate, 'day')) {\n splittedEvents.push({\n ...event,\n startDate: currentDate.startOf('day').toDate(),\n endDate: currentDate.endOf('day').toDate()\n })\n currentDate = currentDate.add(1, 'day')\n }\n\n // End day\n splittedEvents.push({\n ...event,\n startDate: endDate.startOf('day').toDate(),\n endDate: endDate.toDate()\n })\n }\n\n return splittedEvents\n}\n\nexport const checkIsAllday = (startDate: Dayjs, endDate: Dayjs) => {\n if (!startDate.isValid() || !endDate.isValid()) {\n return false\n }\n\n return (\n startDate.format(TIME_FORMAT) ===\n startDate.startOf('day').format(TIME_FORMAT) &&\n endDate.format(TIME_FORMAT) === endDate.endOf('day').format(TIME_FORMAT) &&\n startDate.isBefore(endDate)\n )\n}\n\nexport const hoursOfDayKeys = Object.values(HOUR_OF_DAY)\n","/* eslint-disable no-unused-vars */\nimport React from 'react'\nimport { IEvent } from '../types'\nimport { CALENDAR_TYPE, EVENT_TYPES } from '../constants'\n\nexport const Left = () => (\n <svg\n width='16'\n height='16'\n viewBox='0 0 16 16'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n d='M9.68642 12.6136C9.59868 12.6141 9.5117 12.5973 9.43048 12.5641C9.34925 12.5309 9.27538 12.482 9.21308 12.4202L5.25975 8.47356C5.13793 8.3458 5.06887 8.17674 5.06642 8.00023C5.06591 7.91249 5.08273 7.82551 5.1159 7.74429C5.14908 7.66306 5.19796 7.58919 5.25975 7.52689L9.21308 3.58023C9.34062 3.47101 9.50467 3.41394 9.67245 3.42042C9.84024 3.4269 9.9994 3.49645 10.1181 3.61518C10.2369 3.73391 10.3064 3.89307 10.3129 4.06086C10.3194 4.22864 10.2623 4.39269 10.1531 4.52023L6.66642 8.00023L10.1398 11.4802C10.2639 11.6051 10.3336 11.7741 10.3336 11.9502C10.3336 12.1264 10.2639 12.2953 10.1398 12.4202C10.0189 12.5402 9.85668 12.6094 9.68642 12.6136Z'\n fill='#252F4A'\n />\n </svg>\n)\n\nexport const Right = () => (\n <svg\n width='16'\n height='16'\n viewBox='0 0 16 16'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n d='M6.84715 12.6666C6.75894 12.6662 6.67169 12.6483 6.59044 12.614C6.50919 12.5797 6.43556 12.5295 6.37381 12.4666C6.24965 12.3416 6.17995 12.1727 6.17995 11.9966C6.17995 11.8204 6.24965 11.6515 6.37381 11.5266L9.85381 7.99989L6.37381 4.55322C6.31165 4.49019 6.26252 4.41553 6.22921 4.3335C6.19591 4.25148 6.17908 4.1637 6.1797 4.07517C6.18032 3.98665 6.19837 3.89911 6.23282 3.81756C6.26727 3.73601 6.31744 3.66205 6.38048 3.59989C6.44351 3.53773 6.51817 3.48859 6.6002 3.45529C6.68222 3.42198 6.77 3.40516 6.85853 3.40578C6.94705 3.4064 7.03459 3.42445 7.11614 3.4589C7.19769 3.49334 7.27165 3.54352 7.33381 3.60655L11.2805 7.55989C11.4046 7.6848 11.4743 7.85376 11.4743 8.02989C11.4743 8.20601 11.4046 8.37498 11.2805 8.49989L7.33381 12.4466C7.27224 12.5148 7.19722 12.5696 7.11347 12.6074C7.02972 12.6453 6.93905 12.6654 6.84715 12.6666Z'\n fill='#252F4A'\n />\n </svg>\n)\n\nexport const Book = () => (\n <svg\n width='20'\n height='20'\n viewBox='0 0 20 20'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M7.36051 3.61971C6.37671 3.45978 5.3735 3.45977 4.38969 3.61969C4.04645 3.67549 3.70164 3.7585 2.93716 3.94368C2.81469 3.97335 2.74354 3.99072 2.69032 4.00583C2.6569 4.01532 2.64293 4.02058 2.6395 4.02196C2.6395 4.02196 2.6395 4.02196 2.6395 4.02196C2.57147 4.05542 2.52252 4.11776 2.50609 4.19125C2.50556 4.19493 2.50375 4.2097 2.5024 4.24419C2.50024 4.29939 2.50011 4.37254 2.50011 4.49846V15.8196C2.50011 15.9083 2.50015 15.9626 2.50105 16.0033C2.50163 16.0294 2.50244 16.041 2.50265 16.0437C2.52153 16.1749 2.64055 16.2691 2.7739 16.2564C2.7766 16.2559 2.78803 16.254 2.81375 16.2484C2.85362 16.2397 2.90644 16.2269 2.99264 16.206L3.00819 16.2023C3.34117 16.1216 3.52697 16.0766 3.71304 16.0384C5.13954 15.7457 6.61067 15.7457 8.03717 16.0384C8.22321 16.0766 8.40898 16.1216 8.74185 16.2022L9.25011 16.3253V4.04958L8.81305 3.94371C8.04857 3.75852 7.70375 3.6755 7.36051 3.61971ZM10.7501 4.04959V16.3253L11.2582 16.2023C11.5912 16.1216 11.777 16.0766 11.963 16.0384C13.3895 15.7457 14.8607 15.7457 16.2872 16.0384C16.4732 16.0766 16.659 16.1216 16.992 16.2023L17.0076 16.206C17.0938 16.2269 17.1466 16.2397 17.1865 16.2484C17.2256 16.257 17.2317 16.257 17.2242 16.2562C17.3584 16.2701 17.4786 16.1756 17.4976 16.0437C17.4978 16.041 17.4986 16.0294 17.4992 16.0033C17.5001 15.9626 17.5001 15.9083 17.5001 15.8196V4.49852C17.5001 4.37258 17.5 4.29943 17.4978 4.24423C17.4965 4.20973 17.4947 4.19496 17.4941 4.19129C17.4777 4.11779 17.4287 4.05545 17.3607 4.022C17.3573 4.02062 17.3433 4.01536 17.3099 4.00587C17.2567 3.99075 17.1855 3.97338 17.063 3.94372C16.2985 3.75853 15.9537 3.67551 15.6104 3.61972C14.6267 3.45981 13.6235 3.45981 12.6398 3.61972C12.2965 3.67551 11.9517 3.75853 11.1872 3.94372L10.7501 4.04959ZM4.14902 2.13913C5.29223 1.95329 6.45799 1.9533 7.6012 2.13914C8.00774 2.20523 8.41052 2.30281 9.13225 2.47765L9.80168 2.63981C9.87479 2.65752 9.91513 2.66723 9.94602 2.67381C9.97272 2.67949 9.97804 2.67967 9.97581 2.67945C9.99197 2.68102 10.0082 2.68102 10.0244 2.67945C10.0222 2.67967 10.0275 2.67949 10.0542 2.67381C10.0851 2.66723 10.1254 2.65752 10.1985 2.63982L10.868 2.47765C11.5897 2.30281 11.9925 2.20524 12.3991 2.13915C13.5423 1.95333 14.708 1.95333 15.8511 2.13915C16.2577 2.20524 16.6605 2.30281 17.3822 2.47765L17.4162 2.48588C17.4319 2.48969 17.4478 2.4935 17.4637 2.49732C17.6482 2.5417 17.8425 2.58844 18.0149 2.67215C18.4972 2.9064 18.8457 3.34888 18.9599 3.87292C19.0008 4.0602 19.0005 4.26011 19.0002 4.44971C19.0001 4.46606 19.0001 4.48234 19.0001 4.49852V15.8196C19.0001 15.8317 19.0001 15.8438 19.0001 15.8559C19.0003 15.9884 19.0004 16.1238 18.9843 16.2426C18.8576 17.1797 18.0092 17.8457 17.0693 17.7482C16.9501 17.7358 16.8185 17.7038 16.6896 17.6724C16.6779 17.6696 16.6661 17.6667 16.6544 17.6639C16.3018 17.5784 16.1428 17.54 15.9857 17.5078C14.7581 17.2559 13.4921 17.2559 12.2645 17.5078C12.1074 17.54 11.9484 17.5784 11.5958 17.6639L10.5517 17.9168C10.5427 17.9189 10.5337 17.9211 10.5246 17.9233C10.4134 17.9504 10.2943 17.9794 10.1697 17.9915C10.0569 18.0025 9.9433 18.0025 9.83048 17.9915C9.70589 17.9794 9.5868 17.9504 9.47557 17.9233C9.4665 17.9211 9.45749 17.9189 9.44854 17.9168L8.40443 17.6639C8.05182 17.5784 7.89278 17.54 7.7357 17.5078C6.50811 17.2559 5.2421 17.2559 4.01452 17.5078C3.85743 17.54 3.6984 17.5784 3.34578 17.6639C3.33408 17.6667 3.32234 17.6696 3.31058 17.6724C3.18171 17.7038 3.05015 17.7358 2.93091 17.7482C1.991 17.8457 1.14259 17.1797 1.01588 16.2426C0.999808 16.1238 0.999947 15.9883 1.00008 15.8559C1.00009 15.8438 1.00011 15.8317 1.00011 15.8196V4.49846C1.00011 4.48228 1.00008 4.466 1.00005 4.44965C0.999745 4.26006 0.999419 4.06018 1.04026 3.8729C1.15455 3.34885 1.50299 2.90636 1.98536 2.67211C2.15773 2.5884 2.35205 2.54166 2.53655 2.49729C2.55245 2.49346 2.56828 2.48965 2.58402 2.48584L2.61796 2.47762C3.3397 2.30278 3.74248 2.20521 4.14902 2.13913Z'\n fill='#025EFF'\n />\n </svg>\n)\n\nexport const CalendarDelete = () => (\n <svg\n width='20'\n height='20'\n viewBox='0 0 20 20'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M6.75 1C7.16421 1 7.5 1.33579 7.5 1.75V3H12.5V1.75C12.5 1.33579 12.8358 1 13.25 1C13.6642 1 14 1.33579 14 1.75V3H16.25C17.7688 3 19 4.23122 19 5.75V8.75C19 9.16421 18.6642 9.5 18.25 9.5H2.5V16.25C2.5 16.9404 3.05964 17.5 3.75 17.5H8.75C9.16421 17.5 9.5 17.8358 9.5 18.25C9.5 18.6642 9.16421 19 8.75 19H3.75C2.23122 19 1 17.7688 1 16.25V5.75C1 4.23122 2.23122 3 3.75 3H6V1.75C6 1.33579 6.33579 1 6.75 1ZM6 4.5H3.75C3.05964 4.5 2.5 5.05964 2.5 5.75V8H17.5V5.75C17.5 5.05964 16.9404 4.5 16.25 4.5H14V5.25C14 5.66421 13.6642 6 13.25 6C12.8358 6 12.5 5.66421 12.5 5.25V4.5H7.5V5.25C7.5 5.66421 7.16421 6 6.75 6C6.33579 6 6 5.66421 6 5.25V4.5ZM12 15.75C12 15.3358 12.3358 15 12.75 15H19.25C19.6642 15 20 15.3358 20 15.75C20 16.1642 19.6642 16.5 19.25 16.5H12.75C12.3358 16.5 12 16.1642 12 15.75Z'\n fill='#D20306'\n />\n </svg>\n)\n\nexport const CalendarAccept = () => (\n <svg\n width='20'\n height='20'\n viewBox='0 0 20 20'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <g clipPath='url(#clip0_678_4877)'>\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M6.75 1C7.16421 1 7.5 1.33579 7.5 1.75V3H12.5V1.75C12.5 1.33579 12.8358 1 13.25 1C13.6642 1 14 1.33579 14 1.75V3H16.25C17.7688 3 19 4.23122 19 5.75V8.75C19 9.16421 18.6642 9.5 18.25 9.5H2.5V16.25C2.5 16.9404 3.05964 17.5 3.75 17.5H8.75C9.16421 17.5 9.5 17.8358 9.5 18.25C9.5 18.6642 9.16421 19 8.75 19H3.75C2.23122 19 1 17.7688 1 16.25V5.75C1 4.23122 2.23122 3 3.75 3H6V1.75C6 1.33579 6.33579 1 6.75 1ZM6 4.5H3.75C3.05964 4.5 2.5 5.05964 2.5 5.75V8H17.5V5.75C17.5 5.05964 16.9404 4.5 16.25 4.5H14V5.25C14 5.66421 13.6642 6 13.25 6C12.8358 6 12.5 5.66421 12.5 5.25V4.5H7.5V5.25C7.5 5.66421 7.16421 6 6.75 6C6.33579 6 6 5.66421 6 5.25V4.5ZM19.765 13.2047C20.0661 13.4891 20.0797 13.9638 19.7953 14.265L15.5453 18.765C15.4014 18.9173 15.2005 19.0025 14.991 18.9999C14.7815 18.9974 14.5827 18.9074 14.4425 18.7517L12.1925 16.2517C11.9154 15.9438 11.9404 15.4696 12.2483 15.1925C12.5562 14.9154 13.0304 14.9404 13.3075 15.2483L15.0133 17.1436L18.7047 13.235C18.9891 12.9339 19.4638 12.9203 19.765 13.2047Z'\n fill='#07AF17'\n />\n </g>\n <defs>\n <clipPath id='clip0_678_4877'>\n <rect width='20' height='20' fill='white' />\n </clipPath>\n </defs>\n </svg>\n)\n\nexport const Star = () => (\n <svg\n width='20'\n height='20'\n viewBox='0 0 20 20'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M10.0928 2.52324C9.99905 2.47488 9.86181 2.50026 9.79335 2.64522L8.00799 6.42557C7.76215 6.94613 7.27807 7.32297 6.69953 7.41082L2.70736 8.01703C2.66367 8.02366 2.61758 8.04593 2.57857 8.08775C2.47149 8.20255 2.47467 8.39827 2.58316 8.50878L5.47192 11.4514C5.87611 11.8631 6.05323 12.4463 5.96057 13.0109L5.27863 17.1659C5.2674 17.2343 5.27853 17.3035 5.30766 17.3614C5.3787 17.5027 5.51526 17.5255 5.60897 17.474L9.17967 15.5123C9.69201 15.2308 10.3079 15.2308 10.8202 15.5123L14.3909 17.474C14.434 17.4977 14.48 17.5045 14.5234 17.4967C14.5864 17.4854 14.6553 17.4449 14.7056 17.3752C14.754 17.3081 14.7706 17.2347 14.7603 17.1681L14.0393 13.0109C13.9466 12.4463 14.1238 11.8631 14.5279 11.4514L17.4167 8.50878C17.4568 8.46792 17.4872 8.40957 17.4968 8.34084C17.5227 8.15465 17.3972 8.03293 17.2925 8.01703L13.3003 7.41082C12.7218 7.32297 12.2377 6.94613 11.9919 6.42557L10.2065 2.64522C10.1788 2.58657 10.1367 2.54586 10.0928 2.52324ZM8.437 2.00466C8.85086 1.12835 9.89685 0.734429 10.7804 1.1901C11.1257 1.36818 11.3985 1.65664 11.5629 2.00466L13.3482 5.78501C13.3898 5.87307 13.4613 5.91807 13.5255 5.92782L17.5177 6.53403C18.4915 6.6819 19.1133 7.60658 18.9825 8.54743C18.9296 8.92748 18.7578 9.28392 18.4871 9.5596L15.5984 12.5022C15.5379 12.5637 15.5029 12.662 15.5191 12.7656L16.2401 16.9229C16.4008 17.902 15.7151 18.807 14.788 18.9732C14.4037 19.042 14.0097 18.976 13.6686 18.7887L10.0979 16.8269C10.0354 16.7926 9.96447 16.7926 9.90194 16.8269L6.33123 18.7887C5.46031 19.2671 4.40376 18.9024 3.96767 18.0356C3.79485 17.692 3.7363 17.3015 3.79843 16.9229L4.48038 12.7679C4.49751 12.6635 4.4624 12.5642 4.40151 12.5022L1.51275 9.5596C0.840839 8.87517 0.828048 7.76534 1.48168 7.0646C1.74558 6.78168 2.09641 6.59261 2.48217 6.53403L6.47434 5.92782C6.53853 5.91807 6.61006 5.87307 6.65165 5.78501L8.437 2.00466Z'\n fill='#F57C00'\n />\n </svg>\n)\n\nexport const TestIcon = () => (\n <svg\n width='14'\n height='15'\n viewBox='0 0 14 15'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n d='M4.38413 3.03685H7.85239C8.24984 3.03685 8.52203 2.6436 8.37463 2.28174L7.99366 1.34663C7.90843 1.13708 7.7017 1 7.47142 1H4.76462C4.53482 1 4.32762 1.13754 4.24238 1.34663L3.86189 2.28174C3.71449 2.6436 3.98668 3.03685 4.38413 3.03685Z'\n fill='#FFB800'\n />\n <path\n d='M12.7209 8.27831C12.3488 7.9183 11.7508 7.9183 11.3788 8.27831L10.9775 8.67433L12.3206 9.98607L12.7209 9.59375C13.0929 9.22912 13.0929 8.64294 12.7209 8.27831Z'\n fill='#FFB800'\n />\n <path\n d='M10.4791 9.16455L8.18108 11.4169C8.12928 11.4631 8.09631 11.5277 8.0869 11.597L7.90795 12.6124C7.87028 12.8385 8.06806 13.0324 8.29881 12.9955L9.33952 12.8247C9.40545 12.8108 9.47138 12.7785 9.51847 12.7324L11.8212 10.4754L10.4791 9.16455Z'\n fill='#FFB800'\n />\n <path\n d='M9.68361 2.01953H9.02857L9.03092 2.02553C9.18727 2.40816 9.13923 2.84156 8.90331 3.18312C8.66738 3.52513 8.27464 3.7296 7.85317 3.7296H4.38444C3.96297 3.7296 3.57023 3.52559 3.33431 3.18312C3.09791 2.8411 3.05035 2.40816 3.20622 2.02507L3.20857 2.01953H2.55401C1.69224 2.01953 1 2.70263 1 3.54267V11.4768C1 12.3169 1.69224 13 2.55401 13H7.25888C7.20285 12.8412 7.1826 12.6709 7.21085 12.5006L7.39074 11.4791C7.41805 11.2728 7.53154 11.0591 7.70625 10.904L10.196 8.46286L10.8764 7.79037C10.9852 7.68514 11.1081 7.60298 11.2367 7.5319V3.54267C11.2376 2.70263 10.5407 2.01953 9.68361 2.01953ZM3.90128 9.69568H3.47229C3.23824 9.69568 3.04846 9.50967 3.04846 9.28028C3.04846 9.05088 3.23824 8.86488 3.47229 8.86488H3.90176C4.1358 8.86488 4.32558 9.05088 4.32558 9.28028C4.32558 9.50967 4.13533 9.69568 3.90128 9.69568ZM3.90128 7.17512H3.47229C3.23824 7.17512 3.04846 6.98911 3.04846 6.75972C3.04846 6.53032 3.23824 6.34432 3.47229 6.34432H3.90176C4.1358 6.34432 4.32558 6.53032 4.32558 6.75972C4.32558 6.98911 4.13533 7.17512 3.90128 7.17512ZM7.69683 9.69522H5.60128C5.36723 9.69522 5.17745 9.50921 5.17745 9.27981C5.17745 9.05042 5.36723 8.86441 5.60128 8.86441H7.69683C7.93087 8.86441 8.12065 9.05042 8.12065 9.27981C8.12065 9.50921 7.93135 9.69522 7.69683 9.69522ZM8.76533 7.17512H5.60033C5.36629 7.17512 5.17651 6.98911 5.17651 6.75972C5.17651 6.53032 5.36629 6.34432 5.60033 6.34432H8.76533C8.99937 6.34432 9.18915 6.53032 9.18915 6.75972C9.18915 6.98911 8.99937 7.17512 8.76533 7.17512Z'\n fill='#FFB800'\n />\n </svg>\n)\n\nexport const HiddenEyeIcon = () => (\n <svg\n width='16'\n height='17'\n viewBox='0 0 16 17'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n d='M7.92867 10.5001C8.45911 10.5001 8.96782 10.2894 9.34289 9.91436C9.71796 9.53929 9.92868 9.03058 9.92868 8.50015C9.92868 8.44158 9.926 8.38354 9.921 8.32622L7.75475 10.4925C7.81207 10.4975 7.86992 10.5001 7.92867 10.5001ZM14.5487 2.31372L13.7858 1.55157C13.759 1.5248 13.7227 1.50977 13.6848 1.50977C13.647 1.50977 13.6106 1.5248 13.5839 1.55157L11.6317 3.50425C10.5548 2.9539 9.34427 2.67872 8.0001 2.67872C4.56796 2.67872 2.00725 4.46622 0.31796 8.04122C0.250059 8.185 0.214844 8.34203 0.214844 8.50104C0.214844 8.66005 0.250059 8.81708 0.31796 8.96086C0.99296 10.3826 1.80576 11.5222 2.75635 12.3796L0.867246 14.268C0.840475 14.2948 0.825437 14.3311 0.825437 14.369C0.825437 14.4069 0.840475 14.4432 0.867246 14.47L1.62957 15.2323C1.65636 15.2591 1.69268 15.2741 1.73055 15.2741C1.76842 15.2741 1.80474 15.2591 1.83153 15.2323L14.5487 2.51586C14.562 2.50259 14.5725 2.48684 14.5797 2.46949C14.5869 2.45215 14.5906 2.43356 14.5906 2.41479C14.5906 2.39602 14.5869 2.37743 14.5797 2.36008C14.5725 2.34274 14.562 2.32698 14.5487 2.31372ZM4.78582 8.50015C4.78577 7.9573 4.92632 7.4237 5.1938 6.95132C5.46127 6.47894 5.84653 6.08389 6.31206 5.80466C6.77758 5.52543 7.30749 5.37154 7.85017 5.35798C8.39285 5.34442 8.92979 5.47166 9.40868 5.72729L8.54046 6.5955C8.19032 6.48339 7.81606 6.46989 7.45875 6.55648C7.10143 6.64307 6.77488 6.82641 6.51491 7.08638C6.25494 7.34635 6.0716 7.67291 5.98501 8.03022C5.89841 8.38753 5.91192 8.76179 6.02403 9.11193L5.15582 9.98015C4.91218 9.52493 4.78506 9.01646 4.78582 8.50015Z'\n fill='#DCDDDD'\n />\n <path\n d='M15.6819 8.03917C15.0533 6.71536 14.3052 5.6359 13.4374 4.80078L10.8635 7.37489C11.0805 7.94206 11.1286 8.55992 11.002 9.15383C10.8754 9.74774 10.5795 10.2923 10.1501 10.7217C9.72073 11.1511 9.17618 11.4469 8.58227 11.5735C7.98836 11.7001 7.3705 11.652 6.80333 11.4351L4.62012 13.6183C5.63297 14.087 6.75952 14.3213 7.99976 14.3213C11.4319 14.3213 13.9926 12.5338 15.6819 8.95882C15.7498 8.81504 15.785 8.65801 15.785 8.499C15.785 8.33999 15.7498 8.18295 15.6819 8.03917Z'\n fill='#DCDDDD'\n />\n </svg>\n)\n\nexport const EyeIcon = () => (\n <svg\n width='16'\n height='17'\n viewBox='0 0 16 17'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n d='M5.92868 8.50014C5.92868 9.03057 6.13939 9.53928 6.51446 9.91435C6.88953 10.2894 7.39824 10.5001 7.92868 10.5001C8.45911 10.5001 8.96782 10.2894 9.34289 9.91435C9.71796 9.53928 9.92868 9.03057 9.92868 8.50014C9.92868 7.96971 9.71796 7.461 9.34289 7.08593C8.96782 6.71085 8.45911 6.50014 7.92868 6.50014C7.39824 6.50014 6.88953 6.71085 6.51446 7.08593C6.13939 7.461 5.92868 7.96971 5.92868 8.50014ZM15.6822 8.03943C13.9894 4.47335 11.4305 2.67871 8.0001 2.67871C4.56796 2.67871 2.01082 4.47335 0.31796 8.04121C0.250059 8.18499 0.214844 8.34203 0.214844 8.50103C0.214844 8.66004 0.250059 8.81707 0.31796 8.96085C2.01082 12.5269 4.56975 14.3216 8.0001 14.3216C11.4322 14.3216 13.9894 12.5269 15.6822 8.95907C15.8197 8.66978 15.8197 8.33407 15.6822 8.03943ZM7.92868 11.643C6.19296 11.643 4.78582 10.2359 4.78582 8.50014C4.78582 6.76443 6.19296 5.35728 7.92868 5.35728C9.66439 5.35728 11.0715 6.76443 11.0715 8.50014C11.0715 10.2359 9.66439 11.643 7.92868 11.643Z'\n fill='#DCDDDD'\n />\n </svg>\n)\n\nexport const FlagIcon = () => (\n <svg\n width='14'\n height='15'\n viewBox='0 0 14 15'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n d='M11.229 5.1665L12.7165 3.18317C12.7813 3.09646 12.8208 2.99343 12.8304 2.8856C12.8401 2.77776 12.8196 2.66936 12.7711 2.57252C12.7227 2.47568 12.6483 2.39422 12.5563 2.33723C12.4642 2.28025 12.3581 2.24999 12.2498 2.24984H5.24984C5.24984 2.09513 5.18838 1.94675 5.07898 1.83736C4.96959 1.72796 4.82121 1.6665 4.6665 1.6665C4.51179 1.6665 4.36342 1.72796 4.25402 1.83736C4.14463 1.94675 4.08317 2.09513 4.08317 2.24984V12.1665H3.49984C3.34513 12.1665 3.19675 12.228 3.08736 12.3374C2.97796 12.4468 2.9165 12.5951 2.9165 12.7498C2.9165 12.9045 2.97796 13.0529 3.08736 13.1623C3.19675 13.2717 3.34513 13.3332 3.49984 13.3332H5.83317C5.98788 13.3332 6.13625 13.2717 6.24565 13.1623C6.35505 13.0529 6.4165 12.9045 6.4165 12.7498C6.4165 12.5951 6.35505 12.4468 6.24565 12.3374C6.13625 12.228 5.98788 12.1665 5.83317 12.1665H5.24984V8.08317H12.2498C12.3581 8.08302 12.4642 8.05276 12.5563 7.99578C12.6483 7.93879 12.7227 7.85733 12.7711 7.76049C12.8196 7.66365 12.8401 7.55525 12.8304 7.44741C12.8208 7.33957 12.7813 7.23654 12.7165 7.14984L11.229 5.1665Z'\n fill='#FFB800'\n />\n </svg>\n)\n\nexport const GoldStarIcon = () => (\n <svg\n width='14'\n height='15'\n viewBox='0 0 14 15'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <g clipPath='url(#clip0_23522_33890)'>\n <path\n d='M13.9308 5.27509L9.73388 4.66514L7.85774 0.86162C7.8065 0.757482 7.7222 0.67318 7.61806 0.621937C7.35689 0.493005 7.03951 0.600449 6.90893 0.86162L5.03279 4.66514L0.835862 5.27509C0.720153 5.29162 0.614362 5.34617 0.533366 5.42882C0.435446 5.52946 0.381488 5.66486 0.383347 5.80527C0.385207 5.94568 0.442733 6.0796 0.543284 6.17762L3.57982 9.13811L2.86242 13.3185C2.8456 13.4158 2.85636 13.5158 2.89348 13.6072C2.93061 13.6987 2.99261 13.7779 3.07246 13.8359C3.15231 13.8939 3.24682 13.9283 3.34526 13.9353C3.4437 13.9424 3.54213 13.9216 3.62941 13.8756L7.38333 11.9019L11.1373 13.8756C11.2397 13.9301 11.3588 13.9483 11.4728 13.9285C11.7604 13.8789 11.9538 13.6061 11.9042 13.3185L11.1869 9.13811L14.2234 6.17762C14.306 6.09662 14.3606 5.99083 14.3771 5.87512C14.4217 5.58585 14.2201 5.31807 13.9308 5.27509Z'\n fill='#FFB800'\n />\n </g>\n <defs>\n <clipPath id='clip0_23522_33890'>\n <rect\n width='14'\n height='14'\n fill='white'\n transform='translate(0 0.5)'\n />\n </clipPath>\n </defs>\n </svg>\n)\n\nexport const TagIcon = () => (\n <svg\n width='20'\n height='21'\n viewBox='0 0 20 21'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n d='M11.25 1.125L0 12.375L6.875 19.25L18.125 8V1.125H11.25ZM14.375 6.125C14.1278 6.125 13.8861 6.05169 13.6805 5.91434C13.475 5.77699 13.3148 5.58176 13.2201 5.35335C13.1255 5.12495 13.1008 4.87361 13.149 4.63114C13.1972 4.38866 13.3163 4.16593 13.4911 3.99112C13.6659 3.8163 13.8887 3.69725 14.1311 3.64902C14.3736 3.60079 14.6249 3.62554 14.8534 3.72015C15.0818 3.81476 15.277 3.97498 15.4143 4.18054C15.5517 4.3861 15.625 4.62777 15.625 4.875C15.625 5.20652 15.4933 5.52446 15.2589 5.75888C15.0245 5.9933 14.7065 6.125 14.375 6.125Z'\n fill='#21272A'\n />\n <path\n d='M18.75 3V8.625L8.47266 18.9023L9.45313 19.875L20 9.25V3H18.75Z'\n fill='#21272A'\n />\n </svg>\n)\n\nexport const EducationIcon = () => (\n <svg\n width='20'\n height='21'\n viewBox='0 0 20 21'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <g clipPath='url(#clip0_22306_18116)'>\n <path\n d='M10 14.9699L3.75 11.3984V15.243L10 18.7148L16.25 15.243V11.3984L10 14.9699Z'\n fill='#21272A'\n />\n <path\n d='M20.0098 8.0002L10 2.28027L-0.00976562 8.0002L10 13.7201L18.125 9.07715V15.5002H20V8.00566L20.0098 8.0002Z'\n fill='#21272A'\n />\n </g>\n <defs>\n <clipPath id='clip0_22306_18116'>\n <rect\n width='20'\n height='20'\n fill='white'\n transform='translate(0 0.5)'\n />\n </clipPath>\n </defs>\n </svg>\n)\n\nexport const FilterIcon = () => {\n return (\n <svg\n width='35'\n height='35'\n viewBox='0 0 35 35'\n fill='currentColor'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n d='M26.5 8.4961V26.5036H8.5V8.4961H26.5ZM28 6.99609L7 6.99619L7 28.0036L28 27.9961V6.99609ZM10.2625 9.9886H17.7625V24.9886H10.2625V9.9886Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n\nexport const LeftArrowIcon = () => {\n return (\n <svg\n width='16'\n height='17'\n viewBox='0 0 16 17'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n d='M11.3125 3.36853V13.631C11.3125 13.9388 10.9875 14.1107 10.7656 13.9201L4.81563 8.78884C4.64531 8.64196 4.64531 8.35915 4.81563 8.21071L10.7656 3.07946C10.9875 2.88884 11.3125 3.06071 11.3125 3.36853Z'\n fill='#404041'\n />\n </svg>\n )\n}\n\nexport const RightArrowIcon = () => {\n return (\n <svg\n width='8'\n height='11'\n viewBox='0 0 8 11'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n d='M0.6875 0.368526L0.6875 10.631C0.6875 10.9388 1.0125 11.1107 1.23438 10.9201L7.18437 5.78884C7.35469 5.64196 7.35469 5.35915 7.18437 5.21071L1.23438 0.079463C1.0125 -0.111162 0.6875 0.0607128 0.6875 0.368526Z'\n fill='#404041'\n />\n </svg>\n )\n}\n\nconst getIconEvent = {\n [EVENT_TYPES.TEACHING]: <Book />,\n [EVENT_TYPES.BUSY]: <CalendarDelete />,\n [EVENT_TYPES.HOLIDAY]: <Star />,\n [EVENT_TYPES.OTHER]: <CalendarAccept />,\n [EVENT_TYPES.LIVE_ONLINE]: ''\n} as const\n\nexport const getIconforEvent = (event: IEvent) => {\n if (event.source === CALENDAR_TYPE.LMS) {\n const icon = []\n if (event.isCaseStudy) {\n icon.push(<GoldStarIcon />)\n }\n if (event.isTest) {\n icon.push(<TestIcon />)\n }\n\n if (event.isKeyContentBefore) {\n icon.push(<FlagIcon />)\n }\n\n return icon\n } else {\n return getIconEvent[event.type]\n }\n}\n","/* eslint-disable no-unused-vars */\nimport React from 'react'\nimport { ButtonColor, ButtonType } from '../../../types'\nimport styles from '../SAPPCalendar.module.css'\n\ninterface IButtonProps {\n type?: ButtonType\n color?: ButtonColor\n hoverColor?: ButtonColor\n onClick?: () => void\n children: any\n}\n\nconst Button = ({\n type = 'button',\n color = 'default',\n onClick,\n children\n}: IButtonProps) => {\n console.log('value:', styles[`btn-${color}`])\n return (\n <button\n type={type}\n onClick={onClick}\n className={`${styles.btn} ${styles[`btn-${color}`]}`}\n >\n {children}\n </button>\n )\n}\n\nexport default Button\n","import { clsx } from 'clsx'\nimport React from 'react'\nimport styles from '../SAPPCalendar.module.css'\n\ninterface IIconProps {\n icon: React.ReactNode\n onClick?: () => void\n className?: string\n}\n\nconst Icon = ({ icon, onClick, className }: IIconProps) => {\n return (\n <div\n className={clsx(\n styles.icon,\n onClick && styles['cursor-pointer'],\n className\n )}\n onClick={onClick}\n >\n {icon}\n </div>\n )\n}\n\nexport default Icon\n","/* eslint-disable no-unused-vars */\nimport { DatePicker } from 'antd'\nimport dayjs, { Dayjs } from 'dayjs'\nimport React, { Dispatch, SetStateAction } from 'react'\nimport { Left, Right } from '../../../icons'\nimport { CalendarMode } from '../../../types'\nimport Button from '../common/Button'\nimport Icon from '../common/Icon'\n// TODO: config đường dẫn dạng @utils, @component,... tương ứng với folder nào ( sửa tất cả e nhé)\nimport { customDateFormat } from '../../../utils'\nimport styles from '../SAPPCalendar.module.css'\n\ninterface IHeaderCalendarProps {\n title?: string\n showTeacherName?: boolean\n currentDate: Dayjs\n setCurrentDate: Dispatch<SetStateAction<Dayjs>>\n calendarMode: CalendarMode\n setCalendarMode: Dispatch<SetStateAction<CalendarMode>>\n}\n\nconst HeaderCalendar = ({\n title,\n showTeacherName,\n currentDate,\n setCurrentDate,\n calendarMode,\n setCalendarMode\n}: IHeaderCalendarProps) => {\n const handleChangeDate = (date: Dayjs) => {\n setCurrentDate(date)\n }\n\n const handleChangeMode = (mode: CalendarMode) => {\n setCalendarMode(mode)\n setCurrentDate(dayjs())\n }\n\n return (\n <div className={styles['header-calendar']}>\n <div className={styles['header-calendar__nav']}>\n <Icon\n icon={<Left />}\n onClick={() =>\n handleChangeDate(currentDate.subtract(1, calendarMode))\n }\n />\n <DatePicker\n picker={calendarMode === 'day' ? 'date' : calendarMode}\n onChange={handleChangeDate}\n format={(value) => customDateFormat(value, 'MMMM, YYYY')}\n value={currentDate}\n allowClear={false}\n suffixIcon={null}\n className={styles['header-calendar__date-picker']}\n size='large'\n />\n <Icon\n icon={<Right />}\n onClick={() => handleChangeDate(currentDate.add(1, calendarMode))}\n />\n </div>\n {showTeacherName && (\n <div className={styles['header-calendar__title']}>{title}</div>\n )}\n <div className={styles['header-calendar__controls']}>\n <Button onClick={() => handleChangeDate(dayjs())}>Today</Button>\n <div className={styles['header-calendar__divider']} />\n <Button\n color={calendarMode === 'month' ? 'primary' : 'default'}\n onClick={() => handleChangeMode('month')}\n >\n Month\n </Button>\n <Button\n color={calendarMode === 'week' ? 'primary' : 'default'}\n onClick={() => handleChangeMode('week')}\n >\n Week\n </Button>\n </div>\n </div>\n )\n}\n\nexport default HeaderCalendar\n","import { Tooltip } from 'antd'\nimport { TooltipPlacement } from 'antd/es/tooltip'\nimport React from 'react'\nimport styles from '../SAPPCalendar.module.css'\n\ninterface ICustomTooltipProps {\n title: React.ReactNode\n children: React.ReactNode\n placement?: TooltipPlacement\n}\n\nconst CustomTooltip = ({\n title,\n children,\n placement = 'top'\n}: ICustomTooltipProps) => {\n return (\n <Tooltip\n color='#ffffff'\n title={<div className={styles['text-gray-600']}>{title}</div>}\n placement={placement}\n >\n <div>{children}</div>\n </Tooltip>\n )\n}\n\nexport default CustomTooltip\n","import React from 'react'\nimport { TIME_FORMAT } from '../../../constants'\n// eslint-disable-next-line no-unused-vars\nimport { IEvent } from '../../../types'\nimport { convertType, customDateFormat } from '../../../utils'\nimport styles from '../SAPPCalendar.module.css'\nimport CustomTooltip from '../common/CustomTooltip'\nimport { getIconforEvent } from '../../../icons'\n\ninterface IMonthlyEventProps {\n event: IEvent\n isSameMonth: boolean\n onEventDetail?: (event: IEvent) => void\n}\n\nconst MonthlyEvent = ({\n event,\n isSameMonth,\n onEventDetail\n}: IMonthlyEventProps) => {\n const formattedDate =\n customDateFormat(event.startDate, TIME_FORMAT) +\n ' - ' +\n customDateFormat(event.endDate, TIME_FORMAT)\n const formattedDateStart = customDateFormat(event.startDate, TIME_FORMAT)\n\n return (\n <React.Fragment>\n <li\n className={\n styles[`event-${isSameMonth ? convertType[event.type] : 'default'}`]\n }\n style={{ cursor: 'pointer' }}\n onClick={() => onEventDetail && onEventDetail(event)}\n >\n <div className={styles['monthly-event__title']}>\n <div className={styles['weekly-event__title_icon']}>\n {getIconforEvent(event)}\n </div>\n <CustomTooltip title={event.title}>\n {event?.title?.length > 5\n ? event?.title?.slice(0, 5) + '...'\n : event?.title}\n </CustomTooltip>\n </div>\n <div className={styles['monthly-event__date']}>\n <CustomTooltip title={formattedDate}>{formattedDate}</CustomTooltip>\n </div>\n <div className={styles['monthly-event__date_tablet']}>\n {getIconforEvent(event)}\n <CustomTooltip title={formattedDate}>\n {formattedDateStart}\n </CustomTooltip>\n </div>\n </li>\n </React.Fragment>\n )\n}\n\nexport default MonthlyEvent\n","/* eslint-disable no-unused-vars */\nimport dayjs, { Dayjs } from 'dayjs'\nimport React, { MouseEvent } from 'react'\nimport { IEvent } from '../../../types'\nimport CustomTooltip from '../common/CustomTooltip'\nimport styles from '../SAPPCalendar.module.css'\nimport MonthlyEvent from './MonthlyEvent'\n\ninterface IMonthlyCellProps {\n events: IEvent[]\n date: Dayjs\n currentDate: Dayjs\n onOpenDetail: (date: Date, events: IEvent[]) => void\n onOpenCreate: (date: Date) => void\n onEventDetail?: (event: IEvent) => void\n}\n\nconst MonthlyCell = ({\n currentDate,\n events,\n date,\n onOpenDetail,\n onOpenCreate,\n onEventDetail\n}: IMonthlyCellProps) => {\n const hasMore = events.length > 2\n const isSameMonth = currentDate.isSame(date, 'month')\n const isToday = dayjs().isSame(date, 'day')\n\n const handleOpenCreateModal = (e: MouseEvent<HTMLDivElement>) => {\n if (e.target !== e.currentTarget) return\n\n onOpenCreate(\n dayjs(date).hour(dayjs().hour()).minute(dayjs().minute()).toDate()\n )\n }\n\n return (\n <div\n className={`${styles['monthly-calendar__cell']} ${\n isToday\n ? styles['monthly-calendar__cell--active']\n : styles['border-gray-4']\n } ${isSameMonth ? styles['bg-white'] : styles['bg-button']}`}\n onClick={handleOpenCreateModal}\n >\n <div\n className={\n isSameMonth ? styles['text-black'] : styles['text-secondary-text']\n }\n >\n {date.format('DD')}\n </div>\n <ul onClick={() => onOpenDetail(date.toDate(), events)}>\n {events.slice(0, 2).map((event, index) => (\n <MonthlyEvent\n key={index}\n event={event}\n isSameMonth={isSameMonth}\n onEventDetail={onEventDetail}\n />\n ))}\n {hasMore && (\n <CustomTooltip\n placement='bottom'\n title={\n <div className={styles['calendar-tooltip']}>\n {events.slice(2, events.length).map((event, index) => (\n <MonthlyEvent\n key={index}\n event={event}\n isSameMonth={isSameMonth}\n onEventDetail={onEventDetail}\n />\n ))}\n </div>\n }\n >\n <div\n className={\n isSameMonth\n ? styles['text-info']\n : styles['text-secondary-text']\n }\n >\n +{Math.max(events.length - 2, 0)} More\n </div>\n </CustomTooltip>\n )}\n </ul>\n </div>\n )\n}\n\nexport default MonthlyCell\n","/* eslint-disable no-unused-vars */\nimport { Table } from 'antd'\nimport clsx from 'clsx'\nimport dayjs, { Dayjs } from 'dayjs'\nimport React from 'react'\nimport { DAYS_OF_WEEK } from '../../../constants'\nimport {\n EventsByDay,\n ICell,\n IEvent,\n INorm,\n INormOfWeek,\n ITableColumn\n} from '../../../types'\nimport { calculateNormOfWeek, daysOfWeekKeys } from '../../../utils'\nimport styles from '../SAPPCalendar.module.css'\nimport MonthlyCell from './MonthlyCell'\n\ninterface IMonthlyCalendarProps {\n currentDate: Dayjs\n startDate: Dayjs\n endDate: Dayjs\n events: IEvent[]\n norms: INorm[]\n showWeeklyNorm: boolean\n onOpenDetail: (date: Date, events: IEvent[]) => void\n onOpenCreate: (date: Date) => void\n onEventDetail?: (event: IEvent) => void\n loading?: boolean\n}\n\nconst getEventsOfWeek = (events: IEvent[], targetDate: Dayjs): EventsByDay =>\n daysOfWeekKeys.reduce((acc: EventsByDay, day, index) => {\n const currentDate = targetDate.add(index, 'day')\n\n acc[day] = {\n events: events.filter((event) =>\n dayjs(event.startDate).isSame(currentDate, 'date')\n ),\n date: currentDate\n }\n return acc\n }, {} as EventsByDay)\n\nconst MonthlyCalendar = ({\n currentDate,\n startDate,\n endDate,\n events,\n norms,\n showWeeklyNorm,\n onOpenDetail,\n onOpenCreate,\n onEventDetail,\n loading\n}: IMonthlyCalendarProps) => {\n const getTableColumns = () => {\n const weeklyNormColumn: ITableColumn = {\n title: (\n <div\n className={`${styles['monthly-calendar__title']} ${styles['monthly-calendar__title-active']}`}\n >\n Weekly Norm\n </div>\n ),\n dataIndex: 'norm',\n key: 'norm',\n width: 1,\n render: (value: INormOfWeek) => {\n const { normOfWeek, totalNorm } = value\n return (\n <div className={styles['weekly-norm__cell']}>\n <div\n className={clsx(\n styles['weekly-norm__value'],\n normOfWeek > totalNorm && styles['!text-error']\n )}\n >\n {`${normOfWeek}/${totalNorm}`}\n </div>\n </div>\n )\n }\n }\n\n const dayColumns: ITableColumn[] = Object.values(DAYS_OF_WEEK).map(\n (day, index) => ({\n title: (\n <div className={styles['monthly-calendar__title']}>\n {day.slice(0, 3)}\n </div>\n ),\n dataIndex: day,\n key: day,\n width: '14%',\n render: (value: ICell) => (\n <MonthlyCell\n key={index}\n events={value.events}\n date={value.date}\n currentDate={currentDate}\n onOpenDetail={onOpenDetail}\n onOpenCreate={onOpenCreate}\n onEventDetail={onEventDetail}\n />\n )\n })\n )\n\n return showWeeklyNorm ? [weeklyNormColumn, ...dayColumns] : dayColumns\n }\n\n const getWeeksOfFullMonth = () => {\n const weeks: Dayjs[] = []\n let targetDate = startDate.clone()\n\n while (targetDate.isBefore(endDate)) {\n weeks.push(targetDate)\n targetDate = targetDate.add(1, 'week')\n }\n\n return weeks\n }\n\n const getTableData = () => {\n const weeks = getWeeksOfFullMonth()\n\n const data = weeks.map((week, index) => {\n const eventsOfWeek = getEventsOfWeek(events, week)\n\n if (!showWeeklyNorm) {\n return {\n id: index,\n ...eventsOfWeek\n }\n }\n\n return {\n id: index,\n norm: calculateNormOfWeek(\n norms,\n events,\n week,\n week.endOf('week').add(1, 'day') // add 1 day because end of week is Saturday\n ),\n ...eventsOfWeek\n }\n })\n\n return data\n }\n\n return (\n <Table\n rowKey={(record) => record.id}\n columns={getTableColumns()}\n dataSource={getTableData()}\n pagination={false}\n rowHoverable={false}\n className={styles['monthly-calendar']}\n loading={loading}\n />\n )\n}\n\nexport default MonthlyCalendar\n","/* eslint-disable no-unused-vars */\nimport clsx from 'clsx'\nimport dayjs from 'dayjs'\nimport React from 'react'\nimport {\n BORDER_WEEKLY_CELL,\n MIN_HEIGHT_EVENT,\n MIN_HEIGHT_HIDE_ALL,\n MIN_HEIGHT_HIDE_DETAILS,\n MINUTES_PER_HOUR,\n TIME_FORMAT\n} from '../../../constants'\nimport { IEvent } from '../../../types'\nimport { convertType, customDateFormat } from '../../../utils'\nimport styles from '../SAPPCalendar.module.css'\nimport CustomTooltip from '../common/CustomTooltip'\nimport { getIconforEvent } from '../../../icons'\n\ninterface IWeeklyEventProps {\n event: IEvent\n onOpenDetail: (date: Date, events: IEvent[]) => void\n onEventDetail?: (event: IEvent) => void\n zIndex: number\n}\n\nconst calculateBoxSize = (\n startTime: Date,\n endTime: Date,\n isAllDay?: boolean\n) => {\n if (isAllDay) {\n return {\n top: 10,\n height: 50\n }\n }\n\n const minutes = dayjs(startTime).minute()\n const diffMinutes = dayjs(endTime).diff(startTime, 'minute', true)\n\n const top = Math.floor((minutes / MINUTES_PER_HOUR) * 100)\n const height = Math.floor((diffMinutes / MINUTES_PER_HOUR) * 100)\n const border = Math.floor(\n ((top + height) / MINUTES_PER_HOUR) * BORDER_WEEKLY_CELL\n )\n\n return {\n top,\n height: height + border\n }\n}\n\nconst WeeklyEvent = ({\n event,\n onOpenDetail,\n onEventDetail,\n zIndex\n}: IWeeklyEventProps) => {\n const { top, height } = calculateBoxSize(\n event.startDate,\n event.endDate,\n event.isAllDay\n )\n\n const isMinHeight = height < MIN_HEIGHT_EVENT\n\n const formattedDate =\n customDateFormat(event.startDate, TIME_FORMAT) +\n ' - ' +\n customDateFormat(event.endDate, TIME_FORMAT)\n\n return (\n <div\n className={clsx(\n styles[`event-${convertType[event.type]}`],\n isMinHeight && styles['event--min-height']\n )}\n onClick={() => {\n onOpenDetail(dayjs(event.startDate).toDate(), [event])\n onEventDetail && onEventDetail(event)\n }}\n style={{\n top: `${top}%`,\n height: `${Math.max(height, MIN_HEIGHT_EVENT)}%`,\n zIndex\n }}\n >\n <div\n className={clsx(\n styles['weekly-event'],\n height <= MIN_HEIGHT_HIDE_ALL && styles['weekly-event--collapse']\n )}\n >\n <div\n className={clsx(\n height <= MIN_HEIGHT_HIDE_DETAILS &&\n styles['weekly-event--collapse']\n )}\n >\n <div className={styles['weekly-event__title']}>\n <div className={styles['weekly-event__title_icon']}>\n {getIconforEvent(event)}\n </div>\n <CustomTooltip title={event.title}>\n {event.title.length > 5 ? event.title.slice(0, 5) + '...' : ''}\n </CustomTooltip>\n </div>\n <div className={styles['weekly-event__date']}>\n <CustomTooltip title={formattedDate}>{formattedDate}</CustomTooltip>\n </div>\n </div>\n </div>\n </div>\n )\n}\nexport default WeeklyEvent\n","/* eslint-disable prettier/prettier */\nimport dayjs, { Dayjs } from 'dayjs'\nimport React, { MouseEvent, useMemo } from 'react'\nimport { EVENT_TYPES } from '../../../constants'\nimport { IEvent } from '../../../types'\nimport CustomTooltip from '../common/CustomTooltip'\nimport styles from '../SAPPCalendar.module.css'\nimport WeeklyEvent from './WeeklyEvent'\n\ninterface IWeeklyCellProps {\n events: IEvent[]\n date: Dayjs\n onOpenDetail: (date: Date, events: IEvent[]) => void\n onOpenCreate: (date: Date) => void\n onEventDetail?: (event: IEvent) => void\n}\n\nconst WeeklyCell = ({\n events,\n date,\n onOpenDetail,\n onOpenCreate,\n onEventDetail\n}: IWeeklyCellProps) => {\n const isToday = dayjs().isSame(date, 'day')\n\n const handleOpenCreateModal = (e: MouseEvent<HTMLDivElement>) => {\n if (e.target !== e.currentTarget) return\n\n onOpenCreate(dayjs(date).toDate())\n }\n\n events.sort((a, b) =>\n a.type === EVENT_TYPES.BUSY && b.type !== EVENT_TYPES.BUSY ? 1 : -1\n )\n\n const renderWeeklyEvent = useMemo(() => {\n const isAllDay = events.some((item: IEvent) => item.isAllDay)\n if (isAllDay && events.length > 1) {\n return (\n <React.Fragment>\n <WeeklyEvent\n event={events[0]}\n onOpenDetail={onOpenDetail}\n onEventDetail={onEventDetail}\n zIndex={1}\n />\n <div className={styles['see-more']}>\n <CustomTooltip\n placement='bottom'\n title={\n <div className={styles['calendar-tooltip']}>\n {events.slice(1, events.length).map((event, index) => (\n <WeeklyEvent\n event={event}\n onOpenDetail={onOpenDetail}\n onEventDetail={onEventDetail}\n key={index + 1}\n zIndex={index + 1}\n />\n ))}\n </div>\n }\n >\n +{Math.max(events.length - 1, 0)} More\n </CustomTooltip>\n </div>\n </React.Fragment>\n )\n }\n return events.map((event, index) => (\n <WeeklyEvent\n key={index}\n event={event}\n onOpenDetail={onOpenDetail}\n onEventDetail={onEventDetail}\n zIndex={index + 1}\n />\n ))\n }, [events])\n\n return (\n <div\n className={`${styles['weekly-calendar__cell']} ${\n isToday ? styles['bg-info/10'] : styles['bg-white']\n }`}\n onClick={handleOpenCreateModal}\n >\n {renderWeeklyEvent}\n </div>\n )\n}\n\nexport default WeeklyCell\n","/* eslint-disable no-unused-vars */\nimport { Table } from 'antd'\nimport clsx from 'clsx'\nimport dayjs, { Dayjs } from 'dayjs'\nimport isBetween from 'dayjs/plugin/isBetween'\nimport React from 'react'\nimport { CALENDAR_TYPE, DAYS_OF_WEEK, HOURS_PER_DAY } from '../../../constants'\nimport { EventsByDay, ICell, IEvent, INorm, ITableColumn } from '../../../types'\nimport {\n calculateNormOfWeek,\n checkIsAllday,\n daysOfWeekKeys\n} from '../../../utils'\nimport styles from '../SAPPCalendar.module.css'\nimport WeeklyCell from './WeeklyCell'\n\ndayjs.extend(isBetween)\n\nexport interface IWeeklyCalendarProps {\n startDate: Dayjs\n endDate: Dayjs\n events: IEvent[]\n norms: INorm[]\n showWeeklyNorm: boolean\n onOpenDetail: (date: Date, events: IEvent[]) => void\n onOpenCreate: (date: Date) => void\n onEventDetail?: (event: IEvent) => void\n loading?: boolean\n type?: 'LMS' | 'OPS'\n}\n\nconst getEventAllDay = (events: IEvent[], targetDate: Dayjs) =>\n daysOfWeekKeys.reduce((acc: EventsByDay, day, index) => {\n const currentDate = targetDate.add(index, 'day')\n\n acc[day] = {\n events: events.reduce((filteredEvents: IEvent[], event) => {\n if (\n dayjs(event.startDate).isSame(currentDate.startOf('day')) &&\n checkIsAllday(dayjs(event.startDate), dayjs(event.endDate))\n ) {\n filteredEvents.push({\n ...event,\n isAllDay: true\n })\n }\n\n return filteredEvents\n }, []),\n date: currentDate\n }\n return acc\n }, {} as EventsByDay)\n\nconst getEventsOfDay = (events: IEvent[], targetHour: Dayjs) =>\n daysOfWeekKeys.reduce((acc: EventsByDay, day, index) => {\n const currentDate = targetHour.add(index, 'day')\n\n acc[day] = {\n events: events.filter(\n (event) =>\n dayjs(event.startDate).isSame(currentDate, 'hour') &&\n !checkIsAllday(dayjs(event.startDate), dayjs(event.endDate))\n ),\n date: currentDate\n }\n return acc\n }, {} as EventsByDay)\n\nconst WeeklyCalendar = ({\n startDate,\n endDate,\n events,\n norms,\n showWeeklyNorm,\n onOpenDetail,\n onOpenCreate,\n onEventDetail,\n loading,\n type\n}: IWeeklyCalendarProps) => {\n const getTableColumns = () => {\n const { normOfWeek, totalNorm } = calculateNormOfWeek(\n norms,\n events,\n startDate,\n endDate\n )\n const hourColumn: ITableColumn = {\n title: (\n <div className={styles['weekly-calendar__title']}>\n {showWeeklyNorm && (\n <React.Fragment>\n <div>Weekly Norm</div>\n <div\n className={clsx(\n normOfWeek > totalNorm && styles['!text-error']\n )}\n >{`${normOfWeek}/${totalNorm}`}</div>\n </React.Fragment>\n )}\n </div>\n ),\n dataIndex: 'hour',\n key: 'hour',\n width: 1,\n render: (value: string) => <div>{value}</div>\n }\n\n const dayColumns: ITableColumn[] = Object.values(DAYS_OF_WEEK).map(\n (day, index) => ({\n title: (\n <div className={styles['weekly-calendar__title']}>\n <div>{day.slice(0, 3)}</div>\n <div>{dayjs(startDate).add(index, 'day').format('DD/MM')}</div>\n </div>\n ),\n dataIndex: day,\n key: day,\n render: (value: ICell) => (\n <WeeklyCell\n key={index}\n events={value.events}\n date={value.date}\n onOpenDetail={onOpenDetail}\n onOpenCreate={onOpenCreate}\n onEventDetail={onEventDetail}\n />\n )\n })\n )\n\n return [hourColumn, ...dayColumns]\n }\n\n const getTableData = () => {\n const data = []\n // All day\n data.push({\n id: -1,\n hour: 'All day',\n ...getEventAllDay(events, startDate)\n })\n const count = type === CALENDAR_TYPE.LMS ? 7 : 0\n // Hour\n for (let i = count; i < HOURS_PER_DAY; i++) {\n const targetHour = dayjs(startDate).add(i, 'hour')\n\n data.push({\n id: i,\n hour: targetHour.format('HH:mm'),\n ...getEventsOfDay(events, targetHour)\n })\n }\n\n return data\n }\n\n return (\n <Table\n rowKey={(record) => record.id}\n columns={getTableColumns()}\n dataSource={getTableData()}\n pagination={false}\n rowHoverable={false}\n className={styles['weekly-calendar']}\n loading={loading}\n />\n )\n}\n\nexport default WeeklyCalendar\n","/* eslint-disable no-unused-vars */\nimport clsx from 'clsx'\nimport dayjs from 'dayjs'\nimport React from 'react'\nimport { EVENT_TYPES, MINUTES_PER_HOUR, TIME_FORMAT } from '../../../constants'\nimport { getIconforEvent } from '../../../icons'\nimport { IEvent } from '../../../types'\nimport { convertType, customDateFormat } from '../../../utils'\nimport styles from '../SAPPCalendar.module.css'\nimport CustomTooltip from '../common/CustomTooltip'\n\ninterface IWeeklyEventProps {\n event: IEvent\n onOpenDetail: (date: Date, events: IEvent[]) => void\n onEventDetail?: (event: IEvent) => void\n}\n\nconst calculateBoxSize = (startTime: Date, endTime: Date) => {\n const minutes = dayjs(startTime).minute()\n const diffMinutes = dayjs(endTime).diff(startTime, 'hour', true)\n return {\n width: diffMinutes || 1,\n left: Math.floor((minutes / MINUTES_PER_HOUR) * 100)\n }\n}\n\nconst LMSWeeklyEvent = ({\n event,\n onOpenDetail,\n onEventDetail\n}: IWeeklyEventProps) => {\n const formattedDate =\n customDateFormat(event.startDate, TIME_FORMAT) +\n ' - ' +\n customDateFormat(event.endDate, TIME_FORMAT)\n\n const { width, left } = calculateBoxSize(event.startDate, event.endDate)\n return (\n <div\n className={styles[`event-${convertType[event.type]}`]}\n onClick={() => {\n onOpenDetail(dayjs(event.startDate).toDate(), [event])\n onEventDetail && onEventDetail(event)\n }}\n style={{\n top: `0%`,\n height: `100%`,\n width: width * 100 + '%',\n left: left + '%',\n zIndex: event.type === EVENT_TYPES.BUSY ? 2 : 1\n }}\n >\n <div className={clsx(styles['weekly-event'])}>\n <div className={clsx(styles['weekly-event--collapse'])}>\n <div className={styles['weekly-event__title']}>\n <div className={styles['weekly-event__title_icon']}>\n {getIconforEvent(event)}\n </div>\n <CustomTooltip title={event.title}>\n {event.title.length > 5 ? event.title.slice(0, 5) + '...' : ''}\n </CustomTooltip>\n </div>\n </div>\n <div className={styles['weekly-event__date']}>\n <CustomTooltip title={formattedDate}>{formattedDate}</CustomTooltip>\n </div>\n </div>\n </div>\n )\n}\nexport default LMSWeeklyEvent\n","/* eslint-disable no-unused-vars */\n/* eslint-disable prettier/prettier */\nimport dayjs, { Dayjs } from 'dayjs'\nimport React, { MouseEvent, useMemo } from 'react'\nimport { EVENT_TYPES } from '../../../constants'\nimport { IEvent } from '../../../types'\nimport styles from '../SAPPCalendar.module.css'\nimport CustomTooltip from '../common/CustomTooltip'\nimport LMSWeeklyEvent from './LMSWeeklyEvent'\n\ninterface IWeeklyCellProps {\n events: IEvent[]\n date: Dayjs\n onOpenDetail: (date: Date, events: IEvent[]) => void\n onOpenCreate: (date: Date) => void\n onEventDetail?: (event: IEvent) => void,\n}\n\nconst LMSWeeklyCell = ({\n events,\n date,\n onOpenDetail,\n onOpenCreate,\n onEventDetail,\n}: IWeeklyCellProps) => {\n const isToday = dayjs().isSame(date, 'day')\n\n const handleOpenCreateModal = (e: MouseEvent<HTMLDivElement>) => {\n if (e.target !== e.currentTarget) return\n\n onOpenCreate(dayjs(date).toDate())\n }\n\n events = events?.sort((a, b) =>\n a.type === EVENT_TYPES.BUSY && b.type !== EVENT_TYPES.BUSY ? 1 : -1\n )\n\n const renderWeeklyEvent = useMemo(() => {\n const isAllDay = events?.some((item: IEvent) => item.isAllDay)\n if (isAllDay && events?.length > 1) {\n return (\n <React.Fragment>\n <LMSWeeklyEvent\n event={events[0]}\n onOpenDetail={onOpenDetail}\n onEventDetail={onEventDetail}\n />\n <div\n className={\n styles['see-more']\n }\n >\n <CustomTooltip\n placement='bottom'\n title={\n <div className={styles['calendar-tooltip']}>\n {events.slice(1, events.length).map((event, index) => (\n <LMSWeeklyEvent\n event={event}\n onOpenDetail={onOpenDetail}\n onEventDetail={onEventDetail}\n key={index + 1}\n />\n ))}\n </div>\n }\n >\n +{Math.max(events.length - 1, 0)} More\n </CustomTooltip>\n </div>\n\n </React.Fragment>\n )\n }\n return events?.map((event, index) => (\n <LMSWeeklyEvent\n key={index}\n event={event}\n onOpenDetail={onOpenDetail}\n onEventDetail={onEventDetail}\n />\n ))\n }, [events])\n\n return (\n <div\n className={`${styles['weekly-calendar__cell']} ${styles['weekly-calendar-lms__cell']} ${isToday ? styles['bg-info/10'] : styles['bg-white']\n }`}\n onClick={handleOpenCreateModal}\n >\n {renderWeeklyEvent}\n </div>\n )\n}\n\nexport default LMSWeeklyCell\n","/* eslint-disable no-unused-vars */\nimport { Table } from 'antd'\nimport dayjs, { Dayjs } from 'dayjs'\nimport isBetween from 'dayjs/plugin/isBetween'\nimport React from 'react'\nimport { DAYS_OF_WEEK_SHORTEN } from '../../../constants'\nimport {\n EventsByHour,\n ICell,\n IEvent,\n INorm,\n ITableColumn\n} from '../../../types'\nimport styles from '../SAPPCalendar.module.css'\nimport { checkIsAllday, hoursOfDayKeys } from '../../../utils'\nimport LMSWeeklyCell from './LMSWeeklyCell'\n\ndayjs.extend(isBetween)\n\ninterface IWeeklyCalendarProps {\n startDate: Dayjs\n endDate: Dayjs\n events: IEvent[]\n norms: INorm[]\n onOpenDetail: (date: Date, events: IEvent[]) => void\n onOpenCreate: (date: Date) => void\n onEventDetail?: (event: IEvent) => void\n loading?: boolean\n type?: 'OPS' | 'LMS'\n}\n\nconst LMSWeeklyCalendar = ({\n startDate,\n events,\n onOpenDetail,\n onOpenCreate,\n onEventDetail,\n loading\n}: IWeeklyCalendarProps) => {\n const getEventsOfHour = (events: IEvent[], targetHour: Dayjs) =>\n hoursOfDayKeys.reduce((acc: any, hour) => {\n acc[hour] = {\n events: events.filter((event) => {\n return (\n dayjs(event.startDate).isSame(\n dayjs(`${targetHour.format('YYYY-MM-DD')}T${hour}:00`),\n 'hour'\n ) && !checkIsAllday(dayjs(event.startDate), dayjs(event.endDate))\n )\n }),\n date: dayjs(`${targetHour.format('YYYY-MM-DD')}T${hour}`)\n }\n return acc\n }, {} as EventsByHour)\n\n const getTableColumns = () => {\n const hourColumn: ITableColumn = {\n title: <div className={styles['weekly-calendar__title']} />,\n dataIndex: 'hour',\n key: 'hour',\n width: 1,\n render: (value: string) => <div>{value}</div>\n }\n\n const hours = Array.from({ length: 17 }, (_, i) => 7 + i)\n const timeColums: ITableColumn[] = hours.map((time, index) => ({\n title: (\n <div className={styles['weekly-calendar__title']}>\n {time % 2 !== 0 ? (\n <div style={{ textAlign: 'start' }}>\n {time < 10 ? '0' + time + ':00' : time + ':00'}\n </div>\n ) : (\n <div style={{ minWidth: '35px' }} />\n )}\n </div>\n ),\n dataIndex: `${time < 10 ? '0' + time + ':00' : time + ':00'}`,\n key: `${time < 10 ? '0' + time + ':00' : time + ':00'}`,\n render: (value: ICell) => {\n return (\n <LMSWeeklyCell\n key={index}\n events={value?.events}\n date={value?.date}\n onOpenDetail={onOpenDetail}\n onOpenCreate={onOpenCreate}\n onEventDetail={onEventDetail}\n />\n )\n }\n }))\n\n return [hourColumn, ...timeColums]\n }\n\n const getTableData = () => {\n const data = []\n for (let i = 0; i < 7; i++) {\n const targetHour = dayjs(startDate).add(i + 1, 'day')\n data.push({\n id: i,\n hour: (\n <div>\n <div className={styles['lms-calendar__tablet']}>\n {Object.values(DAYS_OF_WEEK_SHORTEN)[i]}\n </div>\n <div className={styles['lms-calendar__tablet']}>\n {dayjs(startDate).add(i, 'day').format('DD')}\n </div>\n </div>\n ),\n ...getEventsOfHour(events, targetHour)\n })\n }\n return data\n }\n\n return (\n <Table\n rowKey={(record) => record.id}\n columns={getTableColumns()}\n dataSource={getTableData()}\n pagination={false}\n rowHoverable={false}\n className={styles['weekly-calendar']}\n loading={loading}\n />\n )\n}\n\nexport default LMSWeeklyCalendar\n","/* eslint-disable no-unused-vars */\nimport React, { useEffect, useState } from 'react'\nimport WeeklyCalendar, {\n IWeeklyCalendarProps\n} from '../WeeklyCalendar/WeeklyCalendar'\nimport LMSWeeklyCalendar from './LMSWeeklyCalendar'\nimport { CALENDAR_TYPE } from '../../../constants'\n\nexport default function LMSModeWeeklyCalendar({\n startDate,\n endDate,\n events,\n norms,\n showWeeklyNorm = false,\n onOpenDetail,\n onOpenCreate,\n onEventDetail,\n loading\n}: IWeeklyCalendarProps) {\n const [windowWidth, setWindowWidth] = useState(window.innerWidth)\n\n useEffect(() => {\n const handleResize = () => {\n setWindowWidth(window.innerWidth)\n }\n\n window.addEventListener('resize', handleResize)\n\n return () => {\n window.removeEventListener('resize', handleResize)\n }\n }, [])\n\n return (\n <React.Fragment>\n {windowWidth > 1024 ? (\n <WeeklyCalendar\n startDate={startDate}\n endDate={endDate}\n events={events}\n norms={norms}\n showWeeklyNorm={showWeeklyNorm}\n onOpenDetail={onOpenDetail}\n onOpenCreate={onOpenCreate}\n onEventDetail={onEventDetail}\n loading={loading}\n type={CALENDAR_TYPE.LMS}\n />\n ) : (\n <LMSWeeklyCalendar\n startDate={startDate}\n endDate={endDate}\n events={events}\n norms={norms}\n onOpenDetail={onOpenDetail}\n onOpenCreate={onOpenCreate}\n onEventDetail={onEventDetail}\n loading={loading}\n type={CALENDAR_TYPE.LMS}\n />\n )}\n </React.Fragment>\n )\n}\n","import React from 'react'\nimport { Select } from 'antd'\nimport '../SAPPCalendar.tailwind.css'\n\ninterface IProps {\n value: string | number\n options: { value: string; label: string }[]\n defaultValue?: string\n className?: string\n disabled?: boolean\n onChange?: (e: string | number) => void\n}\nconst SelectBox: React.FC<IProps> = ({\n value,\n options,\n defaultValue,\n className = '',\n disabled,\n onChange\n}) => {\n return (\n <Select\n defaultValue={defaultValue}\n className={className}\n disabled={disabled}\n options={options}\n value={value}\n onChange={onChange}\n />\n )\n}\n\nexport default SelectBox\n","/* eslint-disable no-unused-vars */\nimport { DatePicker } from 'antd'\nimport dayjs, { Dayjs } from 'dayjs'\nimport React, { Dispatch, SetStateAction } from 'react'\nimport { FilterIcon, LeftArrowIcon, RightArrowIcon } from '../../../icons'\nimport { CalendarMode, IFilter } from '../../../types'\nimport Button from '../common/Button'\nimport Icon from '../common/Icon'\n// TODO: config đường dẫn dạng @utils, @component,... tương ứng với folder nào ( sửa tất cả e nhé)\nimport { customDateFormat } from '../../../utils'\nimport styles from '../SAPPCalendar.module.css'\nimport clsx from 'clsx'\nimport { FORMAT_DATE_CARLENDA } from '../../../constants'\nimport SelectBox from '../common/SelectBox'\n\ninterface IHeaderCalendarProps {\n title?: string\n showTeacherName?: boolean\n currentDate: Dayjs\n setCurrentDate: Dispatch<SetStateAction<Dayjs>>\n calendarMode: CalendarMode\n setCalendarMode: Dispatch<SetStateAction<CalendarMode>>\n toggleTurnOnFilter: () => void\n filter: IFilter\n hasFilter: boolean\n}\n\nconst LMSHeaderCalendar = ({\n title,\n showTeacherName,\n currentDate,\n setCurrentDate,\n calendarMode,\n setCalendarMode,\n toggleTurnOnFilter,\n filter,\n hasFilter\n}: IHeaderCalendarProps) => {\n const options = [\n {\n value: 'month',\n label: 'Month'\n },\n {\n value: 'week',\n label: 'Week'\n }\n ]\n const handleChangeDate = (date: Dayjs) => {\n setCurrentDate(date)\n }\n\n const handleChangeMode = (mode: CalendarMode) => {\n setCalendarMode(mode)\n setCurrentDate(dayjs())\n }\n return (\n <div className={styles['header-calendar']}>\n <div className={styles['header-calendar_filter']}>\n {hasFilter && (\n <div\n className={clsx(\n styles['hover-item'],\n filter.isOpen && styles['text-lms-primary']\n )}\n onClick={toggleTurnOnFilter}\n >\n <FilterIcon />\n </div>\n )}\n <div className={`${styles['header-calendar__nav']}`}>\n <Icon\n icon={<LeftArrowIcon />}\n onClick={() =>\n handleChangeDate(currentDate.subtract(1, calendarMode))\n }\n className={styles['rounded-none']}\n />\n <DatePicker\n picker={calendarMode === 'day' ? 'date' : calendarMode}\n onChange={handleChangeDate}\n format={(value) =>\n customDateFormat(\n value,\n calendarMode === 'day'\n ? FORMAT_DATE_CARLENDA.DATE\n : FORMAT_DATE_CARLENDA.MONTH_AND_WEEK\n )\n }\n value={currentDate}\n allowClear={false}\n suffixIcon={null}\n className={styles['header-calendar__date-picker']}\n size='large'\n />\n <Icon\n icon={<RightArrowIcon />}\n onClick={() => handleChangeDate(currentDate.add(1, calendarMode))}\n />\n </div>\n </div>\n {showTeacherName && (\n <div className={styles['header-calendar__title']}>{title}</div>\n )}\n <div className={styles['header-calendar__controls']}>\n <Button color='lms-default' onClick={() => handleChangeDate(dayjs())}>\n Today\n </Button>\n <div className={styles['header-calendar__divider']} />\n <SelectBox\n value={calendarMode}\n options={options}\n className='select-mode'\n onChange={(mode) => {\n handleChangeMode(mode as CalendarMode)\n }}\n />\n </div>\n </div>\n )\n}\n\nexport default LMSHeaderCalendar\n","/* eslint-disable no-unused-vars */\nimport React, { Dispatch, SetStateAction, useMemo } from 'react'\nimport { Calendar } from 'antd'\nimport styles from '../SAPPCalendarFilter.module.css'\nimport {\n EducationIcon,\n EyeIcon,\n FlagIcon,\n GoldStarIcon,\n HiddenEyeIcon,\n TagIcon,\n TestIcon\n} from '../../../icons'\nimport { ICourse, IFilter } from '../../../types'\nimport { Dayjs } from 'dayjs'\nimport { LEARNING_MODE } from '../../../constants'\n\ninterface IProps {\n filter: IFilter\n setFilter: Dispatch<SetStateAction<IFilter>>\n courses?: ICourse[]\n onRefetchAPI: (filterDate: Date) => void\n}\n\nconst FilterCalendar = ({\n filter,\n setFilter,\n courses,\n onRefetchAPI\n}: IProps) => {\n const noteFilter = useMemo(\n () => [\n {\n title: 'Online',\n icon: <div className={styles['calendar-filter_note_blue']} />,\n value: LEARNING_MODE.ONLINE\n },\n {\n title: 'Live Online',\n icon: <div className={styles['calendar-filter_note_pureple']} />,\n value: LEARNING_MODE.LIVE_ONLINE\n },\n {\n title: 'Offline',\n icon: <div className={styles['calendar-filter_note_green']} />,\n value: LEARNING_MODE.OFFLINE\n },\n { title: 'Test', icon: <TestIcon />, value: LEARNING_MODE.TEST },\n {\n title: 'Case Study',\n icon: <GoldStarIcon />,\n value: LEARNING_MODE.CASE_STUDY\n },\n {\n title: 'Key Content Before',\n icon: <FlagIcon />,\n value: LEARNING_MODE.KEY_BEFORE_CONTENT\n },\n {\n title: 'Holiday',\n icon: <div className={styles['calendar-filter_note_yellow']} />,\n value: LEARNING_MODE.HOLIDAY\n },\n {\n title: 'Overdue',\n icon: <div className={styles['calendar-filter_note_red']} />,\n value: LEARNING_MODE.OVERDUE\n }\n ],\n []\n )\n const handleFilter = (type: string, value: string) => {\n switch (type) {\n case 'course': {\n setFilter((prev: IFilter) => {\n const courseId = prev.courseId || []\n const updatedCourseId = courseId.includes(value)\n ? courseId.filter((item) => item !== value)\n : [...courseId, value]\n return { ...prev, courseId: updatedCourseId }\n })\n break\n }\n case 'note': {\n setFilter((prev: IFilter) => {\n const typeArray = prev.type || []\n const updatedType = typeArray.includes(value)\n ? typeArray.filter((item) => item !== value)\n : [...typeArray, value]\n return { ...prev, type: updatedType }\n })\n break\n }\n case 'day': {\n setFilter((prev: IFilter) => {\n return { ...prev, day: value }\n })\n break\n }\n }\n }\n\n const handleFilterday = (date: Dayjs) => {\n onRefetchAPI(date.toDate())\n handleFilter('day', date.toString())\n }\n return (\n <div className={styles['calendar-filter']}>\n <Calendar\n mode='month'\n className={styles['custom-today-picker']}\n fullscreen={false}\n onChange={handleFilterday}\n />\n <div>\n <div className={styles['calendar-filter_title']}>\n <TagIcon />\n <h3>Notes</h3>\n </div>\n <div>\n {noteFilter.map((item) => {\n return (\n <div\n className={styles['calendar-filter_content_list_item']}\n key={item.value}\n >\n <div className={styles['calendar-filter_content_list_item']}>\n {item.icon}\n {item.title}\n </div>\n <div\n onClick={() => handleFilter('note', item.value)}\n className={styles['calendar-filter_content_item_eye']}\n >\n {filter.type?.includes(item.value) ? (\n <EyeIcon />\n ) : (\n <HiddenEyeIcon />\n )}\n </div>\n </div>\n )\n })}\n </div>\n </div>\n <div>\n <div className={styles['calendar-filter_title']}>\n <EducationIcon />\n <h3>My courses</h3>\n </div>\n <div>\n {courses?.map((item, key) => {\n return (\n <div\n key={key}\n className={styles['calendar-filter_content_list_item']}\n >\n <div className={styles['calendar-filter_content_list_item']}>\n {item.name}\n </div>\n <div\n onClick={() => handleFilter('course', item.id)}\n className={styles['calendar-filter_content_item_eye']}\n >\n {filter.courseId?.includes(item.id) ? (\n <EyeIcon />\n ) : (\n <HiddenEyeIcon />\n )}\n </div>\n </div>\n )\n })}\n </div>\n </div>\n </div>\n )\n}\n\nexport default FilterCalendar\n","/* eslint-disable no-unused-vars */\nimport dayjs, { Dayjs } from 'dayjs'\nimport React, { useMemo, useState, useEffect } from 'react'\nimport { useEffectAfterMounted } from '../../hooks/useEffectAfterMounted'\nimport { CalendarMode, ICourse, IEvent, IFilter, INorm } from '../../types'\nimport { splitEventsIntoDays } from '../../utils'\nimport HeaderCalendar from './HeaderCalendar/HeaderCalendar'\nimport MonthlyCalendar from './MonthlyCalendar/MonthlyCalendar'\nimport styles from './SAPPCalendar.module.css'\nimport WeeklyCalendar from './WeeklyCalendar/WeeklyCalendar'\nimport LMSModeWeeklyCalendar from './LMSWeeklyCalendar'\nimport { CALENDAR_TYPE, LEARNING_MODE } from '../../constants'\nimport LMSHeaderCalendar from './HeaderCalendar/LMSHeaderCalendar'\nimport FilterCalendar from './FilterCalendar/FilterCalendar'\n\ninterface IAntdCalendarProps {\n events: IEvent[]\n norms?: INorm[]\n teacherName?: string\n showTeacherName?: boolean\n showWeeklyNorm?: boolean\n onOpenDetail: (date: Date, events: IEvent[]) => void\n onOpenCreate: (date: Date) => void\n onRefetchAPI: (startDate: Date, endDate: Date) => Promise<void>\n onEventDetail?: (event: IEvent) => void\n loading?: boolean\n type?: string\n courses?: ICourse[]\n onfilter?: (filter: IFilter) => void\n hasFilter?: boolean\n headerType?: string\n}\n\nconst SAPPCalendar = ({\n teacherName,\n events,\n norms = [],\n showTeacherName = true,\n showWeeklyNorm = true,\n onOpenDetail,\n onOpenCreate,\n onRefetchAPI,\n onEventDetail,\n loading,\n type = 'OPS',\n courses,\n onfilter,\n hasFilter = false,\n headerType = CALENDAR_TYPE.OPS\n}: IAntdCalendarProps) => {\n const [currentDate, setCurrentDate] = useState<Dayjs>(dayjs())\n const [calendarMode, setCalendarMode] = useState<CalendarMode>('month')\n const [filter, setFilter] = useState<IFilter>({\n courseId: courses ? courses.map((item) => item.id) : [],\n isOpen: false,\n type: Object.values(LEARNING_MODE),\n day: ''\n })\n\n const startDate = useMemo(\n () =>\n dayjs(currentDate).startOf(calendarMode).startOf('week').add(1, 'day'),\n [currentDate, calendarMode]\n ) // add 1 day because start of week is Sunday\n\n const endDate = useMemo(\n () => dayjs(currentDate).endOf(calendarMode).endOf('week').add(1, 'day'),\n [currentDate, calendarMode]\n ) // add 1 day because end of week is Saturday\n\n const splittedEvents = splitEventsIntoDays(events)\n splittedEvents.sort((a, b) => dayjs(a.startDate).diff(b.startDate))\n\n const handleFilterDate = (date: Dayjs) => {\n setCurrentDate(date)\n }\n\n useEffect(() => {\n onfilter && onfilter(filter)\n }, [filter])\n\n useEffectAfterMounted(() => {\n onRefetchAPI(startDate.toDate(), endDate.toDate())\n }, [startDate, endDate])\n\n return (\n <div className={styles['sapp-calendar']}>\n {filter.isOpen && (\n <FilterCalendar\n filter={filter}\n setFilter={setFilter}\n onRefetchAPI={(date) => handleFilterDate(dayjs(date))}\n />\n )}\n <div className={styles['sapp-calendar__container']}>\n {headerType === CALENDAR_TYPE.LMS ? (\n <LMSHeaderCalendar\n title={teacherName}\n showTeacherName={showTeacherName}\n currentDate={currentDate}\n setCurrentDate={setCurrentDate}\n calendarMode={calendarMode}\n setCalendarMode={setCalendarMode}\n toggleTurnOnFilter={() =>\n setFilter((prev) => ({ ...prev, isOpen: !filter.isOpen }))\n }\n hasFilter={hasFilter}\n filter={filter}\n />\n ) : (\n <HeaderCalendar\n title={teacherName}\n showTeacherName={showTeacherName}\n currentDate={currentDate}\n setCurrentDate={setCurrentDate}\n calendarMode={calendarMode}\n setCalendarMode={setCalendarMode}\n />\n )}\n {calendarMode === 'month' && (\n <MonthlyCalendar\n currentDate={currentDate}\n startDate={startDate}\n endDate={endDate}\n events={splittedEvents}\n norms={norms}\n showWeeklyNorm={showWeeklyNorm}\n onOpenDetail={onOpenDetail}\n onOpenCreate={onOpenCreate}\n onEventDetail={onEventDetail}\n loading={loading}\n />\n )}\n {calendarMode === 'week' && type === CALENDAR_TYPE.LMS && (\n <LMSModeWeeklyCalendar\n startDate={startDate}\n endDate={endDate}\n events={splittedEvents}\n norms={norms}\n showWeeklyNorm={showWeeklyNorm}\n onOpenDetail={onOpenDetail}\n onOpenCreate={onOpenCreate}\n onEventDetail={onEventDetail}\n loading={loading}\n />\n )}\n {calendarMode === 'week' && type === CALENDAR_TYPE.OPS && (\n <WeeklyCalendar\n startDate={startDate}\n endDate={endDate}\n events={splittedEvents}\n norms={norms}\n showWeeklyNorm={showWeeklyNorm}\n onOpenDetail={onOpenDetail}\n onOpenCreate={onOpenCreate}\n onEventDetail={onEventDetail}\n loading={loading}\n />\n )}\n </div>\n </div>\n )\n}\n\nexport default SAPPCalendar\n"],"names":["useEffectAfterMounted","callback","dependencies","_useState","useState","mounted","setMounted","useEffect","HOURS_PER_DAY","MINUTES_PER_HOUR","TIME_FORMAT","MIN_HEIGHT_HIDE_DETAILS","MIN_HEIGHT_HIDE_ALL","MIN_HEIGHT_EVENT","BORDER_WEEKLY_CELL","DAYS_OF_WEEK","DAYS_OF_WEEK_SHORTEN","HOUR_OF_DAY","EVENT_TYPES","FORMAT_DATE_CARLENDA","LEARNING_MODE","CALENDAR_TYPE","customDateFormat","value","formatStr","dayjs","format","convertType","_convertType","TEACHING","BUSY","HOLIDAY","OTHER","LIVE_ONLINE","daysOfWeekKeys","Object","values","calculateNormOfWeek","norms","events","startDate","endDate","norm","find","isBetween","normOfWeek","totalNorm","normsOfWeek","filter","event","type","length","maxShift","splitEventsIntoDays","splittedEvents","_iterator","_createForOfIteratorHelperLoose","_step","done","isSameDay","isSame","push","_extends","toDate","endOf","currentDate","startOf","add","isBefore","checkIsAllday","isValid","hoursOfDayKeys","Left","React","width","height","viewBox","fill","xmlns","d","Right","Book","fillRule","clipRule","CalendarDelete","CalendarAccept","clipPath","id","Star","TestIcon","HiddenEyeIcon","EyeIcon","FlagIcon","GoldStarIcon","transform","TagIcon","EducationIcon","FilterIcon","LeftArrowIcon","RightArrowIcon","getIconEvent","_getIconEvent","getIconforEvent","source","LMS","icon","isCaseStudy","isTest","isKeyContentBefore","Button","_ref","_ref$type","_ref$color","color","onClick","children","console","log","styles","className","btn","Icon","clsx","HeaderCalendar","title","showTeacherName","setCurrentDate","calendarMode","setCalendarMode","handleChangeDate","date","handleChangeMode","mode","subtract","DatePicker","picker","onChange","allowClear","suffixIcon","size","CustomTooltip","_ref$placement","placement","Tooltip","MonthlyEvent","isSameMonth","onEventDetail","formattedDate","formattedDateStart","Fragment","style","cursor","_event$title","_event$title2","slice","MonthlyCell","onOpenDetail","onOpenCreate","hasMore","isToday","handleOpenCreateModal","e","target","currentTarget","hour","minute","map","index","key","Math","max","getEventsOfWeek","targetDate","reduce","acc","day","MonthlyCalendar","showWeeklyNorm","loading","getTableColumns","weeklyNormColumn","dataIndex","render","dayColumns","concat","getWeeksOfFullMonth","weeks","clone","getTableData","data","week","eventsOfWeek","Table","rowKey","record","columns","dataSource","pagination","rowHoverable","calculateBoxSize","startTime","endTime","isAllDay","top","minutes","diffMinutes","diff","floor","border","WeeklyEvent","zIndex","_calculateBoxSize","isMinHeight","WeeklyCell","sort","a","b","renderWeeklyEvent","useMemo","some","item","extend","getEventAllDay","filteredEvents","getEventsOfDay","targetHour","WeeklyCalendar","_calculateNormOfWeek","hourColumn","count","i","left","LMSWeeklyEvent","LMSWeeklyCell","_events","_events2","_events3","_events4","LMSWeeklyCalendar","getEventsOfHour","hours","Array","from","_","timeColums","time","textAlign","minWidth","LMSModeWeeklyCalendar","_ref$showWeeklyNorm","window","innerWidth","windowWidth","setWindowWidth","handleResize","addEventListener","removeEventListener","SelectBox","options","defaultValue","_ref$className","disabled","Select","LMSHeaderCalendar","toggleTurnOnFilter","hasFilter","label","isOpen","DATE","MONTH_AND_WEEK","FilterCalendar","setFilter","courses","onRefetchAPI","noteFilter","ONLINE","OFFLINE","TEST","CASE_STUDY","KEY_BEFORE_CONTENT","OVERDUE","handleFilter","prev","courseId","updatedCourseId","includes","typeArray","updatedType","handleFilterday","toString","Calendar","fullscreen","_filter$type","name","_filter$courseId","SAPPCalendar","teacherName","_ref$norms","_ref$showTeacherName","onfilter","_ref$hasFilter","_ref$headerType","headerType","OPS","_useState2","_useState3","handleFilterDate"],"mappings":"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"}