sapp-common-package-test-final 1.0.12 → 1.5.0

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 CHANGED
@@ -60,8 +60,13 @@ var useEffectAfterMounted = function useEffectAfterMounted(callback, dependencie
60
60
  }, dependencies);
61
61
  };
62
62
 
63
+ var HOURS_PER_DAY = 24;
63
64
  var MINUTES_PER_HOUR = 60;
64
65
  var TIME_FORMAT = 'HH:mm';
66
+ var MIN_HEIGHT_HIDE_DETAILS = 140;
67
+ var MIN_HEIGHT_HIDE_ALL = 105;
68
+ var MIN_HEIGHT_EVENT = 50;
69
+ var BORDER_WEEKLY_CELL = 1;
65
70
  var DAYS_OF_WEEK;
66
71
  (function (DAYS_OF_WEEK) {
67
72
  DAYS_OF_WEEK["Monday"] = "Monday";
@@ -107,13 +112,15 @@ var EVENT_TYPES;
107
112
  (function (EVENT_TYPES) {
108
113
  EVENT_TYPES["TEACHING"] = "TEACHING";
109
114
  EVENT_TYPES["BUSY"] = "BUSY";
110
- EVENT_TYPES["TIME_OFF"] = "TIME_OFF";
115
+ EVENT_TYPES["HOLIDAY"] = "HOLIDAY";
111
116
  EVENT_TYPES["OTHER"] = "OTHER";
117
+ EVENT_TYPES["LIVE_ONLINE"] = "LIVE_ONLINE";
112
118
  })(EVENT_TYPES || (EVENT_TYPES = {}));
113
- var FORMAT_DATE_CARLENDA = {
114
- MONTH_AND_WEEK: 'MMMM, YYYY',
115
- DATE: 'MMMM DD, YYYY'
116
- };
119
+ var FORMAT_DATE_CARLENDA;
120
+ (function (FORMAT_DATE_CARLENDA) {
121
+ FORMAT_DATE_CARLENDA["MONTH_AND_WEEK"] = "MMMM DD";
122
+ FORMAT_DATE_CARLENDA["DATE"] = "DD";
123
+ })(FORMAT_DATE_CARLENDA || (FORMAT_DATE_CARLENDA = {}));
117
124
  var LEARNING_MODE;
118
125
  (function (LEARNING_MODE) {
119
126
  LEARNING_MODE["ONLINE"] = "ONLINE";
@@ -123,15 +130,20 @@ var LEARNING_MODE;
123
130
  LEARNING_MODE["HOLIDAY"] = "HOLIDAY";
124
131
  LEARNING_MODE["OVERDUE"] = "OVERDUE";
125
132
  LEARNING_MODE["TEST"] = "TEST";
133
+ LEARNING_MODE["KEY_BEFORE_CONTENT"] = "KEY_BEFORE_CONTENT";
126
134
  })(LEARNING_MODE || (LEARNING_MODE = {}));
135
+ var CALENDAR_TYPE;
136
+ (function (CALENDAR_TYPE) {
137
+ CALENDAR_TYPE["OPS"] = "OPS";
138
+ CALENDAR_TYPE["LMS"] = "LMS";
139
+ })(CALENDAR_TYPE || (CALENDAR_TYPE = {}));
127
140
 
128
141
  var _convertType;
129
142
  var customDateFormat = function customDateFormat(value, formatStr) {
130
143
  return dayjs(value).format(formatStr);
131
144
  };
132
- var convertType = (_convertType = {}, _convertType[EVENT_TYPES.TEACHING] = 'info', _convertType[EVENT_TYPES.BUSY] = 'error', _convertType[EVENT_TYPES.TIME_OFF] = 'warning', _convertType[EVENT_TYPES.OTHER] = 'success', _convertType);
145
+ var convertType = (_convertType = {}, _convertType[EVENT_TYPES.TEACHING] = 'info', _convertType[EVENT_TYPES.BUSY] = 'error', _convertType[EVENT_TYPES.HOLIDAY] = 'warning', _convertType[EVENT_TYPES.OTHER] = 'success', _convertType[EVENT_TYPES.LIVE_ONLINE] = 'purple', _convertType);
133
146
  var daysOfWeekKeys = Object.values(DAYS_OF_WEEK);
134
- var hoursOfDayKeys = Object.values(HOUR_OF_DAY);
135
147
  var calculateNormOfWeek = function calculateNormOfWeek(norms, events, startDate, endDate) {
136
148
  var norm = norms.find(function (norm) {
137
149
  return startDate.isBetween(norm.startDate, norm.endDate, 'day', '[]') && endDate.isBetween(norm.startDate, norm.endDate, 'day', '[]');
@@ -186,7 +198,9 @@ var checkIsAllday = function checkIsAllday(startDate, endDate) {
186
198
  }
187
199
  return startDate.format(TIME_FORMAT) === startDate.startOf('day').format(TIME_FORMAT) && endDate.format(TIME_FORMAT) === endDate.endOf('day').format(TIME_FORMAT) && startDate.isBefore(endDate);
188
200
  };
201
+ var hoursOfDayKeys = Object.values(HOUR_OF_DAY);
189
202
 
203
+ var _getIconEvent;
190
204
  var Left = function Left() {
191
205
  return React__default.createElement("svg", {
192
206
  width: '16',
@@ -275,42 +289,87 @@ var Star = function Star() {
275
289
  fill: '#F57C00'
276
290
  }));
277
291
  };
278
- var LeftArrowIcon = function LeftArrowIcon() {
292
+ var TestIcon = function TestIcon() {
279
293
  return React__default.createElement("svg", {
280
- width: '8',
281
- height: '11',
282
- viewBox: '0 0 8 11',
283
- fill: 'currentColor',
294
+ width: '14',
295
+ height: '15',
296
+ viewBox: '0 0 14 15',
297
+ fill: 'none',
284
298
  xmlns: 'http://www.w3.org/2000/svg'
285
299
  }, React__default.createElement("path", {
286
- d: 'M7.3125 0.368526L7.3125 10.631C7.3125 10.9388 6.9875 11.1107 6.76562 10.9201L0.815625 5.78884C0.645313 5.64196 0.645313 5.35915 0.815625 5.21071L6.76562 0.079463C6.9875 -0.111162 7.3125 0.0607128 7.3125 0.368526Z',
287
- fill: '#404041'
300
+ 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',
301
+ fill: '#FFB800'
302
+ }), React__default.createElement("path", {
303
+ 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',
304
+ fill: '#FFB800'
305
+ }), React__default.createElement("path", {
306
+ 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',
307
+ fill: '#FFB800'
308
+ }), React__default.createElement("path", {
309
+ 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',
310
+ fill: '#FFB800'
288
311
  }));
289
312
  };
290
- var RightArrowIcon = function RightArrowIcon() {
313
+ var HiddenEyeIcon = function HiddenEyeIcon() {
291
314
  return React__default.createElement("svg", {
292
- width: '8',
293
- height: '11',
294
- viewBox: '0 0 8 11',
295
- fill: 'currentColor',
315
+ width: '16',
316
+ height: '17',
317
+ viewBox: '0 0 16 17',
318
+ fill: 'none',
296
319
  xmlns: 'http://www.w3.org/2000/svg'
297
320
  }, React__default.createElement("path", {
298
- 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',
299
- fill: '#404041'
321
+ 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',
322
+ fill: '#DCDDDD'
323
+ }), React__default.createElement("path", {
324
+ 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',
325
+ fill: '#DCDDDD'
300
326
  }));
301
327
  };
302
- var FilterIcon = function FilterIcon() {
328
+ var EyeIcon = function EyeIcon() {
303
329
  return React__default.createElement("svg", {
304
- width: '35',
305
- height: '35',
306
- viewBox: '0 0 35 35',
307
- fill: 'currentColor',
330
+ width: '16',
331
+ height: '17',
332
+ viewBox: '0 0 16 17',
333
+ fill: 'none',
308
334
  xmlns: 'http://www.w3.org/2000/svg'
309
335
  }, React__default.createElement("path", {
310
- 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',
311
- fill: 'currentColor'
336
+ 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',
337
+ fill: '#DCDDDD'
338
+ }));
339
+ };
340
+ var FlagIcon = function FlagIcon() {
341
+ return React__default.createElement("svg", {
342
+ width: '14',
343
+ height: '15',
344
+ viewBox: '0 0 14 15',
345
+ fill: 'none',
346
+ xmlns: 'http://www.w3.org/2000/svg'
347
+ }, React__default.createElement("path", {
348
+ 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',
349
+ fill: '#FFB800'
312
350
  }));
313
351
  };
352
+ var GoldStarIcon = function GoldStarIcon() {
353
+ return React__default.createElement("svg", {
354
+ width: '14',
355
+ height: '15',
356
+ viewBox: '0 0 14 15',
357
+ fill: 'none',
358
+ xmlns: 'http://www.w3.org/2000/svg'
359
+ }, React__default.createElement("g", {
360
+ clipPath: 'url(#clip0_23522_33890)'
361
+ }, React__default.createElement("path", {
362
+ 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',
363
+ fill: '#FFB800'
364
+ })), React__default.createElement("defs", null, React__default.createElement("clipPath", {
365
+ id: 'clip0_23522_33890'
366
+ }, React__default.createElement("rect", {
367
+ width: '14',
368
+ height: '14',
369
+ fill: 'white',
370
+ transform: 'translate(0 0.5)'
371
+ }))));
372
+ };
314
373
  var TagIcon = function TagIcon() {
315
374
  return React__default.createElement("svg", {
316
375
  width: '20',
@@ -334,7 +393,7 @@ var EducationIcon = function EducationIcon() {
334
393
  fill: 'none',
335
394
  xmlns: 'http://www.w3.org/2000/svg'
336
395
  }, React__default.createElement("g", {
337
- clipPath: 'url(#clip0_19555_31783)'
396
+ clipPath: 'url(#clip0_22306_18116)'
338
397
  }, React__default.createElement("path", {
339
398
  d: 'M10 14.9699L3.75 11.3984V15.243L10 18.7148L16.25 15.243V11.3984L10 14.9699Z',
340
399
  fill: '#21272A'
@@ -342,7 +401,7 @@ var EducationIcon = function EducationIcon() {
342
401
  d: 'M20.0098 8.0002L10 2.28027L-0.00976562 8.0002L10 13.7201L18.125 9.07715V15.5002H20V8.00566L20.0098 8.0002Z',
343
402
  fill: '#21272A'
344
403
  })), React__default.createElement("defs", null, React__default.createElement("clipPath", {
345
- id: 'clip0_19555_31783'
404
+ id: 'clip0_22306_18116'
346
405
  }, React__default.createElement("rect", {
347
406
  width: '20',
348
407
  height: '20',
@@ -350,40 +409,19 @@ var EducationIcon = function EducationIcon() {
350
409
  transform: 'translate(0 0.5)'
351
410
  }))));
352
411
  };
353
- var BookIcon = function BookIcon() {
412
+ var FilterIcon = function FilterIcon() {
354
413
  return React__default.createElement("svg", {
355
- width: '14',
356
- height: '15',
357
- viewBox: '0 0 14 15',
358
- fill: 'none',
414
+ width: '35',
415
+ height: '35',
416
+ viewBox: '0 0 35 35',
417
+ fill: 'currentColor',
359
418
  xmlns: 'http://www.w3.org/2000/svg'
360
419
  }, React__default.createElement("path", {
361
- d: 'M6.56246 3.55091H6.52163C5.24353 2.80405 3.83672 2.30346 2.37413 2.07508C2.22462 2.0524 2.07197 2.06228 1.92663 2.10404C1.78129 2.14581 1.64669 2.21847 1.53203 2.31707C1.41737 2.41566 1.32536 2.53786 1.2623 2.67531C1.19923 2.81275 1.1666 2.96219 1.16663 3.11341V10.3526C1.1661 10.599 1.25325 10.8376 1.41248 11.0257C1.57171 11.2138 1.79265 11.3391 2.03579 11.3792C3.59665 11.6587 5.10804 12.1658 6.52163 12.8842H6.56246V3.55091ZM3.19079 4.88675H4.51496C4.63099 4.88675 4.74227 4.93284 4.82432 5.01489C4.90637 5.09693 4.95246 5.20821 4.95246 5.32425C4.95246 5.44028 4.90637 5.55156 4.82432 5.63361C4.74227 5.71565 4.63099 5.76175 4.51496 5.76175H3.19079C3.07476 5.76175 2.96348 5.71565 2.88144 5.63361C2.79939 5.55156 2.75329 5.44028 2.75329 5.32425C2.75329 5.20821 2.79939 5.09693 2.88144 5.01489C2.96348 4.93284 3.07476 4.88675 3.19079 4.88675ZM4.94079 7.51175H3.19079C3.13334 7.51175 3.07645 7.50043 3.02337 7.47844C2.97029 7.45646 2.92206 7.42423 2.88144 7.38361C2.84081 7.34298 2.80858 7.29475 2.7866 7.24167C2.76461 7.18859 2.75329 7.1317 2.75329 7.07425C2.75329 7.01679 2.76461 6.9599 2.7866 6.90682C2.80858 6.85374 2.84081 6.80551 2.88144 6.76489C2.92206 6.72426 2.97029 6.69204 3.02337 6.67005C3.07645 6.64806 3.13334 6.63675 3.19079 6.63675H4.94079C5.05683 6.63675 5.16811 6.68284 5.25015 6.76489C5.3322 6.84693 5.37829 6.95821 5.37829 7.07425C5.37829 7.19028 5.3322 7.30156 5.25015 7.38361C5.16811 7.46565 5.05683 7.51175 4.94079 7.51175ZM12.8333 3.07258V10.3759C12.8359 10.6193 12.7525 10.8558 12.5977 11.0436C12.443 11.2315 12.2268 11.3586 11.9875 11.4026C10.4162 11.6579 8.89472 12.1578 7.47829 12.8842H7.43746V3.55091H7.47829C8.75371 2.81159 10.15 2.30403 11.6025 2.05175C11.7521 2.02656 11.9054 2.03394 12.052 2.07337C12.1985 2.11281 12.3349 2.18337 12.4517 2.28025C12.5685 2.37714 12.6631 2.49806 12.7289 2.63479C12.7948 2.77152 12.8304 2.92084 12.8333 3.07258Z',
362
- fill: '#FFB800'
420
+ 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',
421
+ fill: 'currentColor'
363
422
  }));
364
423
  };
365
- var GoldStarIcon = function GoldStarIcon() {
366
- return React__default.createElement("svg", {
367
- width: '14',
368
- height: '15',
369
- viewBox: '0 0 14 15',
370
- fill: 'none',
371
- xmlns: 'http://www.w3.org/2000/svg'
372
- }, React__default.createElement("g", {
373
- clipPath: 'url(#clip0_19479_10426)'
374
- }, React__default.createElement("path", {
375
- d: 'M13.9307 5.27509L9.73376 4.66514L7.85762 0.86162C7.80638 0.757482 7.72207 0.67318 7.61794 0.621937C7.35676 0.493005 7.03939 0.600449 6.90881 0.86162L5.03267 4.66514L0.83574 5.27509C0.720031 5.29162 0.61424 5.34617 0.533244 5.42882C0.435324 5.52946 0.381366 5.66486 0.383225 5.80527C0.385085 5.94568 0.442611 6.0796 0.543162 6.17762L3.57969 9.13811L2.8623 13.3185C2.84548 13.4158 2.85624 13.5158 2.89336 13.6072C2.93049 13.6987 2.99249 13.7779 3.07234 13.8359C3.15219 13.8939 3.2467 13.9283 3.34514 13.9353C3.44358 13.9424 3.54201 13.9216 3.62928 13.8756L7.38321 11.9019L11.1371 13.8756C11.2396 13.9301 11.3586 13.9483 11.4727 13.9285C11.7603 13.8789 11.9537 13.6061 11.9041 13.3185L11.1867 9.13811L14.2233 6.17762C14.3059 6.09662 14.3605 5.99083 14.377 5.87512C14.4216 5.58585 14.22 5.31807 13.9307 5.27509Z',
376
- fill: '#FFB800'
377
- })), React__default.createElement("defs", null, React__default.createElement("clipPath", {
378
- id: 'clip0_19479_10426'
379
- }, React__default.createElement("rect", {
380
- width: '14',
381
- height: '14',
382
- fill: 'white',
383
- transform: 'translate(0 0.5)'
384
- }))));
385
- };
386
- var EyeIcon = function EyeIcon() {
424
+ var LeftArrowIcon = function LeftArrowIcon() {
387
425
  return React__default.createElement("svg", {
388
426
  width: '16',
389
427
  height: '17',
@@ -391,27 +429,42 @@ var EyeIcon = function EyeIcon() {
391
429
  fill: 'none',
392
430
  xmlns: 'http://www.w3.org/2000/svg'
393
431
  }, React__default.createElement("path", {
394
- 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',
395
- fill: '#DCDDDD'
432
+ 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',
433
+ fill: '#404041'
396
434
  }));
397
435
  };
398
- var HiddenEyeIcon = function HiddenEyeIcon() {
436
+ var RightArrowIcon = function RightArrowIcon() {
399
437
  return React__default.createElement("svg", {
400
- width: '16',
401
- height: '17',
402
- viewBox: '0 0 16 17',
438
+ width: '8',
439
+ height: '11',
440
+ viewBox: '0 0 8 11',
403
441
  fill: 'none',
404
442
  xmlns: 'http://www.w3.org/2000/svg'
405
443
  }, React__default.createElement("path", {
406
- 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',
407
- fill: '#DCDDDD'
408
- }), React__default.createElement("path", {
409
- 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',
410
- fill: '#DCDDDD'
444
+ 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',
445
+ fill: '#404041'
411
446
  }));
412
447
  };
448
+ var getIconEvent = (_getIconEvent = {}, _getIconEvent[EVENT_TYPES.TEACHING] = React__default.createElement(Book, null), _getIconEvent[EVENT_TYPES.BUSY] = React__default.createElement(CalendarDelete, null), _getIconEvent[EVENT_TYPES.HOLIDAY] = React__default.createElement(Star, null), _getIconEvent[EVENT_TYPES.OTHER] = React__default.createElement(CalendarAccept, null), _getIconEvent[EVENT_TYPES.LIVE_ONLINE] = '', _getIconEvent);
449
+ var getIconforEvent = function getIconforEvent(event) {
450
+ if (event.source === CALENDAR_TYPE.LMS) {
451
+ var icon = [];
452
+ if (event.isCaseStudy) {
453
+ icon.push(React__default.createElement(GoldStarIcon, null));
454
+ }
455
+ if (event.isTest) {
456
+ icon.push(React__default.createElement(TestIcon, null));
457
+ }
458
+ if (event.isKeyContentBefore) {
459
+ icon.push(React__default.createElement(FlagIcon, null));
460
+ }
461
+ return icon;
462
+ } else {
463
+ return getIconEvent[event.type];
464
+ }
465
+ };
413
466
 
414
- var styles = {"flex":"_2hGgU","transform":"_3-Pu9","cursor-pointer":"_2Mcv6","rounded-none":"_3EfQZ","border-gray-4":"_3-NVJ","bg-button":"_3-gs3","bg-info/10":"_2ENMR","bg-white":"_rF-HF","!text-error":"_3mBZd","text-black":"_Irb_H","text-gray-600":"_1pL5w","text-info":"_NLvfI","text-secondary-text":"_H-zEU","filter":"_p0OEu","sapp-calendar":"_18t93","btn":"_1oiD_","icon":"_-E7rn","btn-default":"_3WrnL","btn-primary":"_2-qBL","event-info":"_xYqjb","event-warning":"_1oq3N","event-success":"_1hTMm","event-error":"_1hEJk","event-default":"_8FWXy","sapp-calendar__container":"_102cL","header-calendar":"_3Yvs5","header-calendar__nav":"_18m93","header-calendar__date-picker":"_2GTYD","header-calendar__title":"_35LQ0","header-calendar__controls":"_FqVqb","header-calendar__divider":"_3kHog","monthly-calendar":"_2NDGW","weekly-calendar":"_1QrJs","monthly-calendar__title":"_3Tsy4","monthly-calendar__title-active":"_1Dyjm","weekly-norm__cell":"_sGK9m","weekly-norm__value":"_1Jsb-","monthly-calendar__cell":"_2hVZ4","monthly-calendar__cell--active":"_1uenJ","calendar-tooltip":"_2Uo1f","monthly-event__title":"_2gsg7","monthly-event__date":"_2GtPn","weekly-calendar__title":"_5WuQ8","weekly-calendar__cell":"_3lPkV","weekly-event":"_hnHem","weekly-event__title":"_21a0T","weekly-event__date":"_PiKmX","weekly-event--collapse":"_1pvXT","btn-lms-default":"_1GA3p","text-lms-primary":"_1gLzS","select-mode":"_12I9I","ant-select-dropdown-placement-bottomLeft":"_1ZvuX","header-calendar_filter":"_1fd_Y","lms-calendar__tablet":"_1sVO3"};
467
+ var styles = {"transform":"_3-Pu9","cursor-pointer":"_2Mcv6","resize":"_uCXxT","rounded-none":"_3EfQZ","border":"_3-abu","border-gray-4":"_3-NVJ","bg-button":"_3-gs3","bg-info/10":"_2ENMR","bg-white":"_rF-HF","!text-error":"_3mBZd","text-black":"_Irb_H","text-gray-600":"_1pL5w","text-info":"_NLvfI","text-secondary-text":"_H-zEU","!filter":"_3vIFr","filter":"_p0OEu","sapp-calendar":"_18t93","btn":"_1oiD_","icon":"_-E7rn","btn-default":"_3WrnL","btn-primary":"_2-qBL","event-info":"_xYqjb","event-warning":"_1oq3N","event-success":"_1hTMm","event-purple":"_30cym","event-error":"_1hEJk","event-default":"_8FWXy","sapp-calendar__container":"_102cL","header-calendar":"_3Yvs5","header-calendar__nav":"_18m93","header-calendar__date-picker":"_2GTYD","header-calendar__title":"_35LQ0","header-calendar__controls":"_FqVqb","header-calendar__divider":"_3kHog","monthly-calendar":"_2NDGW","weekly-calendar":"_1QrJs","monthly-calendar__title":"_3Tsy4","monthly-calendar__title-active":"_1Dyjm","weekly-norm__cell":"_sGK9m","weekly-norm__value":"_1Jsb-","monthly-calendar__cell":"_2hVZ4","monthly-calendar__cell--active":"_1uenJ","calendar-tooltip":"_2Uo1f","monthly-event__title":"_2gsg7","monthly-event__date":"_2GtPn","weekly-calendar__title":"_5WuQ8","weekly-calendar__cell":"_3lPkV","event--min-height":"_ZZSJH","weekly-event":"_hnHem","weekly-event__title":"_21a0T","weekly-event__date":"_PiKmX","weekly-event--collapse":"_1pvXT","btn-lms-default":"_1GA3p","ant-select-dropdown":"__OFBr","text-lms-primary":"_1gLzS","header-calendar_filter":"_1fd_Y","ant-picker-calendar-header":"_2IWLV","ant-picker-calendar-mode-switch":"_2jvy8","hover-item":"_3im6B","weekly-event__title_icon":"_3OUWM","monthly-event__date_tablet":"_2HhKK","calendar-filter":"_2n63y","see-more":"_1uakm","weekly-calendar-lms__cell":"__PqI3"};
415
468
 
416
469
  var Button = function Button(_ref) {
417
470
  var _ref$type = _ref.type,
@@ -420,6 +473,7 @@ var Button = function Button(_ref) {
420
473
  color = _ref$color === void 0 ? 'default' : _ref$color,
421
474
  onClick = _ref.onClick,
422
475
  children = _ref.children;
476
+ console.log('value:', styles["btn-" + color]);
423
477
  return React__default.createElement("button", {
424
478
  type: type,
425
479
  onClick: onClick,
@@ -499,263 +553,50 @@ var HeaderCalendar = function HeaderCalendar(_ref) {
499
553
  }, "Week")));
500
554
  };
501
555
 
502
- var SelectBox = function SelectBox(_ref) {
503
- var value = _ref.value,
504
- options = _ref.options,
505
- defaultValue = _ref.defaultValue,
506
- _ref$className = _ref.className,
507
- className = _ref$className === void 0 ? '' : _ref$className,
508
- disabled = _ref.disabled,
509
- onChange = _ref.onChange;
510
- return React__default.createElement(antd.Select, {
511
- defaultValue: defaultValue,
512
- className: className,
513
- disabled: disabled,
514
- options: options,
515
- value: value,
516
- onChange: onChange
517
- });
556
+ var CustomTooltip = function CustomTooltip(_ref) {
557
+ var title = _ref.title,
558
+ children = _ref.children,
559
+ _ref$placement = _ref.placement,
560
+ placement = _ref$placement === void 0 ? 'top' : _ref$placement;
561
+ return React__default.createElement(antd.Tooltip, {
562
+ color: '#ffffff',
563
+ title: React__default.createElement("div", {
564
+ className: styles['text-gray-600']
565
+ }, title),
566
+ placement: placement
567
+ }, React__default.createElement("div", null, children));
518
568
  };
519
569
 
520
- var LMSHeaderCalendar = function LMSHeaderCalendar(_ref) {
521
- var title = _ref.title,
522
- showTeacherName = _ref.showTeacherName,
523
- currentDate = _ref.currentDate,
524
- setCurrentDate = _ref.setCurrentDate,
525
- calendarMode = _ref.calendarMode,
526
- setCalendarMode = _ref.setCalendarMode,
527
- toggleTurnOnFilter = _ref.toggleTurnOnFilter,
528
- filter = _ref.filter;
529
- var options = [{
530
- value: 'month',
531
- label: 'Month'
532
- }, {
533
- value: 'week',
534
- label: 'Week'
535
- }];
536
- var handleChangeDate = function handleChangeDate(date) {
537
- setCurrentDate(date);
538
- };
539
- var handleChangeMode = function handleChangeMode(mode) {
540
- setCalendarMode(mode);
541
- setCurrentDate(dayjs());
542
- };
543
- return React__default.createElement("div", {
544
- className: styles['header-calendar']
545
- }, React__default.createElement("div", {
546
- className: styles['header-calendar_filter']
547
- }, React__default.createElement("div", {
548
- className: clsx__default('cursor-pointer', filter.isOpen && styles['text-lms-primary']),
549
- onClick: toggleTurnOnFilter
550
- }, React__default.createElement(FilterIcon, null)), React__default.createElement("div", {
551
- className: "" + styles['header-calendar__nav']
552
- }, React__default.createElement(Icon, {
553
- icon: React__default.createElement(LeftArrowIcon, null),
554
- onClick: function onClick() {
555
- return handleChangeDate(currentDate.subtract(1, calendarMode));
556
- },
557
- className: styles['rounded-none']
558
- }), React__default.createElement(antd.DatePicker, {
559
- picker: calendarMode === 'day' ? 'date' : calendarMode,
560
- onChange: handleChangeDate,
561
- format: function format(value) {
562
- return customDateFormat(value, calendarMode === 'day' ? FORMAT_DATE_CARLENDA.DATE : FORMAT_DATE_CARLENDA.MONTH_AND_WEEK);
570
+ var MonthlyEvent = function MonthlyEvent(_ref) {
571
+ var _event$title, _event$title2;
572
+ var event = _ref.event,
573
+ isSameMonth = _ref.isSameMonth,
574
+ onEventDetail = _ref.onEventDetail;
575
+ var formattedDate = customDateFormat(event.startDate, TIME_FORMAT) + ' - ' + customDateFormat(event.endDate, TIME_FORMAT);
576
+ var formattedDateStart = customDateFormat(event.startDate, TIME_FORMAT);
577
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement("li", {
578
+ className: styles["event-" + (isSameMonth ? convertType[event.type] : 'default')],
579
+ style: {
580
+ cursor: 'pointer'
563
581
  },
564
- value: currentDate,
565
- allowClear: false,
566
- suffixIcon: null,
567
- className: styles['header-calendar__date-picker'],
568
- size: 'large'
569
- }), React__default.createElement(Icon, {
570
- icon: React__default.createElement(RightArrowIcon, null),
571
- onClick: function onClick() {
572
- return handleChangeDate(currentDate.add(1, calendarMode));
573
- }
574
- }))), showTeacherName && React__default.createElement("div", {
575
- className: styles['header-calendar__title']
576
- }, title), React__default.createElement("div", {
577
- className: styles['header-calendar__controls']
578
- }, React__default.createElement(Button, {
579
- color: 'lms-default',
580
582
  onClick: function onClick() {
581
- return handleChangeDate(dayjs());
582
- }
583
- }, "Today"), React__default.createElement("div", {
584
- className: styles['header-calendar__divider']
585
- }), React__default.createElement(SelectBox, {
586
- value: calendarMode,
587
- options: options,
588
- className: 'select-mode',
589
- onChange: function onChange(mode) {
590
- handleChangeMode(mode);
583
+ return onEventDetail && onEventDetail(event);
591
584
  }
592
- })));
593
- };
594
-
595
- var styles$1 = {"ant-picker-calendar-header":"_2Y9jk","ant-radio-group":"_3puh0","ant-picker-calendar-month-select":"_1b_yY","calendar-filter":"_1K0QG","calendar-filter_title":"_1kmo4","calendar-filter_note_blue":"_3yl3q","calendar-filter_note_pureple":"_dS6FM","calendar-filter_note_green":"_2v-Pp","calendar-filter_note_yellow":"_1u4J8","calendar-filter_note_red":"_1RLYM","calendar-filter_content_list_item":"_29aaM","calendar-filter_content_item_eye":"_1yCoo"};
596
-
597
- var FilterCalendar = function FilterCalendar(_ref) {
598
- var filter = _ref.filter,
599
- setFilter = _ref.setFilter,
600
- courses = _ref.courses;
601
- var noteFilter = React.useMemo(function () {
602
- return [{
603
- title: 'Online',
604
- icon: React__default.createElement("div", {
605
- className: styles$1['calendar-filter_note_blue']
606
- }),
607
- value: LEARNING_MODE.ONLINE
608
- }, {
609
- title: 'Live Online',
610
- icon: React__default.createElement("div", {
611
- className: styles$1['calendar-filter_note_pureple']
612
- }),
613
- value: LEARNING_MODE.LIVE_ONLINE
614
- }, {
615
- title: 'Offline',
616
- icon: React__default.createElement("div", {
617
- className: styles$1['calendar-filter_note_green']
618
- }),
619
- value: LEARNING_MODE.OFFLINE
620
- }, {
621
- title: 'Case Study',
622
- icon: React__default.createElement(GoldStarIcon, null),
623
- value: LEARNING_MODE.CASE_STUDY
624
- }, {
625
- title: 'Test',
626
- icon: React__default.createElement(BookIcon, null),
627
- value: LEARNING_MODE.TEST
628
- }, {
629
- title: 'Holiday',
630
- icon: React__default.createElement("div", {
631
- className: styles$1['calendar-filter_note_yellow']
632
- }),
633
- value: LEARNING_MODE.HOLIDAY
634
- }, {
635
- title: 'Overdue',
636
- icon: React__default.createElement("div", {
637
- className: styles$1['calendar-filter_note_red']
638
- }),
639
- value: LEARNING_MODE.OVERDUE
640
- }];
641
- }, []);
642
- var handleFilter = function handleFilter(type, value) {
643
- switch (type) {
644
- case 'course':
645
- {
646
- setFilter(function (prev) {
647
- var courseId = prev.courseId || [];
648
- var updatedCourseId = courseId.includes(value) ? courseId.filter(function (item) {
649
- return item !== value;
650
- }) : [].concat(courseId, [value]);
651
- return _extends({}, prev, {
652
- courseId: updatedCourseId
653
- });
654
- });
655
- break;
656
- }
657
- case 'note':
658
- {
659
- setFilter(function (prev) {
660
- var typeArray = prev.type || [];
661
- var updatedType = typeArray.includes(value) ? typeArray.filter(function (item) {
662
- return item !== value;
663
- }) : [].concat(typeArray, [value]);
664
- return _extends({}, prev, {
665
- type: updatedType
666
- });
667
- });
668
- break;
669
- }
670
- case 'day':
671
- {
672
- setFilter(function (prev) {
673
- return _extends({}, prev, {
674
- day: value
675
- });
676
- });
677
- break;
678
- }
679
- }
680
- };
681
- var handleFilterday = function handleFilterday(date) {
682
- handleFilter('day', date.toString());
683
- };
684
- return React__default.createElement("div", {
685
- className: styles$1['calendar-filter']
686
- }, React__default.createElement(antd.Calendar, {
687
- mode: 'month',
688
- fullscreen: false,
689
- onChange: handleFilterday
690
- }), React__default.createElement("div", null, React__default.createElement("div", {
691
- className: styles$1['calendar-filter_title']
692
- }, React__default.createElement(TagIcon, null), React__default.createElement("h3", null, "Notes")), React__default.createElement("div", null, noteFilter.map(function (item) {
693
- var _filter$type;
694
- return React__default.createElement("div", {
695
- className: styles$1['calendar-filter_content_list_item'],
696
- key: item.value
697
- }, React__default.createElement("div", {
698
- className: styles$1['calendar-filter_content_list_item']
699
- }, item.icon, item.title), React__default.createElement("div", {
700
- onClick: function onClick() {
701
- return handleFilter('note', item.value);
702
- },
703
- className: styles$1['calendar-filter_content_item_eye']
704
- }, (_filter$type = filter.type) !== null && _filter$type !== void 0 && _filter$type.includes(item.value) ? React__default.createElement(EyeIcon, null) : React__default.createElement(HiddenEyeIcon, null)));
705
- }))), React__default.createElement("div", null, React__default.createElement("div", {
706
- className: styles$1['calendar-filter_title']
707
- }, React__default.createElement(EducationIcon, null), React__default.createElement("h3", null, "My courses")), React__default.createElement("div", null, courses === null || courses === void 0 ? void 0 : courses.map(function (item, key) {
708
- var _filter$courseId;
709
- return React__default.createElement("div", {
710
- key: key,
711
- className: styles$1['calendar-filter_content_list_item']
712
- }, React__default.createElement("div", {
713
- className: styles$1['calendar-filter_content_list_item']
714
- }, item.name), React__default.createElement("div", {
715
- onClick: function onClick() {
716
- return handleFilter('course', item.id);
717
- },
718
- className: styles$1['calendar-filter_content_item_eye']
719
- }, (_filter$courseId = filter.courseId) !== null && _filter$courseId !== void 0 && _filter$courseId.includes(item.id) ? React__default.createElement(EyeIcon, null) : React__default.createElement(HiddenEyeIcon, null)));
720
- }))));
721
- };
722
-
723
- var CustomTooltip = function CustomTooltip(_ref) {
724
- var title = _ref.title,
725
- children = _ref.children,
726
- _ref$placement = _ref.placement,
727
- placement = _ref$placement === void 0 ? 'top' : _ref$placement;
728
- return React__default.createElement(antd.Tooltip, {
729
- color: '#ffffff',
730
- title: React__default.createElement("div", {
731
- className: styles['text-gray-600']
732
- }, title),
733
- placement: placement
734
- }, React__default.createElement("div", null, children));
735
- };
736
-
737
- var MonthlyEvent = function MonthlyEvent(_ref) {
738
- var event = _ref.event,
739
- isSameMonth = _ref.isSameMonth,
740
- onEventDetail = _ref.onEventDetail;
741
- var formattedDate = customDateFormat(event.startDate, TIME_FORMAT) + ' - ' + customDateFormat(event.endDate, TIME_FORMAT);
742
- return React__default.createElement(React__default.Fragment, null, React__default.createElement("li", {
743
- className: styles["event-" + (isSameMonth ? convertType[event.type] : 'default')],
744
- style: {
745
- cursor: 'pointer'
746
- },
747
- onClick: function onClick() {
748
- return onEventDetail && onEventDetail(event);
749
- }
750
- }, React__default.createElement("div", {
751
- className: styles['monthly-event__title']
752
- }, React__default.createElement(CustomTooltip, {
753
- title: event.title
754
- }, event.title)), React__default.createElement("div", {
755
- className: styles['monthly-event__date']
756
- }, React__default.createElement(CustomTooltip, {
757
- title: formattedDate
758
- }, formattedDate))));
585
+ }, React__default.createElement("div", {
586
+ className: styles['monthly-event__title']
587
+ }, React__default.createElement("div", {
588
+ className: styles['weekly-event__title_icon']
589
+ }, getIconforEvent(event)), React__default.createElement(CustomTooltip, {
590
+ title: event.title
591
+ }, (event === null || event === void 0 ? void 0 : (_event$title = event.title) === null || _event$title === void 0 ? void 0 : _event$title.length) > 5 ? (event === null || event === void 0 ? void 0 : (_event$title2 = event.title) === null || _event$title2 === void 0 ? void 0 : _event$title2.slice(0, 5)) + '...' : event === null || event === void 0 ? void 0 : event.title)), React__default.createElement("div", {
592
+ className: styles['monthly-event__date']
593
+ }, React__default.createElement(CustomTooltip, {
594
+ title: formattedDate
595
+ }, formattedDate)), React__default.createElement("div", {
596
+ className: styles['monthly-event__date_tablet']
597
+ }, getIconforEvent(event), React__default.createElement(CustomTooltip, {
598
+ title: formattedDate
599
+ }, formattedDateStart))));
759
600
  };
760
601
 
761
602
  var MonthlyCell = function MonthlyCell(_ref) {
@@ -907,56 +748,62 @@ var MonthlyCalendar = function MonthlyCalendar(_ref) {
907
748
  });
908
749
  };
909
750
 
910
- var _getIconEvent;
911
- var getIconEvent = (_getIconEvent = {}, _getIconEvent[EVENT_TYPES.TEACHING] = React__default.createElement(Book, null), _getIconEvent[EVENT_TYPES.BUSY] = React__default.createElement(CalendarDelete, null), _getIconEvent[EVENT_TYPES.TIME_OFF] = React__default.createElement(Star, null), _getIconEvent[EVENT_TYPES.OTHER] = React__default.createElement(CalendarAccept, null), _getIconEvent);
912
- var calculateBoxSize = function calculateBoxSize(startTime, endTime) {
751
+ var calculateBoxSize = function calculateBoxSize(startTime, endTime, isAllDay) {
752
+ if (isAllDay) {
753
+ return {
754
+ top: 10,
755
+ height: 50
756
+ };
757
+ }
913
758
  var minutes = dayjs(startTime).minute();
914
- var diffMinutes = dayjs(endTime).diff(startTime, 'hour', true);
759
+ var diffMinutes = dayjs(endTime).diff(startTime, 'minute', true);
760
+ var top = Math.floor(minutes / MINUTES_PER_HOUR * 100);
761
+ var height = Math.floor(diffMinutes / MINUTES_PER_HOUR * 100);
762
+ var border = Math.floor((top + height) / MINUTES_PER_HOUR * BORDER_WEEKLY_CELL);
915
763
  return {
916
- width: diffMinutes || 1,
917
- left: Math.floor(minutes / MINUTES_PER_HOUR * 100)
764
+ top: top,
765
+ height: height + border
918
766
  };
919
767
  };
920
- var LMSWeeklyEvent = function LMSWeeklyEvent(_ref) {
768
+ var WeeklyEvent = function WeeklyEvent(_ref) {
921
769
  var event = _ref.event,
922
770
  onOpenDetail = _ref.onOpenDetail,
923
- onEventDetail = _ref.onEventDetail;
771
+ onEventDetail = _ref.onEventDetail,
772
+ zIndex = _ref.zIndex;
773
+ var _calculateBoxSize = calculateBoxSize(event.startDate, event.endDate, event.isAllDay),
774
+ top = _calculateBoxSize.top,
775
+ height = _calculateBoxSize.height;
776
+ var isMinHeight = height < MIN_HEIGHT_EVENT;
924
777
  var formattedDate = customDateFormat(event.startDate, TIME_FORMAT) + ' - ' + customDateFormat(event.endDate, TIME_FORMAT);
925
- var _calculateBoxSize = calculateBoxSize(event.startDate, event.endDate),
926
- width = _calculateBoxSize.width,
927
- left = _calculateBoxSize.left;
928
778
  return React__default.createElement("div", {
929
- className: styles["event-" + convertType[event.type]],
779
+ className: clsx__default(styles["event-" + convertType[event.type]], isMinHeight && styles['event--min-height']),
930
780
  onClick: function onClick() {
931
781
  onOpenDetail(dayjs(event.startDate).toDate(), [event]);
932
782
  onEventDetail && onEventDetail(event);
933
783
  },
934
784
  style: {
935
- top: "0%",
936
- height: "100%",
937
- width: width * 100 + '%',
938
- left: left + '%',
939
- zIndex: event.type === EVENT_TYPES.BUSY ? 2 : 1
785
+ top: top + "%",
786
+ height: Math.max(height, MIN_HEIGHT_EVENT) + "%",
787
+ zIndex: zIndex
940
788
  }
941
789
  }, React__default.createElement("div", {
942
- className: clsx__default(styles['weekly-event'])
790
+ className: clsx__default(styles['weekly-event'], height <= MIN_HEIGHT_HIDE_ALL && styles['weekly-event--collapse'])
943
791
  }, React__default.createElement("div", {
944
- className: clsx__default(styles['weekly-event--collapse'])
792
+ className: clsx__default(height <= MIN_HEIGHT_HIDE_DETAILS && styles['weekly-event--collapse'])
945
793
  }, React__default.createElement("div", {
946
- className: styles.flex
947
- }, getIconEvent[event.type]), React__default.createElement("div", {
948
794
  className: styles['weekly-event__title']
949
- }, React__default.createElement(CustomTooltip, {
795
+ }, React__default.createElement("div", {
796
+ className: styles['weekly-event__title_icon']
797
+ }, getIconforEvent(event)), React__default.createElement(CustomTooltip, {
950
798
  title: event.title
951
- }, event.title))), React__default.createElement("div", {
799
+ }, event.title.length > 5 ? event.title.slice(0, 5) + '...' : '')), React__default.createElement("div", {
952
800
  className: styles['weekly-event__date']
953
801
  }, React__default.createElement(CustomTooltip, {
954
802
  title: formattedDate
955
- }, formattedDate))));
803
+ }, formattedDate)))));
956
804
  };
957
805
 
958
- var LMSWeeklyCell = function LMSWeeklyCell(_ref) {
959
- var _events;
806
+ var WeeklyCell = function WeeklyCell(_ref) {
960
807
  var events = _ref.events,
961
808
  date = _ref.date,
962
809
  onOpenDetail = _ref.onOpenDetail,
@@ -967,19 +814,19 @@ var LMSWeeklyCell = function LMSWeeklyCell(_ref) {
967
814
  if (e.target !== e.currentTarget) return;
968
815
  onOpenCreate(dayjs(date).toDate());
969
816
  };
970
- events = (_events = events) === null || _events === void 0 ? void 0 : _events.sort(function (a, b) {
817
+ events.sort(function (a, b) {
971
818
  return a.type === EVENT_TYPES.BUSY && b.type !== EVENT_TYPES.BUSY ? 1 : -1;
972
819
  });
973
820
  var renderWeeklyEvent = React.useMemo(function () {
974
- var _events2, _events3, _events4;
975
- var isAllDay = (_events2 = events) === null || _events2 === void 0 ? void 0 : _events2.some(function (item) {
821
+ var isAllDay = events.some(function (item) {
976
822
  return item.isAllDay;
977
823
  });
978
- if (isAllDay && ((_events3 = events) === null || _events3 === void 0 ? void 0 : _events3.length) > 1) {
979
- return React__default.createElement(React__default.Fragment, null, React__default.createElement(LMSWeeklyEvent, {
824
+ if (isAllDay && events.length > 1) {
825
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(WeeklyEvent, {
980
826
  event: events[0],
981
827
  onOpenDetail: onOpenDetail,
982
- onEventDetail: onEventDetail
828
+ onEventDetail: onEventDetail,
829
+ zIndex: 1
983
830
  }), React__default.createElement("div", {
984
831
  className: styles['see-more']
985
832
  }, React__default.createElement(CustomTooltip, {
@@ -987,21 +834,23 @@ var LMSWeeklyCell = function LMSWeeklyCell(_ref) {
987
834
  title: React__default.createElement("div", {
988
835
  className: styles['calendar-tooltip']
989
836
  }, events.slice(1, events.length).map(function (event, index) {
990
- return React__default.createElement(LMSWeeklyEvent, {
837
+ return React__default.createElement(WeeklyEvent, {
991
838
  event: event,
992
839
  onOpenDetail: onOpenDetail,
993
840
  onEventDetail: onEventDetail,
994
- key: index + 1
841
+ key: index + 1,
842
+ zIndex: index + 1
995
843
  });
996
844
  }))
997
845
  }, "+", Math.max(events.length - 1, 0), " More")));
998
846
  }
999
- return (_events4 = events) === null || _events4 === void 0 ? void 0 : _events4.map(function (event, index) {
1000
- return React__default.createElement(LMSWeeklyEvent, {
847
+ return events.map(function (event, index) {
848
+ return React__default.createElement(WeeklyEvent, {
1001
849
  key: index,
1002
850
  event: event,
1003
851
  onOpenDetail: onOpenDetail,
1004
- onEventDetail: onEventDetail
852
+ onEventDetail: onEventDetail,
853
+ zIndex: index + 1
1005
854
  });
1006
855
  });
1007
856
  }, [events]);
@@ -1012,29 +861,56 @@ var LMSWeeklyCell = function LMSWeeklyCell(_ref) {
1012
861
  };
1013
862
 
1014
863
  dayjs.extend(isBetween);
1015
- var LMSWeeklyCalendar = function LMSWeeklyCalendar(_ref) {
864
+ var getEventAllDay = function getEventAllDay(events, targetDate) {
865
+ return daysOfWeekKeys.reduce(function (acc, day, index) {
866
+ var currentDate = targetDate.add(index, 'day');
867
+ acc[day] = {
868
+ events: events.reduce(function (filteredEvents, event) {
869
+ if (dayjs(event.startDate).isSame(currentDate.startOf('day')) && checkIsAllday(dayjs(event.startDate), dayjs(event.endDate))) {
870
+ filteredEvents.push(_extends({}, event, {
871
+ isAllDay: true
872
+ }));
873
+ }
874
+ return filteredEvents;
875
+ }, []),
876
+ date: currentDate
877
+ };
878
+ return acc;
879
+ }, {});
880
+ };
881
+ var getEventsOfDay = function getEventsOfDay(events, targetHour) {
882
+ return daysOfWeekKeys.reduce(function (acc, day, index) {
883
+ var currentDate = targetHour.add(index, 'day');
884
+ acc[day] = {
885
+ events: events.filter(function (event) {
886
+ return dayjs(event.startDate).isSame(currentDate, 'hour') && !checkIsAllday(dayjs(event.startDate), dayjs(event.endDate));
887
+ }),
888
+ date: currentDate
889
+ };
890
+ return acc;
891
+ }, {});
892
+ };
893
+ var WeeklyCalendar = function WeeklyCalendar(_ref) {
1016
894
  var startDate = _ref.startDate,
895
+ endDate = _ref.endDate,
1017
896
  events = _ref.events,
897
+ norms = _ref.norms,
898
+ showWeeklyNorm = _ref.showWeeklyNorm,
1018
899
  onOpenDetail = _ref.onOpenDetail,
1019
900
  onOpenCreate = _ref.onOpenCreate,
1020
901
  onEventDetail = _ref.onEventDetail,
1021
- loading = _ref.loading;
1022
- var getEventsOfHour = function getEventsOfHour(events, targetHour) {
1023
- return hoursOfDayKeys.reduce(function (acc, hour) {
1024
- acc[hour] = {
1025
- events: events.filter(function (event) {
1026
- return dayjs(event.startDate).isSame(dayjs(targetHour.format('YYYY-MM-DD') + "T" + hour + ":00"), 'hour') && !checkIsAllday(dayjs(event.startDate), dayjs(event.endDate));
1027
- }),
1028
- date: dayjs(targetHour.format('YYYY-MM-DD') + "T" + hour)
1029
- };
1030
- return acc;
1031
- }, {});
1032
- };
902
+ loading = _ref.loading,
903
+ type = _ref.type;
1033
904
  var getTableColumns = function getTableColumns() {
905
+ var _calculateNormOfWeek = calculateNormOfWeek(norms, events, startDate, endDate),
906
+ normOfWeek = _calculateNormOfWeek.normOfWeek,
907
+ totalNorm = _calculateNormOfWeek.totalNorm;
1034
908
  var hourColumn = {
1035
909
  title: React__default.createElement("div", {
1036
910
  className: styles['weekly-calendar__title']
1037
- }),
911
+ }, showWeeklyNorm && React__default.createElement(React__default.Fragment, null, React__default.createElement("div", null, "Weekly Norm"), React__default.createElement("div", {
912
+ className: clsx__default(normOfWeek > totalNorm && styles['!text-error'])
913
+ }, normOfWeek + "/" + totalNorm))),
1038
914
  dataIndex: 'hour',
1039
915
  key: 'hour',
1040
916
  width: 1,
@@ -1042,31 +918,18 @@ var LMSWeeklyCalendar = function LMSWeeklyCalendar(_ref) {
1042
918
  return React__default.createElement("div", null, value);
1043
919
  }
1044
920
  };
1045
- var hours = Array.from({
1046
- length: 17
1047
- }, function (_, i) {
1048
- return 7 + i;
1049
- });
1050
- var timeColums = hours.map(function (time, index) {
921
+ var dayColumns = Object.values(DAYS_OF_WEEK).map(function (day, index) {
1051
922
  return {
1052
923
  title: React__default.createElement("div", {
1053
924
  className: styles['weekly-calendar__title']
1054
- }, time % 2 !== 0 ? React__default.createElement("div", {
1055
- style: {
1056
- textAlign: 'start'
1057
- }
1058
- }, time < 10 ? '0' + time + ':00' : time + ':00') : React__default.createElement("div", {
1059
- style: {
1060
- minWidth: '35px'
1061
- }
1062
- })),
1063
- dataIndex: "" + (time < 10 ? '0' + time + ':00' : time + ':00'),
1064
- key: "" + (time < 10 ? '0' + time + ':00' : time + ':00'),
925
+ }, React__default.createElement("div", null, day.slice(0, 3)), React__default.createElement("div", null, dayjs(startDate).add(index, 'day').format('DD/MM'))),
926
+ dataIndex: day,
927
+ key: day,
1065
928
  render: function render(value) {
1066
- return React__default.createElement(LMSWeeklyCell, {
929
+ return React__default.createElement(WeeklyCell, {
1067
930
  key: index,
1068
- events: value === null || value === void 0 ? void 0 : value.events,
1069
- date: value === null || value === void 0 ? void 0 : value.date,
931
+ events: value.events,
932
+ date: value.date,
1070
933
  onOpenDetail: onOpenDetail,
1071
934
  onOpenCreate: onOpenCreate,
1072
935
  onEventDetail: onEventDetail
@@ -1074,15 +937,211 @@ var LMSWeeklyCalendar = function LMSWeeklyCalendar(_ref) {
1074
937
  }
1075
938
  };
1076
939
  });
1077
- return [hourColumn].concat(timeColums);
940
+ return [hourColumn].concat(dayColumns);
1078
941
  };
1079
942
  var getTableData = function getTableData() {
1080
943
  var data = [];
1081
- for (var i = 0; i < 7; i++) {
1082
- var targetHour = dayjs(startDate).add(i, 'day');
944
+ data.push(_extends({
945
+ id: -1,
946
+ hour: 'All day'
947
+ }, getEventAllDay(events, startDate)));
948
+ var count = type === CALENDAR_TYPE.LMS ? 7 : 0;
949
+ for (var i = count; i < HOURS_PER_DAY; i++) {
950
+ var targetHour = dayjs(startDate).add(i, 'hour');
1083
951
  data.push(_extends({
1084
952
  id: i,
1085
- hour: React__default.createElement("div", null, React__default.createElement("div", {
953
+ hour: targetHour.format('HH:mm')
954
+ }, getEventsOfDay(events, targetHour)));
955
+ }
956
+ return data;
957
+ };
958
+ return React__default.createElement(antd.Table, {
959
+ rowKey: function rowKey(record) {
960
+ return record.id;
961
+ },
962
+ columns: getTableColumns(),
963
+ dataSource: getTableData(),
964
+ pagination: false,
965
+ rowHoverable: false,
966
+ className: styles['weekly-calendar'],
967
+ loading: loading
968
+ });
969
+ };
970
+
971
+ var calculateBoxSize$1 = function calculateBoxSize(startTime, endTime) {
972
+ var minutes = dayjs(startTime).minute();
973
+ var diffMinutes = dayjs(endTime).diff(startTime, 'hour', true);
974
+ return {
975
+ width: diffMinutes || 1,
976
+ left: Math.floor(minutes / MINUTES_PER_HOUR * 100)
977
+ };
978
+ };
979
+ var LMSWeeklyEvent = function LMSWeeklyEvent(_ref) {
980
+ var event = _ref.event,
981
+ onOpenDetail = _ref.onOpenDetail,
982
+ onEventDetail = _ref.onEventDetail;
983
+ var formattedDate = customDateFormat(event.startDate, TIME_FORMAT) + ' - ' + customDateFormat(event.endDate, TIME_FORMAT);
984
+ var _calculateBoxSize = calculateBoxSize$1(event.startDate, event.endDate),
985
+ width = _calculateBoxSize.width,
986
+ left = _calculateBoxSize.left;
987
+ return React__default.createElement("div", {
988
+ className: styles["event-" + convertType[event.type]],
989
+ onClick: function onClick() {
990
+ onOpenDetail(dayjs(event.startDate).toDate(), [event]);
991
+ onEventDetail && onEventDetail(event);
992
+ },
993
+ style: {
994
+ top: "0%",
995
+ height: "100%",
996
+ width: width * 100 + '%',
997
+ left: left + '%',
998
+ zIndex: event.type === EVENT_TYPES.BUSY ? 2 : 1
999
+ }
1000
+ }, React__default.createElement("div", {
1001
+ className: clsx__default(styles['weekly-event'])
1002
+ }, React__default.createElement("div", {
1003
+ className: clsx__default(styles['weekly-event--collapse'])
1004
+ }, React__default.createElement("div", {
1005
+ className: styles['weekly-event__title']
1006
+ }, React__default.createElement("div", {
1007
+ className: styles['weekly-event__title_icon']
1008
+ }, getIconforEvent(event)), React__default.createElement(CustomTooltip, {
1009
+ title: event.title
1010
+ }, event.title.length > 5 ? event.title.slice(0, 5) + '...' : ''))), React__default.createElement("div", {
1011
+ className: styles['weekly-event__date']
1012
+ }, React__default.createElement(CustomTooltip, {
1013
+ title: formattedDate
1014
+ }, formattedDate))));
1015
+ };
1016
+
1017
+ var LMSWeeklyCell = function LMSWeeklyCell(_ref) {
1018
+ var _events;
1019
+ var events = _ref.events,
1020
+ date = _ref.date,
1021
+ onOpenDetail = _ref.onOpenDetail,
1022
+ onOpenCreate = _ref.onOpenCreate,
1023
+ onEventDetail = _ref.onEventDetail;
1024
+ var isToday = dayjs().isSame(date, 'day');
1025
+ var handleOpenCreateModal = function handleOpenCreateModal(e) {
1026
+ if (e.target !== e.currentTarget) return;
1027
+ onOpenCreate(dayjs(date).toDate());
1028
+ };
1029
+ events = (_events = events) === null || _events === void 0 ? void 0 : _events.sort(function (a, b) {
1030
+ return a.type === EVENT_TYPES.BUSY && b.type !== EVENT_TYPES.BUSY ? 1 : -1;
1031
+ });
1032
+ var renderWeeklyEvent = React.useMemo(function () {
1033
+ var _events2, _events3, _events4;
1034
+ var isAllDay = (_events2 = events) === null || _events2 === void 0 ? void 0 : _events2.some(function (item) {
1035
+ return item.isAllDay;
1036
+ });
1037
+ if (isAllDay && ((_events3 = events) === null || _events3 === void 0 ? void 0 : _events3.length) > 1) {
1038
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(LMSWeeklyEvent, {
1039
+ event: events[0],
1040
+ onOpenDetail: onOpenDetail,
1041
+ onEventDetail: onEventDetail
1042
+ }), React__default.createElement("div", {
1043
+ className: styles['see-more']
1044
+ }, React__default.createElement(CustomTooltip, {
1045
+ placement: 'bottom',
1046
+ title: React__default.createElement("div", {
1047
+ className: styles['calendar-tooltip']
1048
+ }, events.slice(1, events.length).map(function (event, index) {
1049
+ return React__default.createElement(LMSWeeklyEvent, {
1050
+ event: event,
1051
+ onOpenDetail: onOpenDetail,
1052
+ onEventDetail: onEventDetail,
1053
+ key: index + 1
1054
+ });
1055
+ }))
1056
+ }, "+", Math.max(events.length - 1, 0), " More")));
1057
+ }
1058
+ return (_events4 = events) === null || _events4 === void 0 ? void 0 : _events4.map(function (event, index) {
1059
+ return React__default.createElement(LMSWeeklyEvent, {
1060
+ key: index,
1061
+ event: event,
1062
+ onOpenDetail: onOpenDetail,
1063
+ onEventDetail: onEventDetail
1064
+ });
1065
+ });
1066
+ }, [events]);
1067
+ return React__default.createElement("div", {
1068
+ className: styles['weekly-calendar__cell'] + " " + styles['weekly-calendar-lms__cell'] + " " + (isToday ? styles['bg-info/10'] : styles['bg-white']),
1069
+ onClick: handleOpenCreateModal
1070
+ }, renderWeeklyEvent);
1071
+ };
1072
+
1073
+ dayjs.extend(isBetween);
1074
+ var LMSWeeklyCalendar = function LMSWeeklyCalendar(_ref) {
1075
+ var startDate = _ref.startDate,
1076
+ events = _ref.events,
1077
+ onOpenDetail = _ref.onOpenDetail,
1078
+ onOpenCreate = _ref.onOpenCreate,
1079
+ onEventDetail = _ref.onEventDetail,
1080
+ loading = _ref.loading;
1081
+ var getEventsOfHour = function getEventsOfHour(events, targetHour) {
1082
+ return hoursOfDayKeys.reduce(function (acc, hour) {
1083
+ acc[hour] = {
1084
+ events: events.filter(function (event) {
1085
+ return dayjs(event.startDate).isSame(dayjs(targetHour.format('YYYY-MM-DD') + "T" + hour + ":00"), 'hour') && !checkIsAllday(dayjs(event.startDate), dayjs(event.endDate));
1086
+ }),
1087
+ date: dayjs(targetHour.format('YYYY-MM-DD') + "T" + hour)
1088
+ };
1089
+ return acc;
1090
+ }, {});
1091
+ };
1092
+ var getTableColumns = function getTableColumns() {
1093
+ var hourColumn = {
1094
+ title: React__default.createElement("div", {
1095
+ className: styles['weekly-calendar__title']
1096
+ }),
1097
+ dataIndex: 'hour',
1098
+ key: 'hour',
1099
+ width: 1,
1100
+ render: function render(value) {
1101
+ return React__default.createElement("div", null, value);
1102
+ }
1103
+ };
1104
+ var hours = Array.from({
1105
+ length: 17
1106
+ }, function (_, i) {
1107
+ return 7 + i;
1108
+ });
1109
+ var timeColums = hours.map(function (time, index) {
1110
+ return {
1111
+ title: React__default.createElement("div", {
1112
+ className: styles['weekly-calendar__title']
1113
+ }, time % 2 !== 0 ? React__default.createElement("div", {
1114
+ style: {
1115
+ textAlign: 'start'
1116
+ }
1117
+ }, time < 10 ? '0' + time + ':00' : time + ':00') : React__default.createElement("div", {
1118
+ style: {
1119
+ minWidth: '35px'
1120
+ }
1121
+ })),
1122
+ dataIndex: "" + (time < 10 ? '0' + time + ':00' : time + ':00'),
1123
+ key: "" + (time < 10 ? '0' + time + ':00' : time + ':00'),
1124
+ render: function render(value) {
1125
+ return React__default.createElement(LMSWeeklyCell, {
1126
+ key: index,
1127
+ events: value === null || value === void 0 ? void 0 : value.events,
1128
+ date: value === null || value === void 0 ? void 0 : value.date,
1129
+ onOpenDetail: onOpenDetail,
1130
+ onOpenCreate: onOpenCreate,
1131
+ onEventDetail: onEventDetail
1132
+ });
1133
+ }
1134
+ };
1135
+ });
1136
+ return [hourColumn].concat(timeColums);
1137
+ };
1138
+ var getTableData = function getTableData() {
1139
+ var data = [];
1140
+ for (var i = 0; i < 7; i++) {
1141
+ var targetHour = dayjs(startDate).add(i + 1, 'day');
1142
+ data.push(_extends({
1143
+ id: i,
1144
+ hour: React__default.createElement("div", null, React__default.createElement("div", {
1086
1145
  className: styles['lms-calendar__tablet']
1087
1146
  }, Object.values(DAYS_OF_WEEK_SHORTEN)[i]), React__default.createElement("div", {
1088
1147
  className: styles['lms-calendar__tablet']
@@ -1104,6 +1163,282 @@ var LMSWeeklyCalendar = function LMSWeeklyCalendar(_ref) {
1104
1163
  });
1105
1164
  };
1106
1165
 
1166
+ function LMSModeWeeklyCalendar(_ref) {
1167
+ var startDate = _ref.startDate,
1168
+ endDate = _ref.endDate,
1169
+ events = _ref.events,
1170
+ norms = _ref.norms,
1171
+ _ref$showWeeklyNorm = _ref.showWeeklyNorm,
1172
+ showWeeklyNorm = _ref$showWeeklyNorm === void 0 ? false : _ref$showWeeklyNorm,
1173
+ onOpenDetail = _ref.onOpenDetail,
1174
+ onOpenCreate = _ref.onOpenCreate,
1175
+ onEventDetail = _ref.onEventDetail,
1176
+ loading = _ref.loading;
1177
+ var _useState = React.useState(window.innerWidth),
1178
+ windowWidth = _useState[0],
1179
+ setWindowWidth = _useState[1];
1180
+ React.useEffect(function () {
1181
+ var handleResize = function handleResize() {
1182
+ setWindowWidth(window.innerWidth);
1183
+ };
1184
+ window.addEventListener('resize', handleResize);
1185
+ return function () {
1186
+ window.removeEventListener('resize', handleResize);
1187
+ };
1188
+ }, []);
1189
+ return React__default.createElement(React__default.Fragment, null, windowWidth > 1024 ? React__default.createElement(WeeklyCalendar, {
1190
+ startDate: startDate,
1191
+ endDate: endDate,
1192
+ events: events,
1193
+ norms: norms,
1194
+ showWeeklyNorm: showWeeklyNorm,
1195
+ onOpenDetail: onOpenDetail,
1196
+ onOpenCreate: onOpenCreate,
1197
+ onEventDetail: onEventDetail,
1198
+ loading: loading,
1199
+ type: CALENDAR_TYPE.LMS
1200
+ }) : React__default.createElement(LMSWeeklyCalendar, {
1201
+ startDate: startDate,
1202
+ endDate: endDate,
1203
+ events: events,
1204
+ norms: norms,
1205
+ onOpenDetail: onOpenDetail,
1206
+ onOpenCreate: onOpenCreate,
1207
+ onEventDetail: onEventDetail,
1208
+ loading: loading,
1209
+ type: CALENDAR_TYPE.LMS
1210
+ }));
1211
+ }
1212
+
1213
+ var SelectBox = function SelectBox(_ref) {
1214
+ var value = _ref.value,
1215
+ options = _ref.options,
1216
+ defaultValue = _ref.defaultValue,
1217
+ _ref$className = _ref.className,
1218
+ className = _ref$className === void 0 ? '' : _ref$className,
1219
+ disabled = _ref.disabled,
1220
+ onChange = _ref.onChange;
1221
+ return React__default.createElement(antd.Select, {
1222
+ defaultValue: defaultValue,
1223
+ className: className,
1224
+ disabled: disabled,
1225
+ options: options,
1226
+ value: value,
1227
+ onChange: onChange
1228
+ });
1229
+ };
1230
+
1231
+ var LMSHeaderCalendar = function LMSHeaderCalendar(_ref) {
1232
+ var title = _ref.title,
1233
+ showTeacherName = _ref.showTeacherName,
1234
+ currentDate = _ref.currentDate,
1235
+ setCurrentDate = _ref.setCurrentDate,
1236
+ calendarMode = _ref.calendarMode,
1237
+ setCalendarMode = _ref.setCalendarMode,
1238
+ toggleTurnOnFilter = _ref.toggleTurnOnFilter,
1239
+ filter = _ref.filter,
1240
+ hasFilter = _ref.hasFilter;
1241
+ var options = [{
1242
+ value: 'month',
1243
+ label: 'Month'
1244
+ }, {
1245
+ value: 'week',
1246
+ label: 'Week'
1247
+ }];
1248
+ var handleChangeDate = function handleChangeDate(date) {
1249
+ setCurrentDate(date);
1250
+ };
1251
+ var handleChangeMode = function handleChangeMode(mode) {
1252
+ setCalendarMode(mode);
1253
+ setCurrentDate(dayjs());
1254
+ };
1255
+ return React__default.createElement("div", {
1256
+ className: styles['header-calendar']
1257
+ }, React__default.createElement("div", {
1258
+ className: styles['header-calendar_filter']
1259
+ }, hasFilter && React__default.createElement("div", {
1260
+ className: clsx__default(styles['hover-item'], filter.isOpen && styles['text-lms-primary']),
1261
+ onClick: toggleTurnOnFilter
1262
+ }, React__default.createElement(FilterIcon, null)), React__default.createElement("div", {
1263
+ className: "" + styles['header-calendar__nav']
1264
+ }, React__default.createElement(Icon, {
1265
+ icon: React__default.createElement(LeftArrowIcon, null),
1266
+ onClick: function onClick() {
1267
+ return handleChangeDate(currentDate.subtract(1, calendarMode));
1268
+ },
1269
+ className: styles['rounded-none']
1270
+ }), React__default.createElement(antd.DatePicker, {
1271
+ picker: calendarMode === 'day' ? 'date' : calendarMode,
1272
+ onChange: handleChangeDate,
1273
+ format: function format(value) {
1274
+ return customDateFormat(value, calendarMode === 'day' ? FORMAT_DATE_CARLENDA.DATE : FORMAT_DATE_CARLENDA.MONTH_AND_WEEK);
1275
+ },
1276
+ value: currentDate,
1277
+ allowClear: false,
1278
+ suffixIcon: null,
1279
+ className: styles['header-calendar__date-picker'],
1280
+ size: 'large'
1281
+ }), React__default.createElement(Icon, {
1282
+ icon: React__default.createElement(RightArrowIcon, null),
1283
+ onClick: function onClick() {
1284
+ return handleChangeDate(currentDate.add(1, calendarMode));
1285
+ }
1286
+ }))), showTeacherName && React__default.createElement("div", {
1287
+ className: styles['header-calendar__title']
1288
+ }, title), React__default.createElement("div", {
1289
+ className: styles['header-calendar__controls']
1290
+ }, React__default.createElement(Button, {
1291
+ color: 'lms-default',
1292
+ onClick: function onClick() {
1293
+ return handleChangeDate(dayjs());
1294
+ }
1295
+ }, "Today"), React__default.createElement("div", {
1296
+ className: styles['header-calendar__divider']
1297
+ }), React__default.createElement(SelectBox, {
1298
+ value: calendarMode,
1299
+ options: options,
1300
+ className: 'select-mode',
1301
+ onChange: function onChange(mode) {
1302
+ handleChangeMode(mode);
1303
+ }
1304
+ })));
1305
+ };
1306
+
1307
+ var styles$1 = {"ant-picker-calendar-header":"_2Y9jk","ant-radio-group":"_3puh0","ant-picker-calendar-month-select":"_1b_yY","calendar-filter":"_1K0QG","calendar-filter_title":"_1kmo4","calendar-filter_note_blue":"_3yl3q","calendar-filter_note_pureple":"_dS6FM","calendar-filter_note_green":"_2v-Pp","calendar-filter_note_yellow":"_1u4J8","calendar-filter_note_red":"_1RLYM","calendar-filter_content_list_item":"_29aaM","calendar-filter_content_item_eye":"_1yCoo"};
1308
+
1309
+ var FilterCalendar = function FilterCalendar(_ref) {
1310
+ var filter = _ref.filter,
1311
+ setFilter = _ref.setFilter,
1312
+ courses = _ref.courses,
1313
+ onRefetchAPI = _ref.onRefetchAPI;
1314
+ var noteFilter = React.useMemo(function () {
1315
+ return [{
1316
+ title: 'Online',
1317
+ icon: React__default.createElement("div", {
1318
+ className: styles$1['calendar-filter_note_blue']
1319
+ }),
1320
+ value: LEARNING_MODE.ONLINE
1321
+ }, {
1322
+ title: 'Live Online',
1323
+ icon: React__default.createElement("div", {
1324
+ className: styles$1['calendar-filter_note_pureple']
1325
+ }),
1326
+ value: LEARNING_MODE.LIVE_ONLINE
1327
+ }, {
1328
+ title: 'Offline',
1329
+ icon: React__default.createElement("div", {
1330
+ className: styles$1['calendar-filter_note_green']
1331
+ }),
1332
+ value: LEARNING_MODE.OFFLINE
1333
+ }, {
1334
+ title: 'Test',
1335
+ icon: React__default.createElement(TestIcon, null),
1336
+ value: LEARNING_MODE.TEST
1337
+ }, {
1338
+ title: 'Case Study',
1339
+ icon: React__default.createElement(GoldStarIcon, null),
1340
+ value: LEARNING_MODE.CASE_STUDY
1341
+ }, {
1342
+ title: 'Key Content Before',
1343
+ icon: React__default.createElement(FlagIcon, null),
1344
+ value: LEARNING_MODE.KEY_BEFORE_CONTENT
1345
+ }, {
1346
+ title: 'Holiday',
1347
+ icon: React__default.createElement("div", {
1348
+ className: styles$1['calendar-filter_note_yellow']
1349
+ }),
1350
+ value: LEARNING_MODE.HOLIDAY
1351
+ }, {
1352
+ title: 'Overdue',
1353
+ icon: React__default.createElement("div", {
1354
+ className: styles$1['calendar-filter_note_red']
1355
+ }),
1356
+ value: LEARNING_MODE.OVERDUE
1357
+ }];
1358
+ }, []);
1359
+ var handleFilter = function handleFilter(type, value) {
1360
+ switch (type) {
1361
+ case 'course':
1362
+ {
1363
+ setFilter(function (prev) {
1364
+ var courseId = prev.courseId || [];
1365
+ var updatedCourseId = courseId.includes(value) ? courseId.filter(function (item) {
1366
+ return item !== value;
1367
+ }) : [].concat(courseId, [value]);
1368
+ return _extends({}, prev, {
1369
+ courseId: updatedCourseId
1370
+ });
1371
+ });
1372
+ break;
1373
+ }
1374
+ case 'note':
1375
+ {
1376
+ setFilter(function (prev) {
1377
+ var typeArray = prev.type || [];
1378
+ var updatedType = typeArray.includes(value) ? typeArray.filter(function (item) {
1379
+ return item !== value;
1380
+ }) : [].concat(typeArray, [value]);
1381
+ return _extends({}, prev, {
1382
+ type: updatedType
1383
+ });
1384
+ });
1385
+ break;
1386
+ }
1387
+ case 'day':
1388
+ {
1389
+ setFilter(function (prev) {
1390
+ return _extends({}, prev, {
1391
+ day: value
1392
+ });
1393
+ });
1394
+ break;
1395
+ }
1396
+ }
1397
+ };
1398
+ var handleFilterday = function handleFilterday(date) {
1399
+ onRefetchAPI(date.toDate());
1400
+ handleFilter('day', date.toString());
1401
+ };
1402
+ return React__default.createElement("div", {
1403
+ className: styles$1['calendar-filter']
1404
+ }, React__default.createElement(antd.Calendar, {
1405
+ mode: 'month',
1406
+ className: styles$1['custom-today-picker'],
1407
+ fullscreen: false,
1408
+ onChange: handleFilterday
1409
+ }), React__default.createElement("div", null, React__default.createElement("div", {
1410
+ className: styles$1['calendar-filter_title']
1411
+ }, React__default.createElement(TagIcon, null), React__default.createElement("h3", null, "Notes")), React__default.createElement("div", null, noteFilter.map(function (item) {
1412
+ var _filter$type;
1413
+ return React__default.createElement("div", {
1414
+ className: styles$1['calendar-filter_content_list_item'],
1415
+ key: item.value
1416
+ }, React__default.createElement("div", {
1417
+ className: styles$1['calendar-filter_content_list_item']
1418
+ }, item.icon, item.title), React__default.createElement("div", {
1419
+ onClick: function onClick() {
1420
+ return handleFilter('note', item.value);
1421
+ },
1422
+ className: styles$1['calendar-filter_content_item_eye']
1423
+ }, (_filter$type = filter.type) !== null && _filter$type !== void 0 && _filter$type.includes(item.value) ? React__default.createElement(EyeIcon, null) : React__default.createElement(HiddenEyeIcon, null)));
1424
+ }))), React__default.createElement("div", null, React__default.createElement("div", {
1425
+ className: styles$1['calendar-filter_title']
1426
+ }, React__default.createElement(EducationIcon, null), React__default.createElement("h3", null, "My courses")), React__default.createElement("div", null, courses === null || courses === void 0 ? void 0 : courses.map(function (item, key) {
1427
+ var _filter$courseId;
1428
+ return React__default.createElement("div", {
1429
+ key: key,
1430
+ className: styles$1['calendar-filter_content_list_item']
1431
+ }, React__default.createElement("div", {
1432
+ className: styles$1['calendar-filter_content_list_item']
1433
+ }, item.name), React__default.createElement("div", {
1434
+ onClick: function onClick() {
1435
+ return handleFilter('course', item.id);
1436
+ },
1437
+ className: styles$1['calendar-filter_content_item_eye']
1438
+ }, (_filter$courseId = filter.courseId) !== null && _filter$courseId !== void 0 && _filter$courseId.includes(item.id) ? React__default.createElement(EyeIcon, null) : React__default.createElement(HiddenEyeIcon, null)));
1439
+ }))));
1440
+ };
1441
+
1107
1442
  var SAPPCalendar = function SAPPCalendar(_ref) {
1108
1443
  var teacherName = _ref.teacherName,
1109
1444
  events = _ref.events,
@@ -1119,80 +1454,81 @@ var SAPPCalendar = function SAPPCalendar(_ref) {
1119
1454
  onEventDetail = _ref.onEventDetail,
1120
1455
  loading = _ref.loading,
1121
1456
  _ref$type = _ref.type,
1122
- type = _ref$type === void 0 ? 'normal' : _ref$type,
1457
+ type = _ref$type === void 0 ? 'OPS' : _ref$type,
1123
1458
  courses = _ref.courses,
1124
- onFilter = _ref.onFilter;
1459
+ onfilter = _ref.onfilter,
1460
+ _ref$hasFilter = _ref.hasFilter,
1461
+ hasFilter = _ref$hasFilter === void 0 ? false : _ref$hasFilter,
1462
+ _ref$headerType = _ref.headerType,
1463
+ headerType = _ref$headerType === void 0 ? CALENDAR_TYPE.OPS : _ref$headerType;
1125
1464
  var _useState = React.useState(dayjs()),
1126
1465
  currentDate = _useState[0],
1127
1466
  setCurrentDate = _useState[1];
1128
- var _useState2 = React.useState('week'),
1467
+ var _useState2 = React.useState('month'),
1129
1468
  calendarMode = _useState2[0],
1130
1469
  setCalendarMode = _useState2[1];
1131
1470
  var _useState3 = React.useState({
1471
+ courseId: courses ? courses.map(function (item) {
1472
+ return item.id;
1473
+ }) : [],
1132
1474
  isOpen: false,
1133
1475
  type: Object.values(LEARNING_MODE),
1134
- courseId: courses !== null && courses !== void 0 && courses.length ? courses === null || courses === void 0 ? void 0 : courses.map(function (item) {
1135
- return item.id;
1136
- }) : []
1476
+ day: ''
1137
1477
  }),
1138
1478
  filter = _useState3[0],
1139
1479
  setFilter = _useState3[1];
1140
1480
  var startDate = React.useMemo(function () {
1141
- if (calendarMode === 'day') {
1142
- return dayjs(currentDate).startOf('day');
1143
- }
1144
1481
  return dayjs(currentDate).startOf(calendarMode).startOf('week').add(1, 'day');
1145
1482
  }, [currentDate, calendarMode]);
1146
1483
  var endDate = React.useMemo(function () {
1147
- if (calendarMode === 'day') {
1148
- return dayjs(currentDate).endOf('day');
1149
- }
1150
1484
  return dayjs(currentDate).endOf(calendarMode).endOf('week').add(1, 'day');
1151
1485
  }, [currentDate, calendarMode]);
1152
1486
  var splittedEvents = splitEventsIntoDays(events);
1153
1487
  splittedEvents.sort(function (a, b) {
1154
1488
  return dayjs(a.startDate).diff(b.startDate);
1155
1489
  });
1156
- var handleToggleFilter = function handleToggleFilter() {
1157
- setFilter(function (prev) {
1158
- return _extends({}, filter, {
1159
- isOpen: !prev.isOpen
1160
- });
1161
- });
1490
+ var handleFilterDate = function handleFilterDate(date) {
1491
+ setCurrentDate(date);
1162
1492
  };
1493
+ React.useEffect(function () {
1494
+ onfilter && onfilter(filter);
1495
+ }, [filter]);
1163
1496
  useEffectAfterMounted(function () {
1164
1497
  onRefetchAPI(startDate.toDate(), endDate.toDate());
1165
1498
  }, [startDate, endDate]);
1166
- console.log('course:', courses);
1167
- React.useEffect(function () {
1168
- if (type === 'filter') {
1169
- onFilter && onFilter(filter);
1170
- }
1171
- }, [filter]);
1172
1499
  return React__default.createElement("div", {
1173
1500
  className: styles['sapp-calendar']
1174
1501
  }, filter.isOpen && React__default.createElement(FilterCalendar, {
1175
- courses: courses,
1176
1502
  filter: filter,
1177
- setFilter: setFilter
1503
+ setFilter: setFilter,
1504
+ onRefetchAPI: function onRefetchAPI(date) {
1505
+ return handleFilterDate(dayjs(date));
1506
+ }
1178
1507
  }), React__default.createElement("div", {
1179
1508
  className: styles['sapp-calendar__container']
1180
- }, type === 'normal' ? React__default.createElement(HeaderCalendar, {
1509
+ }, headerType === CALENDAR_TYPE.LMS ? React__default.createElement(LMSHeaderCalendar, {
1181
1510
  title: teacherName,
1182
1511
  showTeacherName: showTeacherName,
1183
1512
  currentDate: currentDate,
1184
1513
  setCurrentDate: setCurrentDate,
1185
1514
  calendarMode: calendarMode,
1186
- setCalendarMode: setCalendarMode
1187
- }) : React__default.createElement(LMSHeaderCalendar, {
1515
+ setCalendarMode: setCalendarMode,
1516
+ toggleTurnOnFilter: function toggleTurnOnFilter() {
1517
+ return setFilter(function (prev) {
1518
+ return _extends({}, prev, {
1519
+ isOpen: !filter.isOpen
1520
+ });
1521
+ });
1522
+ },
1523
+ hasFilter: hasFilter,
1524
+ filter: filter
1525
+ }) : React__default.createElement(HeaderCalendar, {
1188
1526
  title: teacherName,
1189
1527
  showTeacherName: showTeacherName,
1190
1528
  currentDate: currentDate,
1191
1529
  setCurrentDate: setCurrentDate,
1192
1530
  calendarMode: calendarMode,
1193
- setCalendarMode: setCalendarMode,
1194
- toggleTurnOnFilter: handleToggleFilter,
1195
- filter: filter
1531
+ setCalendarMode: setCalendarMode
1196
1532
  }), calendarMode === 'month' && React__default.createElement(MonthlyCalendar, {
1197
1533
  currentDate: currentDate,
1198
1534
  startDate: startDate,
@@ -1204,11 +1540,22 @@ var SAPPCalendar = function SAPPCalendar(_ref) {
1204
1540
  onOpenCreate: onOpenCreate,
1205
1541
  onEventDetail: onEventDetail,
1206
1542
  loading: loading
1207
- }), calendarMode === 'week' && React__default.createElement(LMSWeeklyCalendar, {
1543
+ }), calendarMode === 'week' && type === CALENDAR_TYPE.LMS && React__default.createElement(LMSModeWeeklyCalendar, {
1544
+ startDate: startDate,
1545
+ endDate: endDate,
1546
+ events: splittedEvents,
1547
+ norms: norms,
1548
+ showWeeklyNorm: showWeeklyNorm,
1549
+ onOpenDetail: onOpenDetail,
1550
+ onOpenCreate: onOpenCreate,
1551
+ onEventDetail: onEventDetail,
1552
+ loading: loading
1553
+ }), calendarMode === 'week' && type === CALENDAR_TYPE.OPS && React__default.createElement(WeeklyCalendar, {
1208
1554
  startDate: startDate,
1209
1555
  endDate: endDate,
1210
1556
  events: splittedEvents,
1211
1557
  norms: norms,
1558
+ showWeeklyNorm: showWeeklyNorm,
1212
1559
  onOpenDetail: onOpenDetail,
1213
1560
  onOpenCreate: onOpenCreate,
1214
1561
  onEventDetail: onEventDetail,