pds-dev-kit-web 2.2.245 → 2.2.248
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/src/desktop/components/Calendar/Calendar.d.ts +1 -1
- package/dist/src/desktop/components/Calendar/Calendar.js +71 -74
- package/dist/src/desktop/components/Calendar/{CurrentTimeIndicator.js → components/CurrentTimeIndicator/CurrentTimeIndicator.js} +10 -12
- package/dist/src/desktop/components/Calendar/components/CurrentTimeIndicator/index.d.ts +2 -0
- package/dist/src/desktop/components/Calendar/components/CurrentTimeIndicator/index.js +4 -0
- package/dist/src/desktop/components/Calendar/{AllDaySchedulesSection.d.ts → components/Schedule/AllDaySchedulesSection.d.ts} +3 -3
- package/dist/src/desktop/components/Calendar/{AllDaySchedulesSection.js → components/Schedule/AllDaySchedulesSection.js} +15 -9
- package/dist/src/desktop/components/Calendar/{MultiWeekSchedulesLayer.d.ts → components/Schedule/MultiWeekSchedulesLayer.d.ts} +1 -1
- package/dist/src/desktop/components/Calendar/{MultiWeekSchedulesLayer.js → components/Schedule/MultiWeekSchedulesLayer.js} +3 -3
- package/dist/src/desktop/components/Calendar/{ScheduleItem.d.ts → components/Schedule/ScheduleItem.d.ts} +1 -1
- package/dist/src/desktop/components/Calendar/{ScheduleItem.js → components/Schedule/ScheduleItem.js} +1 -1
- package/dist/src/desktop/components/Calendar/{TimeBasedScheduleItem.d.ts → components/Schedule/TimeBasedScheduleItem.d.ts} +1 -1
- package/dist/src/desktop/components/Calendar/{TimeBasedScheduleItem.js → components/Schedule/TimeBasedScheduleItem.js} +4 -5
- package/dist/src/desktop/components/Calendar/components/Schedule/index.d.ts +4 -0
- package/dist/src/desktop/components/Calendar/components/Schedule/index.js +11 -0
- package/dist/src/desktop/components/Calendar/constants.d.ts +1 -0
- package/dist/src/desktop/components/Calendar/constants.js +19 -1
- package/dist/src/desktop/components/Calendar/{CalendarContext.d.ts → context/CalendarContext.d.ts} +2 -2
- package/dist/src/desktop/components/Calendar/{CalendarContext.js → context/CalendarContext.js} +2 -16
- package/dist/src/desktop/components/Calendar/hooks/useTimeDragSelection.d.ts +16 -0
- package/dist/src/desktop/components/Calendar/hooks/useTimeDragSelection.js +81 -0
- package/dist/src/desktop/components/Calendar/index.d.ts +4 -13
- package/dist/src/desktop/components/Calendar/index.js +7 -22
- package/dist/src/desktop/components/Calendar/{types.d.ts → types/types.d.ts} +6 -1
- package/dist/src/desktop/components/Calendar/types/types.js +10 -0
- package/dist/src/desktop/components/Calendar/{calendarUtils.d.ts → utils/calendarUtils.d.ts} +1 -1
- package/dist/src/desktop/components/Calendar/{calendarUtils.js → utils/calendarUtils.js} +6 -5
- package/dist/src/desktop/components/Calendar/utils/index.d.ts +2 -0
- package/dist/src/desktop/components/Calendar/utils/index.js +18 -0
- package/dist/src/desktop/components/Calendar/{DailyView.d.ts → views/DailyView.d.ts} +1 -1
- package/dist/src/desktop/components/Calendar/{DailyView.js → views/DailyView.js} +26 -82
- package/dist/src/desktop/components/Calendar/{MonthlyView.d.ts → views/MonthlyView.d.ts} +1 -1
- package/dist/src/desktop/components/Calendar/{MonthlyView.js → views/MonthlyView.js} +22 -15
- package/dist/src/desktop/components/Calendar/{WeeklyView.d.ts → views/WeeklyView.d.ts} +1 -1
- package/dist/src/desktop/components/Calendar/{WeeklyView.js → views/WeeklyView.js} +25 -95
- package/dist/src/desktop/components/Calendar/{YearlyView.d.ts → views/YearlyView.d.ts} +1 -1
- package/dist/src/desktop/components/Calendar/{YearlyView.js → views/YearlyView.js} +3 -2
- package/package.json +1 -1
- package/release-note.md +2 -2
- package/dist/src/desktop/components/Calendar/types.js +0 -2
- /package/dist/src/desktop/components/Calendar/{CurrentTimeIndicator.d.ts → components/CurrentTimeIndicator/CurrentTimeIndicator.d.ts} +0 -0
- /package/dist/src/desktop/components/Calendar/{timeFormatUtils.d.ts → utils/timeFormatUtils.d.ts} +0 -0
- /package/dist/src/desktop/components/Calendar/{timeFormatUtils.js → utils/timeFormatUtils.js} +0 -0
|
@@ -42,21 +42,20 @@ exports.WeeklyView = void 0;
|
|
|
42
42
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
43
43
|
var react_1 = require("react");
|
|
44
44
|
var react_i18next_1 = require("react-i18next");
|
|
45
|
-
var dateHelper_1 = require("
|
|
45
|
+
var dateHelper_1 = require("../../../../common/utils/dateHelper");
|
|
46
46
|
var styled_components_1 = __importStar(require("styled-components"));
|
|
47
|
-
var TextLabel_1 = require("
|
|
48
|
-
var
|
|
49
|
-
var
|
|
50
|
-
var
|
|
51
|
-
var
|
|
52
|
-
var
|
|
47
|
+
var TextLabel_1 = require("../../TextLabel");
|
|
48
|
+
var CurrentTimeIndicator_1 = require("../components/CurrentTimeIndicator/CurrentTimeIndicator");
|
|
49
|
+
var Schedule_1 = require("../components/Schedule");
|
|
50
|
+
var AllDaySchedulesSection_1 = require("../components/Schedule/AllDaySchedulesSection");
|
|
51
|
+
var CalendarContext_1 = require("../context/CalendarContext");
|
|
52
|
+
var useTimeDragSelection_1 = require("../hooks/useTimeDragSelection");
|
|
53
|
+
var timeFormatUtils_1 = require("../utils/timeFormatUtils");
|
|
53
54
|
var WeeklyView = function (_a) {
|
|
55
|
+
var _b, _c;
|
|
54
56
|
var startOfWeek = _a.startOfWeek, schedules = _a.schedules, config = _a.config;
|
|
55
|
-
var
|
|
56
|
-
var
|
|
57
|
-
var _d = (0, react_1.useState)(null), timeSelectionStart = _d[0], setTimeSelectionStart = _d[1];
|
|
58
|
-
var _e = (0, react_1.useState)(null), timeSelectionEnd = _e[0], setTimeSelectionEnd = _e[1];
|
|
59
|
-
var _f = (0, react_1.useState)(false), isTimeDragging = _f[0], setIsTimeDragging = _f[1];
|
|
57
|
+
var _d = (0, react_i18next_1.useTranslation)('translation'), t = _d.t, i18n = _d.i18n;
|
|
58
|
+
var _e = (0, CalendarContext_1.useCalendarContext)(), selectedDate = _e.selectedDate, selectedSchedules = _e.selectedSchedules, displayAllDayScheduleMode = _e.displayAllDayScheduleMode, getSchedulesForDate = _e.getSchedulesForDate, isToday = _e.isToday, isDragOverDate = _e.isDragOverDate, handleDateDragOver = _e.handleDateDragOver, handleDateDragLeave = _e.handleDateDragLeave, handleDateDrop = _e.handleDateDrop, handleDateClick = _e.handleDateClick, handleDateDrag = _e.handleDateDrag, handleScheduleDragStart = _e.handleScheduleDragStart, handleScheduleDragEnd = _e.handleScheduleDragEnd, isDraggable = _e.isDraggable, handleScheduleClick = _e.handleScheduleClick, getDayTextByDate = _e.getDayTextByDate;
|
|
60
59
|
var calendarDates = (0, react_1.useMemo)(function () {
|
|
61
60
|
var dates = [];
|
|
62
61
|
var startIndex = startOfWeek === 'monday' ? 1 : 0;
|
|
@@ -67,88 +66,17 @@ var WeeklyView = function (_a) {
|
|
|
67
66
|
}
|
|
68
67
|
return dates;
|
|
69
68
|
}, [selectedDate, startOfWeek]);
|
|
70
|
-
//
|
|
71
|
-
var
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
}, [
|
|
81
|
-
// 시간 드래그 중
|
|
82
|
-
var handleTimeMouseEnter = (0, react_1.useCallback)(function (date, hour) {
|
|
83
|
-
if (!isTimeDragging)
|
|
84
|
-
return;
|
|
85
|
-
setTimeSelectionEnd({ date: date, hour: hour });
|
|
86
|
-
}, [isTimeDragging]);
|
|
87
|
-
// 드래그 종료 시 콜백 호출
|
|
88
|
-
(0, react_1.useEffect)(function () {
|
|
89
|
-
var handleMouseUp = function () {
|
|
90
|
-
var _a;
|
|
91
|
-
if (isTimeDragging && timeSelectionStart && timeSelectionEnd && ((_a = config === null || config === void 0 ? void 0 : config.DATE) === null || _a === void 0 ? void 0 : _a.DRAG)) {
|
|
92
|
-
// 선택된 시간 범위 계산
|
|
93
|
-
var startDateTime = new Date(timeSelectionStart.date);
|
|
94
|
-
startDateTime.setHours(timeSelectionStart.hour, 0, 0, 0);
|
|
95
|
-
var endDateTime = new Date(timeSelectionEnd.date);
|
|
96
|
-
endDateTime.setHours(timeSelectionEnd.hour, 59, 59, 999);
|
|
97
|
-
// 실제 시작/종료 시간 (순서 보정)
|
|
98
|
-
var actualStartTime_1 = new Date(Math.min(startDateTime.getTime(), endDateTime.getTime()));
|
|
99
|
-
var actualEndTime_1 = new Date(Math.max(startDateTime.getTime(), endDateTime.getTime()));
|
|
100
|
-
// 선택된 시간 범위에 포함되는 스케줄들 찾기
|
|
101
|
-
var schedulesInRange_1 = [];
|
|
102
|
-
schedules.forEach(function (schedule) {
|
|
103
|
-
var scheduleStart = new Date(schedule.startDate);
|
|
104
|
-
var scheduleEnd = new Date(schedule.endDate);
|
|
105
|
-
// 스케줄이 선택된 시간 범위와 겹치는지 확인
|
|
106
|
-
if (scheduleStart <= actualEndTime_1 && scheduleEnd >= actualStartTime_1) {
|
|
107
|
-
schedulesInRange_1.push(schedule);
|
|
108
|
-
}
|
|
109
|
-
});
|
|
110
|
-
// 선택된 날짜들 생성 (시간 범위에 포함된 모든 날짜)
|
|
111
|
-
var selectedDates = [];
|
|
112
|
-
var currentDate = new Date(actualStartTime_1);
|
|
113
|
-
currentDate.setHours(0, 0, 0, 0);
|
|
114
|
-
var endDate = new Date(actualEndTime_1);
|
|
115
|
-
endDate.setHours(0, 0, 0, 0);
|
|
116
|
-
while (currentDate <= endDate) {
|
|
117
|
-
selectedDates.push(new Date(currentDate));
|
|
118
|
-
currentDate.setDate(currentDate.getDate() + 1);
|
|
119
|
-
}
|
|
120
|
-
handleDateDrag({
|
|
121
|
-
action: 'DRAG',
|
|
122
|
-
target: 'DATE',
|
|
123
|
-
dates: selectedDates,
|
|
124
|
-
schedules: schedulesInRange_1,
|
|
125
|
-
startDate: actualStartTime_1.toISOString(),
|
|
126
|
-
endDate: actualEndTime_1.toISOString()
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
setIsTimeDragging(false);
|
|
130
|
-
setTimeSelectionStart(null);
|
|
131
|
-
setTimeSelectionEnd(null);
|
|
132
|
-
};
|
|
133
|
-
if (isTimeDragging) {
|
|
134
|
-
document.addEventListener('mouseup', handleMouseUp);
|
|
135
|
-
return function () { return document.removeEventListener('mouseup', handleMouseUp); };
|
|
136
|
-
}
|
|
137
|
-
}, [isTimeDragging, timeSelectionStart, timeSelectionEnd, config, schedules]);
|
|
138
|
-
// 선택한 시간이 드래그 범위에 포함되는지 확인
|
|
139
|
-
var isTimeSlotInDragRange = (0, react_1.useCallback)(function (date, hour) {
|
|
140
|
-
if (!timeSelectionStart || !timeSelectionEnd)
|
|
141
|
-
return false;
|
|
142
|
-
var slotDateTime = new Date(date);
|
|
143
|
-
slotDateTime.setHours(hour, 0, 0, 0);
|
|
144
|
-
var startDateTime = new Date(timeSelectionStart.date);
|
|
145
|
-
startDateTime.setHours(timeSelectionStart.hour, 0, 0, 0);
|
|
146
|
-
var endDateTime = new Date(timeSelectionEnd.date);
|
|
147
|
-
endDateTime.setHours(timeSelectionEnd.hour, 0, 0, 0);
|
|
148
|
-
var actualStartTime = Math.min(startDateTime.getTime(), endDateTime.getTime());
|
|
149
|
-
var actualEndTime = Math.max(startDateTime.getTime(), endDateTime.getTime());
|
|
150
|
-
return slotDateTime.getTime() >= actualStartTime && slotDateTime.getTime() <= actualEndTime;
|
|
151
|
-
}, [timeSelectionStart, timeSelectionEnd]);
|
|
69
|
+
// useTimeDragSelection hook 사용
|
|
70
|
+
var _f = (0, useTimeDragSelection_1.useTimeDragSelection)({
|
|
71
|
+
enabled: (_c = (_b = config === null || config === void 0 ? void 0 : config.DATE) === null || _b === void 0 ? void 0 : _b.DRAG) !== null && _c !== void 0 ? _c : false,
|
|
72
|
+
schedules: schedules,
|
|
73
|
+
onComplete: handleDateDrag
|
|
74
|
+
}), onMouseDown = _f.onMouseDown, onMouseEnter = _f.onMouseEnter, isSlotInRange = _f.isSlotInRange, dragging = _f.dragging;
|
|
75
|
+
// 시간 슬롯을 위한 헬퍼 함수
|
|
76
|
+
var createTimeSlot = (0, react_1.useCallback)(function (date, hour) { return ({
|
|
77
|
+
date: new Date(date),
|
|
78
|
+
hour: hour
|
|
79
|
+
}); }, []);
|
|
152
80
|
return ((0, jsx_runtime_1.jsxs)(S_WeeklyContainer, { children: [(0, jsx_runtime_1.jsxs)(S_WeeklyHeader, { children: [(0, jsx_runtime_1.jsx)(S_TimeColumnHeader, {}), calendarDates.map(function (date, index) {
|
|
153
81
|
var dayText = getDayTextByDate(date);
|
|
154
82
|
var monthNames = [
|
|
@@ -176,8 +104,10 @@ var WeeklyView = function (_a) {
|
|
|
176
104
|
})] }), (0, jsx_runtime_1.jsx)(AllDaySchedulesSection_1.AllDaySchedulesSection, { calendarDates: calendarDates, displayAllDayScheduleMode: displayAllDayScheduleMode, getSchedulesForDate: getSchedulesForDate, handleDateDragOver: handleDateDragOver, handleDateDragLeave: handleDateDragLeave, handleDateDrop: handleDateDrop }), (0, jsx_runtime_1.jsxs)(S_WeeklyTimeGrid, __assign({ "$displayAllDayScheduleMode": displayAllDayScheduleMode }, { children: [(0, jsx_runtime_1.jsx)(CurrentTimeIndicator_1.CurrentTimeIndicator, { show: true, leftOffset: "80px" }), Array.from({ length: 24 }, function (_unused, hour) { return ((0, jsx_runtime_1.jsxs)(S_TimeRow, { children: [(0, jsx_runtime_1.jsx)(S_TimeLabel, { children: (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { styleTheme: "caption2Bold", text: (0, timeFormatUtils_1.formatTimeWithLocale)(hour, 0, i18n.language, t), colorTheme: "sysTextTertiary" }) }), (0, jsx_runtime_1.jsx)(S_TimeSlots, { children: calendarDates.map(function (date, dayIndex) {
|
|
177
105
|
var timeSlotDate = new Date(date);
|
|
178
106
|
timeSlotDate.setHours(hour, 0, 0, 0);
|
|
107
|
+
var timeSlot = createTimeSlot(date, hour);
|
|
179
108
|
var isDragOver = (isDragOverDate === null || isDragOverDate === void 0 ? void 0 : isDragOverDate.getTime()) === timeSlotDate.getTime();
|
|
180
|
-
|
|
109
|
+
var isInDragRange = isSlotInRange(timeSlot);
|
|
110
|
+
return ((0, jsx_runtime_1.jsx)(S_TimeSlot, __assign({ "$isDragOver": isDragOver, "$isDraggable": isDraggable, "$isInTimeDragRange": isInDragRange, "$isTimeDragging": dragging, onClick: function () { return handleDateClick(date, {}); }, onDragOver: function (e) { return handleDateDragOver(timeSlotDate, e); }, onDragLeave: handleDateDragLeave, onDrop: function (e) { return handleDateDrop(timeSlotDate, e); }, onMouseDown: function (e) { return onMouseDown(timeSlot, e); }, onMouseEnter: function () { return onMouseEnter(timeSlot); } }, { children: hour === 0 && ((0, jsx_runtime_1.jsx)(Schedule_1.TimeBasedScheduleItem, { schedules: getSchedulesForDate(date), selectedSchedules: selectedSchedules, isDraggable: isDraggable, onClick: handleScheduleClick, handleScheduleDragStart: handleScheduleDragStart, handleScheduleDragEnd: handleScheduleDragEnd })) }), dayIndex));
|
|
181
111
|
}) })] }, hour)); })] }))] }));
|
|
182
112
|
};
|
|
183
113
|
exports.WeeklyView = WeeklyView;
|
|
@@ -22,7 +22,8 @@ exports.YearlyView = void 0;
|
|
|
22
22
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
23
23
|
var react_i18next_1 = require("react-i18next");
|
|
24
24
|
var styled_components_1 = __importDefault(require("styled-components"));
|
|
25
|
-
var TextLabel_1 = require("
|
|
25
|
+
var TextLabel_1 = require("../../TextLabel");
|
|
26
|
+
var constants_1 = require("../constants");
|
|
26
27
|
var YearlyView = function (_a) {
|
|
27
28
|
var selectedDate = _a.selectedDate, getMonthDates = _a.getMonthDates, getDayTextByDate = _a.getDayTextByDate, startOfWeek = _a.startOfWeek, isToday = _a.isToday, handleDateClick = _a.handleDateClick, getSchedulesForDate = _a.getSchedulesForDate;
|
|
28
29
|
var t = (0, react_i18next_1.useTranslation)('translation').t;
|
|
@@ -48,7 +49,7 @@ var YearlyView = function (_a) {
|
|
|
48
49
|
};
|
|
49
50
|
return ((0, jsx_runtime_1.jsx)(S_YearlyGrid, { children: Array.from({ length: 12 }, function (_unused, monthIndex) {
|
|
50
51
|
var monthDates = getMonthDates(currentYear, monthIndex);
|
|
51
|
-
return ((0, jsx_runtime_1.jsxs)(S_YearlyMonth, { children: [(0, jsx_runtime_1.jsx)(S_YearlyMonthHeader, { children: (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: t(
|
|
52
|
+
return ((0, jsx_runtime_1.jsxs)(S_YearlyMonth, { children: [(0, jsx_runtime_1.jsx)(S_YearlyMonthHeader, { children: (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: t((0, constants_1.getMonthStringKey)(monthIndex + 1)), styleTheme: "body1Bold", colorTheme: "sysTextBrandPrimary" }) }), (0, jsx_runtime_1.jsxs)(S_YearlyMiniCalendar, { children: [(0, jsx_runtime_1.jsx)(S_YearlyDayHeaders, { children: orderedDayTexts.map(function (day, index) { return ((0, jsx_runtime_1.jsx)(S_YearlyDayHeader, { children: (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: day, styleTheme: "caption2Regular", textAlign: "center", colorTheme: "sysTextTertiary" }) }, "".concat(day, "-").concat(index))); }) }), (0, jsx_runtime_1.jsx)(S_YearlyDatesGrid, { children: monthDates.map(function (date, dateIndex) {
|
|
52
53
|
var isCurrentMonth = date.getMonth() === monthIndex;
|
|
53
54
|
var isTodayDate = isToday(date);
|
|
54
55
|
var hasSchedule = getSchedulesForDate(date).length > 0;
|
package/package.json
CHANGED
package/release-note.md
CHANGED
|
File without changes
|
/package/dist/src/desktop/components/Calendar/{timeFormatUtils.d.ts → utils/timeFormatUtils.d.ts}
RENAMED
|
File without changes
|
/package/dist/src/desktop/components/Calendar/{timeFormatUtils.js → utils/timeFormatUtils.js}
RENAMED
|
File without changes
|