pds-dev-kit-web 2.2.211 → 2.2.212
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/common/services/i18n/resources/en.json +14 -14
- package/dist/src/common/styles/scroll/scrollbarStyle.d.ts +2 -0
- package/dist/src/common/styles/scroll/scrollbarStyle.js +4 -3
- package/dist/src/desktop/components/Calendar/Calendar.js +46 -51
- package/dist/src/desktop/components/Calendar/CalendarContext.d.ts +3 -1
- package/dist/src/desktop/components/Calendar/CalendarContext.js +2 -1
- package/dist/src/desktop/components/Calendar/DailyView.d.ts +8 -2
- package/dist/src/desktop/components/Calendar/DailyView.js +88 -7
- package/dist/src/desktop/components/Calendar/MonthlyView.d.ts +2 -1
- package/dist/src/desktop/components/Calendar/MonthlyView.js +81 -6
- package/dist/src/desktop/components/Calendar/WeeklyView.d.ts +3 -0
- package/dist/src/desktop/components/Calendar/WeeklyView.js +113 -7
- package/dist/src/desktop/components/Calendar/calendarUtils.js +20 -10
- package/dist/src/desktop/components/Calendar/types.d.ts +8 -4
- package/dist/src/desktop/panels/DesktopBasicModal/DesktopBasicModal.d.ts +2 -1
- package/dist/src/desktop/panels/DesktopBasicModal/DesktopBasicModal.js +13 -15
- package/dist/src/desktop/panels/DesktopBasicModalWithTab/DesktopBasicModalWithTab.d.ts +3 -1
- package/dist/src/desktop/panels/DesktopBasicModalWithTab/DesktopBasicModalWithTab.js +16 -10
- package/dist/src/desktop/panels/DesktopHeadlessModal/DesktopHeadlessModal.d.ts +2 -1
- package/dist/src/desktop/panels/DesktopHeadlessModal/DesktopHeadlessModal.js +7 -27
- package/dist/src/desktop/panels/DesktopTutorialModal/DesktopTutorialModal.d.ts +3 -1
- package/dist/src/desktop/panels/DesktopTutorialModal/DesktopTutorialModal.js +11 -5
- package/dist/src/desktop/panels/MultilingualModal/MultilingualModal.d.ts +3 -1
- package/dist/src/desktop/panels/MultilingualModal/MultilingualModal.js +11 -4
- package/dist/src/mobile/panels/MobileBasicModal/MobileBasicModal.d.ts +3 -1
- package/dist/src/mobile/panels/MobileBasicModal/MobileBasicModal.js +13 -6
- package/package.json +1 -1
- package/release-note.md +3 -2
|
@@ -51,10 +51,12 @@ var CurrentTimeIndicator_1 = require("./CurrentTimeIndicator");
|
|
|
51
51
|
var TimeBasedScheduleItem_1 = require("./TimeBasedScheduleItem");
|
|
52
52
|
var timeFormatUtils_1 = require("./timeFormatUtils");
|
|
53
53
|
var WeeklyView = function (_a) {
|
|
54
|
-
var startOfWeek = _a.startOfWeek;
|
|
54
|
+
var startOfWeek = _a.startOfWeek, schedules = _a.schedules, config = _a.config;
|
|
55
55
|
var _b = (0, react_i18next_1.useTranslation)(), t = _b.t, i18n = _b.i18n;
|
|
56
|
-
var _c = (0, CalendarContext_1.useCalendarContext)(), selectedDate = _c.selectedDate, selectedSchedules = _c.selectedSchedules, displayAllDayScheduleMode = _c.displayAllDayScheduleMode, getSchedulesForDate = _c.getSchedulesForDate, isToday = _c.isToday, isDragOverDate = _c.isDragOverDate, handleDateDragOver = _c.handleDateDragOver, handleDateDragLeave = _c.handleDateDragLeave, handleDateDrop = _c.handleDateDrop, handleDateClick = _c.handleDateClick, handleScheduleDragStart = _c.handleScheduleDragStart, handleScheduleDragEnd = _c.handleScheduleDragEnd, isDraggable = _c.isDraggable, handleScheduleClick = _c.handleScheduleClick, getDayTextByDate = _c.getDayTextByDate;
|
|
57
|
-
|
|
56
|
+
var _c = (0, CalendarContext_1.useCalendarContext)(), selectedDate = _c.selectedDate, selectedSchedules = _c.selectedSchedules, displayAllDayScheduleMode = _c.displayAllDayScheduleMode, getSchedulesForDate = _c.getSchedulesForDate, isToday = _c.isToday, isDragOverDate = _c.isDragOverDate, handleDateDragOver = _c.handleDateDragOver, handleDateDragLeave = _c.handleDateDragLeave, handleDateDrop = _c.handleDateDrop, handleDateClick = _c.handleDateClick, handleDateDrag = _c.handleDateDrag, handleScheduleDragStart = _c.handleScheduleDragStart, handleScheduleDragEnd = _c.handleScheduleDragEnd, isDraggable = _c.isDraggable, handleScheduleClick = _c.handleScheduleClick, getDayTextByDate = _c.getDayTextByDate;
|
|
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];
|
|
58
60
|
var calendarDates = (0, react_1.useMemo)(function () {
|
|
59
61
|
var dates = [];
|
|
60
62
|
var startIndex = startOfWeek === 'monday' ? 1 : 0;
|
|
@@ -65,10 +67,108 @@ var WeeklyView = function (_a) {
|
|
|
65
67
|
}
|
|
66
68
|
return dates;
|
|
67
69
|
}, [selectedDate, startOfWeek]);
|
|
70
|
+
// 시간 드래그 시작
|
|
71
|
+
var handleTimeMouseDown = (0, react_1.useCallback)(function (date, hour, e) {
|
|
72
|
+
var _a;
|
|
73
|
+
if (!((_a = config === null || config === void 0 ? void 0 : config.DATE) === null || _a === void 0 ? void 0 : _a.DRAG))
|
|
74
|
+
return;
|
|
75
|
+
e.preventDefault();
|
|
76
|
+
var selection = { date: date, hour: hour };
|
|
77
|
+
setTimeSelectionStart(selection);
|
|
78
|
+
setTimeSelectionEnd(selection);
|
|
79
|
+
setIsTimeDragging(true);
|
|
80
|
+
}, [config]);
|
|
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]);
|
|
68
152
|
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) {
|
|
69
153
|
var dayText = getDayTextByDate(date);
|
|
154
|
+
var monthNames = [
|
|
155
|
+
'Jan',
|
|
156
|
+
'Feb',
|
|
157
|
+
'Mar',
|
|
158
|
+
'Apr',
|
|
159
|
+
'May',
|
|
160
|
+
'Jun',
|
|
161
|
+
'Jul',
|
|
162
|
+
'Aug',
|
|
163
|
+
'Sep',
|
|
164
|
+
'Oct',
|
|
165
|
+
'Nov',
|
|
166
|
+
'Dec'
|
|
167
|
+
];
|
|
168
|
+
var isEnglish = i18n.language === 'en'; // i18n 인스턴스에서 현재 언어 확인
|
|
169
|
+
var monthText = isEnglish ? monthNames[date.getMonth()] : date.getMonth() + 1;
|
|
70
170
|
var dateText = t('str_calendar_weekly_date', {
|
|
71
|
-
month:
|
|
171
|
+
month: monthText,
|
|
72
172
|
date: date.getDate(),
|
|
73
173
|
day: dayText
|
|
74
174
|
});
|
|
@@ -77,7 +177,7 @@ var WeeklyView = function (_a) {
|
|
|
77
177
|
var timeSlotDate = new Date(date);
|
|
78
178
|
timeSlotDate.setHours(hour, 0, 0, 0);
|
|
79
179
|
var isDragOver = (isDragOverDate === null || isDragOverDate === void 0 ? void 0 : isDragOverDate.getTime()) === timeSlotDate.getTime();
|
|
80
|
-
return ((0, jsx_runtime_1.jsx)(S_TimeSlot, __assign({ "$isDragOver": isDragOver, "$isDraggable": isDraggable, onClick: function () { return handleDateClick(date, {}); }, onDragOver: function (e) { return handleDateDragOver(timeSlotDate, e); }, onDragLeave: handleDateDragLeave, onDrop: function (e) { return handleDateDrop(timeSlotDate, e); } }, { children: hour === 0 && ((0, jsx_runtime_1.jsx)(TimeBasedScheduleItem_1.TimeBasedScheduleItem, { schedules: getSchedulesForDate(date), selectedSchedules: selectedSchedules, isDraggable: isDraggable, onClick: handleScheduleClick, handleScheduleDragStart: handleScheduleDragStart, handleScheduleDragEnd: handleScheduleDragEnd })) }), dayIndex));
|
|
180
|
+
return ((0, jsx_runtime_1.jsx)(S_TimeSlot, __assign({ "$isDragOver": isDragOver, "$isDraggable": isDraggable, "$isInTimeDragRange": isTimeSlotInDragRange(date, hour), "$isTimeDragging": isTimeDragging, 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 handleTimeMouseDown(date, hour, e); }, onMouseEnter: function () { return handleTimeMouseEnter(date, hour); } }, { children: hour === 0 && ((0, jsx_runtime_1.jsx)(TimeBasedScheduleItem_1.TimeBasedScheduleItem, { schedules: getSchedulesForDate(date), selectedSchedules: selectedSchedules, isDraggable: isDraggable, onClick: handleScheduleClick, handleScheduleDragStart: handleScheduleDragStart, handleScheduleDragEnd: handleScheduleDragEnd })) }), dayIndex));
|
|
81
181
|
}) })] }, hour)); })] }))] }));
|
|
82
182
|
};
|
|
83
183
|
exports.WeeklyView = WeeklyView;
|
|
@@ -101,13 +201,19 @@ var S_TimeLabel = styled_components_1.default.div(templateObject_8 || (templateO
|
|
|
101
201
|
return theme.ui_cpnt_divider;
|
|
102
202
|
});
|
|
103
203
|
var S_TimeSlots = styled_components_1.default.div(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n display: contents;\n"], ["\n display: contents;\n"])));
|
|
104
|
-
var S_TimeSlot = styled_components_1.default.div(templateObject_10 || (templateObject_10 = __makeTemplateObject(["\n background: ", ";\n border-bottom: 1px solid ", ";\n border-right: 1px solid ", ";\n cursor:
|
|
204
|
+
var S_TimeSlot = styled_components_1.default.div(templateObject_10 || (templateObject_10 = __makeTemplateObject(["\n background: ", ";\n border-bottom: 1px solid ", ";\n border-right: 1px solid ", ";\n cursor: ", ";\n min-width: 0;\n overflow: visible;\n position: relative;\n user-select: ", ";\n\n &:hover {\n background: ", ";\n }\n"], ["\n background: ", ";\n border-bottom: 1px solid ", ";\n border-right: 1px solid ", ";\n cursor: ", ";\n min-width: 0;\n overflow: visible;\n position: relative;\n user-select: ", ";\n\n &:hover {\n background: ", ";\n }\n"])), function (props) {
|
|
205
|
+
if (props.$isInTimeDragRange)
|
|
206
|
+
return props.theme.ui_cpnt_sheet_base;
|
|
207
|
+
if (props.$isDragOver)
|
|
208
|
+
return props.theme.ui_cpnt_sheet_base;
|
|
209
|
+
return 'transparent';
|
|
210
|
+
}, function (_a) {
|
|
105
211
|
var theme = _a.theme;
|
|
106
212
|
return theme.ui_cpnt_divider;
|
|
107
213
|
}, function (_a) {
|
|
108
214
|
var theme = _a.theme;
|
|
109
215
|
return theme.ui_cpnt_divider;
|
|
110
|
-
}, function (_a) {
|
|
216
|
+
}, function (props) { return (props.$isTimeDragging ? 'grabbing' : 'default'); }, function (props) { return (props.$isTimeDragging ? 'none' : 'auto'); }, function (_a) {
|
|
111
217
|
var theme = _a.theme;
|
|
112
218
|
return theme.ui_cpnt_sheet_base;
|
|
113
219
|
});
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.toUTC = exports.getHeaderText = exports.calculateDateRange = exports.calculateIsAllDay = void 0;
|
|
7
|
+
var i18n_1 = __importDefault(require("../../../common/services/i18n"));
|
|
4
8
|
var dateHelper_1 = require("../../../common/utils/dateHelper");
|
|
9
|
+
var constants_1 = require("./constants");
|
|
5
10
|
/**
|
|
6
11
|
* 일정이 종일 일정인지 확인하는 함수
|
|
7
12
|
* @param startDate 시작 날짜
|
|
@@ -22,16 +27,16 @@ var calculateIsAllDay = function (startDate, endDate) {
|
|
|
22
27
|
exports.calculateIsAllDay = calculateIsAllDay;
|
|
23
28
|
var calculateDateRange = function (viewType, baseDate) {
|
|
24
29
|
switch (viewType) {
|
|
25
|
-
case '
|
|
30
|
+
case 'str_fm_day':
|
|
26
31
|
return { startDate: baseDate, endDate: baseDate };
|
|
27
|
-
case '
|
|
32
|
+
case 'str_fm_week': {
|
|
28
33
|
var start = new Date(baseDate);
|
|
29
34
|
start.setDate(baseDate.getDate() - baseDate.getDay());
|
|
30
35
|
var end = new Date(start);
|
|
31
36
|
end.setDate(start.getDate() + 6);
|
|
32
37
|
return { startDate: start, endDate: end };
|
|
33
38
|
}
|
|
34
|
-
case '
|
|
39
|
+
case 'str_fm_month': {
|
|
35
40
|
var startDate = new Date(baseDate.getFullYear(), baseDate.getMonth(), 1);
|
|
36
41
|
// 실제 MonthlyView에서 보여지는 날짜 배열을 구함
|
|
37
42
|
var days = dateHelper_1.DateHelper.getCalendarDatesForCalendar(startDate, 'sunday');
|
|
@@ -40,7 +45,7 @@ var calculateDateRange = function (viewType, baseDate) {
|
|
|
40
45
|
endDate: days[days.length - 1]
|
|
41
46
|
};
|
|
42
47
|
}
|
|
43
|
-
case '
|
|
48
|
+
case 'str_fm_year':
|
|
44
49
|
return {
|
|
45
50
|
startDate: new Date(baseDate.getFullYear(), 0, 1),
|
|
46
51
|
endDate: new Date(baseDate.getFullYear(), 11, 31)
|
|
@@ -63,16 +68,21 @@ var getHeaderText = function (viewType, selectedDate, t) {
|
|
|
63
68
|
var year = selectedDate.getFullYear();
|
|
64
69
|
var monthNumber = selectedDate.getMonth() + 1;
|
|
65
70
|
var day = selectedDate.getDate();
|
|
66
|
-
|
|
71
|
+
var locale = (0, constants_1.getLocaleFromLang)(i18n_1.default.language);
|
|
72
|
+
// For English locale, use month names instead of numbers for WEEKLY and MONTHLY views
|
|
73
|
+
var monthValue = locale === 'en-US' && (viewType === 'str_fm_week' || viewType === 'str_fm_month')
|
|
74
|
+
? t("calendar_month_".concat(monthNumber))
|
|
75
|
+
: monthNumber;
|
|
76
|
+
if (viewType === 'str_fm_day') {
|
|
67
77
|
return t('str_calendar_daily_header', { year: year, month: monthNumber, day: day });
|
|
68
78
|
}
|
|
69
|
-
if (viewType === '
|
|
70
|
-
return t('str_calendar_weekly_header', { year: year, month:
|
|
79
|
+
if (viewType === 'str_fm_week') {
|
|
80
|
+
return t('str_calendar_weekly_header', { year: year, month: monthValue });
|
|
71
81
|
}
|
|
72
|
-
if (viewType === '
|
|
73
|
-
return t('str_calendar_monthly_header', { year: year, month:
|
|
82
|
+
if (viewType === 'str_fm_month') {
|
|
83
|
+
return t('str_calendar_monthly_header', { year: year, month: monthValue });
|
|
74
84
|
}
|
|
75
|
-
if (viewType === '
|
|
85
|
+
if (viewType === 'str_fm_year') {
|
|
76
86
|
return t('str_calendar_yearly_header', { year: year });
|
|
77
87
|
}
|
|
78
88
|
return '';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
export type CalendarViewType = '
|
|
2
|
+
export type CalendarViewType = 'str_fm_month' | 'str_fm_week' | 'str_fm_day' | 'str_fm_year';
|
|
3
3
|
export type displayAllDayScheduleMode = 'none' | 'use';
|
|
4
4
|
export type StartOfWeek = 'sunday' | 'monday';
|
|
5
5
|
export type TodayBtnMode = 'none' | 'use';
|
|
6
|
-
export type ActionType = 'CLICK' | 'CLICK_WITH_SHIFT_KEY_DOWN' | 'DELETE_KEY_DOWN' | 'DRAG'
|
|
6
|
+
export type ActionType = 'CLICK' | 'CLICK_WITH_SHIFT_KEY_DOWN' | 'DELETE_KEY_DOWN' | 'DRAG';
|
|
7
7
|
export type TargetType = 'SCHEDULE' | 'DATE';
|
|
8
8
|
export type Action = {
|
|
9
9
|
action: ActionType;
|
|
@@ -40,8 +40,8 @@ export type CalendarAction = {
|
|
|
40
40
|
};
|
|
41
41
|
};
|
|
42
42
|
export type CalendarProps = {
|
|
43
|
-
defaultViewType?: CalendarViewType
|
|
44
|
-
viewTypes?:
|
|
43
|
+
defaultViewType?: CalendarViewType;
|
|
44
|
+
viewTypes?: CalendarViewType[];
|
|
45
45
|
displayAllDayScheduleMode?: displayAllDayScheduleMode;
|
|
46
46
|
startOfWeek?: StartOfWeek;
|
|
47
47
|
todayBtnMode?: TodayBtnMode;
|
|
@@ -59,3 +59,7 @@ export type EventItemProps = {
|
|
|
59
59
|
onDoubleClick: (schedule: Schedule) => void;
|
|
60
60
|
isSelected?: boolean;
|
|
61
61
|
};
|
|
62
|
+
export type TimeSelection = {
|
|
63
|
+
date: Date;
|
|
64
|
+
hour: number;
|
|
65
|
+
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
+
import { ScrollVisibleType } from '../../../common/styles/scroll/scrollbarStyle';
|
|
2
3
|
import type { PDSTextType } from '../../../common';
|
|
3
4
|
type DesktopBasicModalProps = {
|
|
4
5
|
titleText: PDSTextType;
|
|
@@ -16,7 +17,7 @@ type DesktopBasicModalProps = {
|
|
|
16
17
|
mBtn2Type?: 'button' | 'submit';
|
|
17
18
|
mBtn3Type?: 'button' | 'submit';
|
|
18
19
|
size?: 'large' | 'medium' | 'small' | 'rlarge';
|
|
19
|
-
scrollVisibleType?:
|
|
20
|
+
scrollVisibleType?: ScrollVisibleType;
|
|
20
21
|
onClickMBtn1?: () => void;
|
|
21
22
|
onClickMBtn2?: () => void;
|
|
22
23
|
onClickMBtn3?: () => void;
|
|
@@ -44,9 +44,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
44
44
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
45
45
|
var react_1 = require("react");
|
|
46
46
|
var react_dom_1 = __importDefault(require("react-dom"));
|
|
47
|
+
var scrollbarStyle_1 = require("../../../common/styles/scroll/scrollbarStyle");
|
|
47
48
|
var styled_components_1 = __importStar(require("styled-components"));
|
|
48
49
|
var animationStyle_1 = require("../../../common/styles/movement/animationStyle");
|
|
49
|
-
var scrollbarStyle_1 = require("../../../common/styles/scroll/scrollbarStyle");
|
|
50
50
|
var components_1 = require("../../components");
|
|
51
51
|
function DesktopBasicModal(_a) {
|
|
52
52
|
var titleText = _a.titleText, contentText = _a.contentText, _b = _a.bodySpacingMode, bodySpacingMode = _b === void 0 ? 'use' : _b, _c = _a.bodyOverflowType, bodyOverflowType = _c === void 0 ? 'overlay' : _c, _d = _a.btnMode, btnMode = _d === void 0 ? 'mbtn_amount2' : _d, mBtn1Text = _a.mBtn1Text, mBtn2Text = _a.mBtn2Text, mBtn3Text = _a.mBtn3Text, _e = _a.mBtn1State, mBtn1State = _e === void 0 ? 'normal' : _e, _f = _a.mBtn2State, mBtn2State = _f === void 0 ? 'normal' : _f, _g = _a.mBtn3State, mBtn3State = _g === void 0 ? 'normal' : _g, _h = _a.mBtn1Type, mBtn1Type = _h === void 0 ? 'button' : _h, _j = _a.mBtn2Type, mBtn2Type = _j === void 0 ? 'button' : _j, _k = _a.mBtn3Type, mBtn3Type = _k === void 0 ? 'button' : _k, onClickMBtn1 = _a.onClickMBtn1, onClickMBtn2 = _a.onClickMBtn2, onClickMBtn3 = _a.onClickMBtn3, _l = _a.size, size = _l === void 0 ? 'large' : _l, _m = _a.scrollVisibleType, scrollVisibleType = _m === void 0 ? 'visible' : _m, children = _a.children;
|
|
@@ -70,13 +70,12 @@ function DesktopBasicModal(_a) {
|
|
|
70
70
|
var btn3Mode = ['mbtn_amount3'];
|
|
71
71
|
return react_dom_1.default.createPortal((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(S_ModalOverlay, {}), (0, jsx_runtime_1.jsxs)(S_ModalWrapper, __assign({ "x-pds-name": "DesktopBasicModal", "x-pds-element-type": "panel", "x-pds-device-type": "desktop", size: size }, { children: [(0, jsx_runtime_1.jsx)(S_Header, { children: (0, jsx_runtime_1.jsx)(components_1.TextLabel, { text: titleText, colorTheme: "sysTextPrimary", styleTheme: "headingBold" }) }), (0, jsx_runtime_1.jsxs)(S_Body, __assign({ bodySpacingMode: bodySpacingMode, bodyOverflowType: bodyOverflowType, scrollVisibleType: scrollVisibleType }, { children: [contentText && ((0, jsx_runtime_1.jsx)(components_1.TextLabel, { text: contentText, colorTheme: "sysTextSecondary", styleTheme: "subTitleRegular" })), children && children] })), (0, jsx_runtime_1.jsxs)(S_Footer, { children: [(0, jsx_runtime_1.jsx)(S_Left, { children: btn3Mode.includes(btnMode) && mBtn3Text && ((0, jsx_runtime_1.jsx)(components_1.MainButton, { styleTheme: "secondary", text: mBtn3Text, state: mBtn3State, type: mBtn3Type, size: "medium", onClick: onClickMBtn3 })) }), (0, jsx_runtime_1.jsxs)(S_Right, { children: [(0, jsx_runtime_1.jsx)(S_Btn2Wrapper, { children: btn2Mode.includes(btnMode) && mBtn2Text && ((0, jsx_runtime_1.jsx)(components_1.MainButton, { styleTheme: "secondary", text: mBtn2Text, state: mBtn2State, type: mBtn2Type, size: "medium", onClick: onClickMBtn2 })) }), btn1Mode.includes(btnMode) && mBtn1Text && ((0, jsx_runtime_1.jsx)(components_1.MainButton, { text: mBtn1Text, state: mBtn1State, type: mBtn1Type, size: "medium", onClick: onClickMBtn1 }))] })] })] }))] }), container);
|
|
72
72
|
}
|
|
73
|
-
var
|
|
74
|
-
var S_ModalOverlay = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n background-color: ", ";\n height: 100vh;\n left: 0;\n position: fixed;\n top: 0;\n width: 100vw;\n\n ", "\n"], ["\n background-color: ", ";\n height: 100vh;\n left: 0;\n position: fixed;\n top: 0;\n width: 100vw;\n\n ", "\n"])), function (_a) {
|
|
73
|
+
var S_ModalOverlay = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n background-color: ", ";\n height: 100vh;\n left: 0;\n position: fixed;\n top: 0;\n width: 100vw;\n\n ", "\n"], ["\n background-color: ", ";\n height: 100vh;\n left: 0;\n position: fixed;\n top: 0;\n width: 100vw;\n\n ", "\n"])), function (_a) {
|
|
75
74
|
var theme = _a.theme;
|
|
76
75
|
return theme.ui_cpnt_modal_dimmed;
|
|
77
76
|
}, animationStyle_1.modalOverlayOnAni);
|
|
78
|
-
var rlarge = (0, styled_components_1.css)(
|
|
79
|
-
var S_ModalWrapper = styled_components_1.default.div(
|
|
77
|
+
var rlarge = (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n max-width: 1400px;\n min-width: 960px;\n"], ["\n max-width: 1400px;\n min-width: 960px;\n"])));
|
|
78
|
+
var S_ModalWrapper = styled_components_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n background-color: ", ";\n border: 1px solid ", ";\n border-radius: 24px;\n box-shadow: ", ";\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n left: 50%;\n position: fixed;\n top: 50%;\n transform: translate(-50%, -50%);\n width: ", ";\n ", ";\n\n ", "\n"], ["\n background-color: ", ";\n border: 1px solid ", ";\n border-radius: 24px;\n box-shadow: ", ";\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n left: 50%;\n position: fixed;\n top: 50%;\n transform: translate(-50%, -50%);\n width: ", ";\n ", ";\n\n ", "\n"])), function (_a) {
|
|
80
79
|
var theme = _a.theme;
|
|
81
80
|
return theme.ui_cpnt_modal_base;
|
|
82
81
|
}, function (_a) {
|
|
@@ -98,16 +97,16 @@ var S_ModalWrapper = styled_components_1.default.div(templateObject_4 || (templa
|
|
|
98
97
|
var size = _a.size;
|
|
99
98
|
return size === 'rlarge' && rlarge;
|
|
100
99
|
}, animationStyle_1.modalOnAni);
|
|
101
|
-
var S_Left = styled_components_1.default.div(
|
|
100
|
+
var S_Left = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n margin-right: ", ";\n"], ["\n margin-right: ", ";\n"])), function (_a) {
|
|
102
101
|
var theme = _a.theme;
|
|
103
102
|
return theme.spacing.spacingB;
|
|
104
103
|
});
|
|
105
|
-
var S_Btn2Wrapper = styled_components_1.default.div(
|
|
104
|
+
var S_Btn2Wrapper = styled_components_1.default.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n margin-right: ", ";\n"], ["\n margin-right: ", ";\n"])), function (_a) {
|
|
106
105
|
var theme = _a.theme;
|
|
107
106
|
return theme.spacing.spacingB;
|
|
108
107
|
});
|
|
109
|
-
var S_Right = styled_components_1.default.div(
|
|
110
|
-
var S_Header = styled_components_1.default.div(
|
|
108
|
+
var S_Right = styled_components_1.default.div(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n display: flex;\n"], ["\n display: flex;\n"])));
|
|
109
|
+
var S_Header = styled_components_1.default.div(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n"], ["\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n"])), function (_a) {
|
|
111
110
|
var theme = _a.theme;
|
|
112
111
|
return theme.spacing.spacingC;
|
|
113
112
|
}, function (_a) {
|
|
@@ -120,7 +119,7 @@ var S_Header = styled_components_1.default.div(templateObject_8 || (templateObje
|
|
|
120
119
|
var theme = _a.theme;
|
|
121
120
|
return theme.spacing.spacingE;
|
|
122
121
|
});
|
|
123
|
-
var S_Body = styled_components_1.default.div(
|
|
122
|
+
var S_Body = styled_components_1.default.div(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n flex: 1;\n max-height: 60vh;\n overflow: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n\n ", "\n ", ";\n"], ["\n flex: 1;\n max-height: 60vh;\n overflow: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n\n ", "\n ", ";\n"])), function (_a) {
|
|
124
123
|
var bodyOverflowType = _a.bodyOverflowType;
|
|
125
124
|
return bodyOverflowType;
|
|
126
125
|
}, function (_a) {
|
|
@@ -140,15 +139,14 @@ var S_Body = styled_components_1.default.div(templateObject_10 || (templateObjec
|
|
|
140
139
|
return bodyOverflowType !== 'visible' &&
|
|
141
140
|
scrollVisibleType &&
|
|
142
141
|
{
|
|
143
|
-
moving: scrollInvisible,
|
|
144
142
|
visible: scrollbarStyle_1.scrollbarStyle,
|
|
145
|
-
hidden: scrollInvisible
|
|
143
|
+
hidden: scrollbarStyle_1.scrollInvisible
|
|
146
144
|
}[scrollVisibleType];
|
|
147
145
|
}, function (_a) {
|
|
148
146
|
var bodySpacingMode = _a.bodySpacingMode;
|
|
149
|
-
return bodySpacingMode === 'none' && (0, styled_components_1.css)(
|
|
147
|
+
return bodySpacingMode === 'none' && (0, styled_components_1.css)(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n padding-bottom: 0;\n padding-left: 0;\n padding-right: 0;\n "], ["\n padding-bottom: 0;\n padding-left: 0;\n padding-right: 0;\n "])));
|
|
150
148
|
});
|
|
151
|
-
var S_Footer = styled_components_1.default.div(
|
|
149
|
+
var S_Footer = styled_components_1.default.div(templateObject_10 || (templateObject_10 = __makeTemplateObject(["\n border-top: 1px solid ", ";\n box-sizing: border-box;\n display: flex;\n justify-content: space-between;\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n"], ["\n border-top: 1px solid ", ";\n box-sizing: border-box;\n display: flex;\n justify-content: space-between;\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n"])), function (_a) {
|
|
152
150
|
var theme = _a.theme;
|
|
153
151
|
return theme.ui_cpnt_modal_border;
|
|
154
152
|
}, function (_a) {
|
|
@@ -165,4 +163,4 @@ var S_Footer = styled_components_1.default.div(templateObject_11 || (templateObj
|
|
|
165
163
|
return theme.spacing.spacingD;
|
|
166
164
|
});
|
|
167
165
|
exports.default = DesktopBasicModal;
|
|
168
|
-
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10
|
|
166
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
+
import { ScrollVisibleType } from '../../../common/styles/scroll/scrollbarStyle';
|
|
2
3
|
import type { PDSTextType } from '../../../common';
|
|
3
4
|
export type DesktopBasicModalWithTabInfoType = {
|
|
4
5
|
sideTabTitleText: PDSTextType;
|
|
@@ -9,6 +10,7 @@ type DesktopBasicModalWithTabProps = {
|
|
|
9
10
|
size?: 'large' | 'medium';
|
|
10
11
|
modalTitleText: PDSTextType;
|
|
11
12
|
infoArray: DesktopBasicModalWithTabInfoType[];
|
|
13
|
+
scrollVisibleType?: ScrollVisibleType;
|
|
12
14
|
btnMode?: 'btn_amount1' | 'btn_amount2' | 'btn_amount3';
|
|
13
15
|
btn1Text: PDSTextType;
|
|
14
16
|
btn2Text?: PDSTextType;
|
|
@@ -23,5 +25,5 @@ type DesktopBasicModalWithTabProps = {
|
|
|
23
25
|
onClickBtn2?: (e: React.MouseEvent<HTMLButtonElement>) => void;
|
|
24
26
|
onClickBtn3?: (e: React.MouseEvent<HTMLButtonElement>) => void;
|
|
25
27
|
};
|
|
26
|
-
declare function DesktopBasicModalWithTab({ size, modalTitleText, infoArray, btnMode, btn1Text, btn2Text, btn3Text, btn1State, btn2State, btn3State, btn1Type, btn2Type, btn3Type, onClickBtn1, onClickBtn2, onClickBtn3 }: DesktopBasicModalWithTabProps): import("react").ReactPortal;
|
|
28
|
+
declare function DesktopBasicModalWithTab({ size, modalTitleText, infoArray, scrollVisibleType, btnMode, btn1Text, btn2Text, btn3Text, btn1State, btn2State, btn3State, btn1Type, btn2Type, btn3Type, onClickBtn1, onClickBtn2, onClickBtn3 }: DesktopBasicModalWithTabProps): import("react").ReactPortal;
|
|
27
29
|
export default DesktopBasicModalWithTab;
|
|
@@ -21,14 +21,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
21
21
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
22
22
|
var react_1 = require("react");
|
|
23
23
|
var react_dom_1 = __importDefault(require("react-dom"));
|
|
24
|
+
var scrollbarStyle_1 = require("../../../common/styles/scroll/scrollbarStyle");
|
|
24
25
|
var styled_components_1 = __importDefault(require("styled-components"));
|
|
25
26
|
var animationStyle_1 = require("../../../common/styles/movement/animationStyle");
|
|
26
|
-
var scrollbarStyle_1 = require("../../../common/styles/scroll/scrollbarStyle");
|
|
27
27
|
var hybrid_1 = require("../../../hybrid");
|
|
28
28
|
var components_1 = require("../../components");
|
|
29
29
|
var Components_1 = require("./Components");
|
|
30
30
|
function DesktopBasicModalWithTab(_a) {
|
|
31
|
-
var _b = _a.size, size = _b === void 0 ? 'large' : _b, modalTitleText = _a.modalTitleText, infoArray = _a.infoArray, _c = _a.btnMode, btnMode =
|
|
31
|
+
var _b = _a.size, size = _b === void 0 ? 'large' : _b, modalTitleText = _a.modalTitleText, infoArray = _a.infoArray, _c = _a.scrollVisibleType, scrollVisibleType = _c === void 0 ? 'visible' : _c, _d = _a.btnMode, btnMode = _d === void 0 ? 'btn_amount2' : _d, btn1Text = _a.btn1Text, btn2Text = _a.btn2Text, btn3Text = _a.btn3Text, _e = _a.btn1State, btn1State = _e === void 0 ? 'normal' : _e, _f = _a.btn2State, btn2State = _f === void 0 ? 'normal' : _f, _g = _a.btn3State, btn3State = _g === void 0 ? 'normal' : _g, _h = _a.btn1Type, btn1Type = _h === void 0 ? 'button' : _h, _j = _a.btn2Type, btn2Type = _j === void 0 ? 'button' : _j, _k = _a.btn3Type, btn3Type = _k === void 0 ? 'button' : _k, onClickBtn1 = _a.onClickBtn1, onClickBtn2 = _a.onClickBtn2, onClickBtn3 = _a.onClickBtn3;
|
|
32
32
|
var container = (0, react_1.useState)(function () {
|
|
33
33
|
var modalRoot = document.createElement('div');
|
|
34
34
|
modalRoot.setAttribute('id', 'DesktopBasicModalWithTab');
|
|
@@ -44,7 +44,7 @@ function DesktopBasicModalWithTab(_a) {
|
|
|
44
44
|
root.removeChild(container);
|
|
45
45
|
};
|
|
46
46
|
}, []);
|
|
47
|
-
var
|
|
47
|
+
var _l = (0, react_1.useState)("".concat(infoArray[0].sideTabTitleText, "0")), selectedItem = _l[0], setSelectedItem = _l[1];
|
|
48
48
|
var sideTabTitleArray = infoArray.map(function (data, index) {
|
|
49
49
|
return {
|
|
50
50
|
title: data.sideTabTitleText,
|
|
@@ -57,7 +57,7 @@ function DesktopBasicModalWithTab(_a) {
|
|
|
57
57
|
var btn3Mode = ['btn_amount3'];
|
|
58
58
|
return react_dom_1.default.createPortal((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(S_ModalOverlay, {}), (0, jsx_runtime_1.jsxs)(S_ModalWrapper, __assign({ "x-pds-name": "DesktopBasicModalWithTab", "x-pds-element-type": "panel", "x-pds-device-type": "desktop", size: size }, { children: [(0, jsx_runtime_1.jsxs)(S_UpsidePanel, { children: [(0, jsx_runtime_1.jsxs)(S_LeftPanel, { children: [(0, jsx_runtime_1.jsx)(S_Header, { children: (0, jsx_runtime_1.jsx)(components_1.TextLabel, { text: modalTitleText, lineLimit: 2, ellipsisMode: "use", styleTheme: "headingBold" }) }), (0, jsx_runtime_1.jsxs)(S_SideTabWrapper, { children: [(0, jsx_runtime_1.jsx)(Components_1.SideTab, { itemArray: sideTabTitleArray }), (0, jsx_runtime_1.jsx)(hybrid_1.Spacing, { size: "spacing_i" })] })] }), infoArray
|
|
59
59
|
.filter(function (data, index) { return selectedItem === "".concat(data.sideTabTitleText).concat(index); })
|
|
60
|
-
.map(function (data, index) { return ((0, jsx_runtime_1.jsx)(S_RightContainer, { children: (0, jsx_runtime_1.jsxs)(S_RightArea, { children: [(0, jsx_runtime_1.jsx)(components_1.TextLabel, { text: data.bodyTitleText ? data.bodyTitleText : data.sideTabTitleText, styleTheme: "headingBold" }), (0, jsx_runtime_1.jsx)(hybrid_1.Spacing, { size: "spacing_e" }), (0, jsx_runtime_1.jsx)(S_Body, { children: data.body && data.body })] }) }, "".concat(data.sideTabTitleText).concat(index))); })] }), (0, jsx_runtime_1.jsxs)(S_Footer, { children: [(0, jsx_runtime_1.jsx)(S_Left, { children: btn3Mode.includes(btnMode) && btn3Text && ((0, jsx_runtime_1.jsx)(components_1.MainButton, { styleTheme: "secondary", text: btn3Text, state: btn3State, type: btn3Type, size: "medium", onClick: onClickBtn3 })) }), (0, jsx_runtime_1.jsxs)(S_Right, { children: [(0, jsx_runtime_1.jsx)(S_Btn2Wrapper, { children: btn2Mode.includes(btnMode) && btn2Text && ((0, jsx_runtime_1.jsx)(components_1.MainButton, { styleTheme: "secondary", text: btn2Text, state: btn2State, type: btn2Type, size: "medium", onClick: onClickBtn2 })) }), btn1Mode.includes(btnMode) && btn1Text && ((0, jsx_runtime_1.jsx)(components_1.MainButton, { text: btn1Text, state: btn1State, type: btn1Type, size: "medium", onClick: onClickBtn1 }))] })] })] }))] }), container);
|
|
60
|
+
.map(function (data, index) { return ((0, jsx_runtime_1.jsx)(S_RightContainer, __assign({ scrollVisibleType: scrollVisibleType }, { children: (0, jsx_runtime_1.jsxs)(S_RightArea, { children: [(0, jsx_runtime_1.jsx)(components_1.TextLabel, { text: data.bodyTitleText ? data.bodyTitleText : data.sideTabTitleText, styleTheme: "headingBold" }), (0, jsx_runtime_1.jsx)(hybrid_1.Spacing, { size: "spacing_e" }), (0, jsx_runtime_1.jsx)(S_Body, { children: data.body && data.body })] }) }), "".concat(data.sideTabTitleText).concat(index))); })] }), (0, jsx_runtime_1.jsxs)(S_Footer, { children: [(0, jsx_runtime_1.jsx)(S_Left, { children: btn3Mode.includes(btnMode) && btn3Text && ((0, jsx_runtime_1.jsx)(components_1.MainButton, { styleTheme: "secondary", text: btn3Text, state: btn3State, type: btn3Type, size: "medium", onClick: onClickBtn3 })) }), (0, jsx_runtime_1.jsxs)(S_Right, { children: [(0, jsx_runtime_1.jsx)(S_Btn2Wrapper, { children: btn2Mode.includes(btnMode) && btn2Text && ((0, jsx_runtime_1.jsx)(components_1.MainButton, { styleTheme: "secondary", text: btn2Text, state: btn2State, type: btn2Type, size: "medium", onClick: onClickBtn2 })) }), btn1Mode.includes(btnMode) && btn1Text && ((0, jsx_runtime_1.jsx)(components_1.MainButton, { text: btn1Text, state: btn1State, type: btn1Type, size: "medium", onClick: onClickBtn1 }))] })] })] }))] }), container);
|
|
61
61
|
}
|
|
62
62
|
var S_ModalOverlay = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n background-color: ", ";\n height: 100vh;\n left: 0;\n position: fixed;\n top: 0;\n width: 100vw;\n\n ", "\n"], ["\n background-color: ", ";\n height: 100vh;\n left: 0;\n position: fixed;\n top: 0;\n width: 100vw;\n\n ", "\n"])), function (_a) {
|
|
63
63
|
var theme = _a.theme;
|
|
@@ -102,21 +102,27 @@ var S_SideTabWrapper = styled_components_1.default.div(templateObject_6 || (temp
|
|
|
102
102
|
var theme = _a.theme;
|
|
103
103
|
return theme.ui_cpnt_modalwithtab_leftside_base;
|
|
104
104
|
});
|
|
105
|
-
var S_RightContainer = styled_components_1.default.div(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n display: flex;\n flex: 1;\n flex-direction: column;\n height: 100%;\n overflow-x: hidden;\n overflow-y: overlay;\n\n ", "\n"], ["\n display: flex;\n flex: 1;\n flex-direction: column;\n height: 100%;\n overflow-x: hidden;\n overflow-y: overlay;\n\n ", "\n"])),
|
|
106
|
-
var S_RightArea = styled_components_1.default.div(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n box-sizing: border-box;\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n"], ["\n box-sizing: border-box;\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n"])), function (_a) {
|
|
105
|
+
var S_RightContainer = styled_components_1.default.div(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n display: flex;\n flex: 1;\n flex-direction: column;\n height: 100%;\n margin-top: ", ";\n overflow-x: hidden;\n overflow-y: overlay;\n\n ", "\n"], ["\n display: flex;\n flex: 1;\n flex-direction: column;\n height: 100%;\n margin-top: ", ";\n overflow-x: hidden;\n overflow-y: overlay;\n\n ", "\n"])), function (_a) {
|
|
107
106
|
var theme = _a.theme;
|
|
108
|
-
return theme.spacing.
|
|
107
|
+
return theme.spacing.spacingE;
|
|
109
108
|
}, function (_a) {
|
|
109
|
+
var scrollVisibleType = _a.scrollVisibleType;
|
|
110
|
+
return ({
|
|
111
|
+
visible: scrollbarStyle_1.scrollbarStyle,
|
|
112
|
+
hidden: scrollbarStyle_1.scrollInvisible
|
|
113
|
+
}[scrollVisibleType]);
|
|
114
|
+
});
|
|
115
|
+
var S_RightArea = styled_components_1.default.div(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n box-sizing: border-box;\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n"], ["\n box-sizing: border-box;\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n"])), function (_a) {
|
|
110
116
|
var theme = _a.theme;
|
|
111
|
-
return theme.spacing.
|
|
117
|
+
return theme.spacing.spacingI;
|
|
112
118
|
}, function (_a) {
|
|
113
119
|
var theme = _a.theme;
|
|
114
120
|
return theme.spacing.spacingF;
|
|
115
121
|
}, function (_a) {
|
|
116
122
|
var theme = _a.theme;
|
|
117
|
-
return theme.spacing.
|
|
123
|
+
return theme.spacing.spacingF;
|
|
118
124
|
});
|
|
119
|
-
var S_Body = styled_components_1.default.div(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n overflow-x: hidden;\n"], ["\n overflow-x: hidden;\n"])));
|
|
125
|
+
var S_Body = styled_components_1.default.div(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n overflow-wrap: break-word;\n overflow-x: hidden;\n white-space: pre-wrap;\n"], ["\n overflow-wrap: break-word;\n overflow-x: hidden;\n white-space: pre-wrap;\n"])));
|
|
120
126
|
var S_Footer = styled_components_1.default.div(templateObject_10 || (templateObject_10 = __makeTemplateObject(["\n border-top: 1px solid ", ";\n box-sizing: border-box;\n display: flex;\n justify-content: space-between;\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n"], ["\n border-top: 1px solid ", ";\n box-sizing: border-box;\n display: flex;\n justify-content: space-between;\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n"])), function (_a) {
|
|
121
127
|
var theme = _a.theme;
|
|
122
128
|
return theme.ui_cpnt_modal_border;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
+
import { ScrollVisibleType } from '../../../common/styles/scroll/scrollbarStyle';
|
|
2
3
|
import type { PDSTextType } from '../../../common/types';
|
|
3
4
|
type DesktopHeadlessModalProps = {
|
|
4
5
|
body: React.ReactNode;
|
|
5
6
|
size?: 'large' | 'medium' | 'small' | 'rlarge' | 'xlarge' | 'rxlarge';
|
|
6
7
|
dimmedClickCloseMode?: 'use' | 'none';
|
|
7
|
-
scrollVisibleType?:
|
|
8
|
+
scrollVisibleType?: ScrollVisibleType;
|
|
8
9
|
footerMode?: 'use' | 'none';
|
|
9
10
|
btnMode?: 'mbtn_amount1' | 'mbtn_amount2' | 'mbtn_amount3';
|
|
10
11
|
mBtn1Text?: PDSTextType;
|
|
@@ -44,10 +44,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
44
44
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
45
45
|
var react_1 = require("react");
|
|
46
46
|
var react_dom_1 = __importDefault(require("react-dom"));
|
|
47
|
+
var scrollbarStyle_1 = require("../../../common/styles/scroll/scrollbarStyle");
|
|
47
48
|
var components_1 = require("../../components");
|
|
48
49
|
var styled_components_1 = __importStar(require("styled-components"));
|
|
49
50
|
var animationStyle_1 = require("../../../common/styles/movement/animationStyle");
|
|
50
|
-
var scrollbarStyle_1 = require("../../../common/styles/scroll/scrollbarStyle");
|
|
51
51
|
function DesktopHeadlessModal(_a) {
|
|
52
52
|
var body = _a.body, _b = _a.size, size = _b === void 0 ? 'rlarge' : _b, _c = _a.dimmedClickCloseMode, dimmedClickCloseMode = _c === void 0 ? 'none' : _c, _d = _a.scrollVisibleType, scrollVisibleType = _d === void 0 ? 'visible' : _d, onClose = _a.onClose, _e = _a.footerMode, footerMode = _e === void 0 ? 'none' : _e, _f = _a.btnMode, btnMode = _f === void 0 ? 'mbtn_amount2' : _f, mBtn1Text = _a.mBtn1Text, mBtn2Text = _a.mBtn2Text, mBtn3Text = _a.mBtn3Text, _g = _a.mBtn1State, mBtn1State = _g === void 0 ? 'normal' : _g, _h = _a.mBtn2State, mBtn2State = _h === void 0 ? 'normal' : _h, _j = _a.mBtn3State, mBtn3State = _j === void 0 ? 'normal' : _j, _k = _a.mBtn1Type, mBtn1Type = _k === void 0 ? 'button' : _k, _l = _a.mBtn2Type, mBtn2Type = _l === void 0 ? 'button' : _l, _m = _a.mBtn3Type, mBtn3Type = _m === void 0 ? 'button' : _m, onClickMBtn1 = _a.onClickMBtn1, onClickMBtn2 = _a.onClickMBtn2, onClickMBtn3 = _a.onClickMBtn3;
|
|
53
53
|
var container = (0, react_1.useState)(function () {
|
|
@@ -55,7 +55,6 @@ function DesktopHeadlessModal(_a) {
|
|
|
55
55
|
modalRoot.setAttribute('id', 'DesktopHeadlessModal');
|
|
56
56
|
return modalRoot;
|
|
57
57
|
})[0];
|
|
58
|
-
var targetRef = (0, react_1.useRef)(null);
|
|
59
58
|
var handleClickOutside = function (e) {
|
|
60
59
|
e.stopPropagation();
|
|
61
60
|
if (dimmedClickCloseMode === 'use') {
|
|
@@ -66,32 +65,18 @@ function DesktopHeadlessModal(_a) {
|
|
|
66
65
|
};
|
|
67
66
|
(0, react_1.useLayoutEffect)(function () {
|
|
68
67
|
var root = document.getElementById('root');
|
|
69
|
-
var isScrolling;
|
|
70
|
-
var handleScroll = function () {
|
|
71
|
-
if (targetRef.current) {
|
|
72
|
-
targetRef.current.classList.add('scrollMoving');
|
|
73
|
-
}
|
|
74
|
-
isScrolling = setTimeout(function () {
|
|
75
|
-
var _a;
|
|
76
|
-
(_a = targetRef.current) === null || _a === void 0 ? void 0 : _a.classList.remove('scrollMoving');
|
|
77
|
-
}, 500);
|
|
78
|
-
};
|
|
79
68
|
if (!root) {
|
|
80
69
|
return;
|
|
81
70
|
}
|
|
82
|
-
if (targetRef.current) {
|
|
83
|
-
targetRef.current.onscroll = handleScroll;
|
|
84
|
-
}
|
|
85
71
|
root.appendChild(container);
|
|
86
72
|
return function () {
|
|
87
73
|
root.removeChild(container);
|
|
88
|
-
clearTimeout(isScrolling);
|
|
89
74
|
};
|
|
90
75
|
}, []);
|
|
91
76
|
var btn1Mode = ['mbtn_amount1', 'mbtn_amount2', 'mbtn_amount3'];
|
|
92
77
|
var btn2Mode = ['mbtn_amount2', 'mbtn_amount3'];
|
|
93
78
|
var btn3Mode = ['mbtn_amount3'];
|
|
94
|
-
return react_dom_1.default.createPortal((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(S_ModalOverlay, { "x-pds-name": "DesktopHeadlessModal", "x-pds-element-type": "panel", "x-pds-device-type": "desktop", onMouseDown: handleClickOutside }), (0, jsx_runtime_1.jsxs)(S_ModalWrapper, __assign({ size: size }, { children: [(0, jsx_runtime_1.jsx)(S_Body, __assign({
|
|
79
|
+
return react_dom_1.default.createPortal((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(S_ModalOverlay, { "x-pds-name": "DesktopHeadlessModal", "x-pds-element-type": "panel", "x-pds-device-type": "desktop", onMouseDown: handleClickOutside }), (0, jsx_runtime_1.jsxs)(S_ModalWrapper, __assign({ size: size }, { children: [(0, jsx_runtime_1.jsx)(S_Body, __assign({ scrollVisibleType: scrollVisibleType }, { children: body && body })), footerMode === 'use' && ((0, jsx_runtime_1.jsxs)(S_Footer, { children: [(0, jsx_runtime_1.jsx)(S_Left, { children: btn3Mode.includes(btnMode) && mBtn3Text && ((0, jsx_runtime_1.jsx)(components_1.MainButton, { styleTheme: "secondary", text: mBtn3Text, state: mBtn3State, type: mBtn3Type, size: "medium", onClick: onClickMBtn3 })) }), (0, jsx_runtime_1.jsxs)(S_Right, { children: [(0, jsx_runtime_1.jsx)(S_Btn2Wrapper, { children: btn2Mode.includes(btnMode) && mBtn2Text && ((0, jsx_runtime_1.jsx)(components_1.MainButton, { styleTheme: "secondary", text: mBtn2Text, state: mBtn2State, type: mBtn2Type, size: "medium", onClick: onClickMBtn2 })) }), btn1Mode.includes(btnMode) && mBtn1Text && ((0, jsx_runtime_1.jsx)(components_1.MainButton, { text: mBtn1Text, state: mBtn1State, type: mBtn1Type, size: "medium", onClick: onClickMBtn1 }))] })] }))] }))] }), container);
|
|
95
80
|
}
|
|
96
81
|
var S_ModalOverlay = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n background-color: ", ";\n height: 100vh;\n left: 0;\n position: fixed;\n top: 0;\n width: 100vw;\n\n ", "\n"], ["\n background-color: ", ";\n height: 100vh;\n left: 0;\n position: fixed;\n top: 0;\n width: 100vw;\n\n ", "\n"])), function (_a) {
|
|
97
82
|
var theme = _a.theme;
|
|
@@ -122,17 +107,12 @@ var S_ModalWrapper = styled_components_1.default.div(templateObject_2 || (templa
|
|
|
122
107
|
return sizes[size];
|
|
123
108
|
}, animationStyle_1.modalOnAni);
|
|
124
109
|
var scrollInvisible = (0, styled_components_1.css)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n ::-webkit-scrollbar {\n display: none;\n }\n"], ["\n ::-webkit-scrollbar {\n display: none;\n }\n"])));
|
|
125
|
-
var S_Body = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n overflow: auto;\n overflow-y: overlay;\n width: 100%;\n\n ", "\n
|
|
126
|
-
var scrollVisibleType = _a.scrollVisibleType;
|
|
127
|
-
return scrollVisibleType &&
|
|
128
|
-
{
|
|
129
|
-
moving: scrollInvisible,
|
|
130
|
-
visible: scrollbarStyle_1.scrollbarWithPaddingStyle,
|
|
131
|
-
hidden: scrollInvisible
|
|
132
|
-
}[scrollVisibleType];
|
|
133
|
-
}, function (_a) {
|
|
110
|
+
var S_Body = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n overflow: auto;\n overflow-y: overlay;\n width: 100%;\n\n ", "\n"], ["\n overflow: auto;\n overflow-y: overlay;\n width: 100%;\n\n ", "\n"])), function (_a) {
|
|
134
111
|
var scrollVisibleType = _a.scrollVisibleType;
|
|
135
|
-
return
|
|
112
|
+
return ({
|
|
113
|
+
visible: scrollbarStyle_1.scrollbarWithPaddingStyle,
|
|
114
|
+
hidden: scrollInvisible
|
|
115
|
+
}[scrollVisibleType]);
|
|
136
116
|
});
|
|
137
117
|
var S_Left = styled_components_1.default.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n margin-right: ", ";\n"], ["\n margin-right: ", ";\n"])), function (_a) {
|
|
138
118
|
var theme = _a.theme;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
+
import { ScrollVisibleType } from '../../../common/styles/scroll/scrollbarStyle';
|
|
2
3
|
import type { PDSTextType } from '../../../common';
|
|
3
4
|
export type DesktopTutorialModalInfoType = {
|
|
4
5
|
sideTabTitleText: PDSTextType;
|
|
@@ -13,7 +14,8 @@ type DesktopTutorialModalProps = {
|
|
|
13
14
|
modalTitleText: PDSTextType;
|
|
14
15
|
infoArray: DesktopTutorialModalInfoType[];
|
|
15
16
|
sequenceMode?: 'use' | 'none';
|
|
17
|
+
scrollVisibleType?: ScrollVisibleType;
|
|
16
18
|
onClose: (e: React.MouseEvent<HTMLButtonElement>) => void;
|
|
17
19
|
};
|
|
18
|
-
declare function DesktopTutorialModal({ modalTitleText, infoArray, sequenceMode, onClose }: DesktopTutorialModalProps): import("react").ReactPortal;
|
|
20
|
+
declare function DesktopTutorialModal({ modalTitleText, infoArray, sequenceMode, scrollVisibleType, onClose }: DesktopTutorialModalProps): import("react").ReactPortal;
|
|
19
21
|
export default DesktopTutorialModal;
|