pds-dev-kit-web 2.2.210 → 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/components/PriceTextField/PriceTextField.d.ts +5 -4
- package/dist/src/desktop/components/PriceTextField/PriceTextField.js +53 -70
- 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/components/PriceTextField/PriceTextField.d.ts +5 -4
- package/dist/src/mobile/components/PriceTextField/PriceTextField.js +53 -70
- 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,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { Path } from 'react-hook-form';
|
|
3
|
-
import { CurrencyCode
|
|
3
|
+
import { CurrencyCode } from '../../../core/pricing';
|
|
4
4
|
import type { IFormValues, PDSTextType } from '../../../common';
|
|
5
5
|
import type { TextFieldBaseProps } from '../../common/components/TextFieldBase/TextFieldBase';
|
|
6
6
|
export declare const DEFAULT_DECIMAL_PLACES: {
|
|
@@ -19,12 +19,13 @@ type Props = {
|
|
|
19
19
|
baseCurrency?: CurrencyCode;
|
|
20
20
|
currencies?: CurrencyCode[];
|
|
21
21
|
decimalPlaces?: Record<string, number>;
|
|
22
|
-
exchangeRates?:
|
|
22
|
+
exchangeRates?: {
|
|
23
|
+
[key: string]: number;
|
|
24
|
+
};
|
|
23
25
|
hintTextFontWeight?: 'normal' | 'bold';
|
|
24
26
|
validation?: any;
|
|
25
27
|
useRequiredValidation?: 'none' | 'use';
|
|
26
28
|
useDotBadge?: 'none' | 'use';
|
|
27
|
-
returnType?: 'object' | 'string' | 'rawValue';
|
|
28
29
|
deleteBtnMode?: 'none' | 'use';
|
|
29
30
|
minPriceAmount?: string | number;
|
|
30
31
|
onExChange?: (e: React.ChangeEvent<HTMLInputElement> | React.ChangeEvent<HTMLTextAreaElement>) => void;
|
|
@@ -39,5 +40,5 @@ type Props = {
|
|
|
39
40
|
displayValue: string;
|
|
40
41
|
}) => void;
|
|
41
42
|
} & Omit<Partial<TextFieldBaseProps>, 'textAlign' | 'preventBlankMode' | 'enterSubmitMode' | 'multiRows' | 'colorTheme'>;
|
|
42
|
-
declare function PriceTextField({ name, hintText, defaultAmount, colorTheme, size, fontWeight, hintTextFontWeight, responsiveMode, state, dropdownState, customWidth, baseCurrency, currencies, decimalPlaces, exchangeRates, textAlign, validation, useRequiredValidation, useDotBadge,
|
|
43
|
+
declare function PriceTextField({ name, hintText, defaultAmount, colorTheme, size, fontWeight, hintTextFontWeight, responsiveMode, state, dropdownState, customWidth, baseCurrency, currencies, decimalPlaces, exchangeRates, textAlign, validation, useRequiredValidation, useDotBadge, deleteBtnMode, minPriceAmount, onChange, onExChange, onBlur, onFocus, onTarget, onCurrencyChange, onValueChange }: Props): JSX.Element;
|
|
43
44
|
export default PriceTextField;
|
|
@@ -66,18 +66,50 @@ exports.DEFAULT_DECIMAL_PLACES = {
|
|
|
66
66
|
function PriceTextField(_a) {
|
|
67
67
|
var _b;
|
|
68
68
|
var _c;
|
|
69
|
-
var name = _a.name, hintText = _a.hintText, defaultAmount = _a.defaultAmount, _d = _a.colorTheme, colorTheme = _d === void 0 ? 'none' : _d, _e = _a.size, size = _e === void 0 ? 'large' : _e, _f = _a.fontWeight, fontWeight = _f === void 0 ? 'bold' : _f, _g = _a.hintTextFontWeight, hintTextFontWeight = _g === void 0 ? 'normal' : _g, _h = _a.responsiveMode, responsiveMode = _h === void 0 ? 'none' : _h, _j = _a.state, state = _j === void 0 ? 'normal' : _j, _k = _a.dropdownState, dropdownState = _k === void 0 ? 'normal' : _k, customWidth = _a.customWidth, _l = _a.baseCurrency, baseCurrency = _l === void 0 ? pricing_1.CurrencyCode.KRW : _l, _m = _a.currencies, currencies = _m === void 0 ? [pricing_1.CurrencyCode.KRW, pricing_1.CurrencyCode.USD] : _m, _o = _a.decimalPlaces, decimalPlaces = _o === void 0 ? exports.DEFAULT_DECIMAL_PLACES : _o, _p = _a.exchangeRates, exchangeRates = _p === void 0 ? (_b = {}, _b[pricing_1.CurrencyCode.KRW] = 1300, _b[pricing_1.CurrencyCode.USD] = 1, _b) : _p, _q = _a.textAlign, textAlign = _q === void 0 ? 'right' : _q, validation = _a.validation, _r = _a.useRequiredValidation, useRequiredValidation = _r === void 0 ? 'use' : _r, _s = _a.useDotBadge, useDotBadge = _s === void 0 ? 'use' : _s, _t = _a.
|
|
69
|
+
var name = _a.name, hintText = _a.hintText, defaultAmount = _a.defaultAmount, _d = _a.colorTheme, colorTheme = _d === void 0 ? 'none' : _d, _e = _a.size, size = _e === void 0 ? 'large' : _e, _f = _a.fontWeight, fontWeight = _f === void 0 ? 'bold' : _f, _g = _a.hintTextFontWeight, hintTextFontWeight = _g === void 0 ? 'normal' : _g, _h = _a.responsiveMode, responsiveMode = _h === void 0 ? 'none' : _h, _j = _a.state, state = _j === void 0 ? 'normal' : _j, _k = _a.dropdownState, dropdownState = _k === void 0 ? 'normal' : _k, customWidth = _a.customWidth, _l = _a.baseCurrency, baseCurrency = _l === void 0 ? pricing_1.CurrencyCode.KRW : _l, _m = _a.currencies, currencies = _m === void 0 ? [pricing_1.CurrencyCode.KRW, pricing_1.CurrencyCode.USD] : _m, _o = _a.decimalPlaces, decimalPlaces = _o === void 0 ? exports.DEFAULT_DECIMAL_PLACES : _o, _p = _a.exchangeRates, exchangeRates = _p === void 0 ? (_b = {}, _b[pricing_1.CurrencyCode.KRW] = 1300, _b[pricing_1.CurrencyCode.USD] = 1, _b) : _p, _q = _a.textAlign, textAlign = _q === void 0 ? 'right' : _q, validation = _a.validation, _r = _a.useRequiredValidation, useRequiredValidation = _r === void 0 ? 'use' : _r, _s = _a.useDotBadge, useDotBadge = _s === void 0 ? 'use' : _s, _t = _a.deleteBtnMode, deleteBtnMode = _t === void 0 ? 'use' : _t, minPriceAmount = _a.minPriceAmount, onChange = _a.onChange, onExChange = _a.onExChange, onBlur = _a.onBlur, onFocus = _a.onFocus, onTarget = _a.onTarget, onCurrencyChange = _a.onCurrencyChange, onValueChange = _a.onValueChange;
|
|
70
70
|
var t = (0, react_i18next_1.useTranslation)('translation').t;
|
|
71
|
-
var
|
|
72
|
-
var
|
|
73
|
-
var
|
|
74
|
-
var
|
|
75
|
-
var
|
|
76
|
-
var
|
|
77
|
-
|
|
71
|
+
var _u = (0, react_1.useState)(defaultAmount ? String(defaultAmount) : ''), baseCurrencyValue = _u[0], setBaseCurrencyValue = _u[1];
|
|
72
|
+
var _v = (0, react_1.useState)(baseCurrency), selectedCurrency = _v[0], setSelectedCurrency = _v[1];
|
|
73
|
+
var _w = (0, react_1.useState)(false), isDropdownFocused = _w[0], setIsDropdownFocused = _w[1];
|
|
74
|
+
var _x = (0, react_1.useState)(false), isInputFocused = _x[0], setIsInputFocused = _x[1];
|
|
75
|
+
var _y = (0, react_1.useState)(null), contextMenuSizeOffset = _y[0], setContextMenuSizeOffset = _y[1];
|
|
76
|
+
var _z = (0, react_1.useState)(null), dropdownPositionOffset = _z[0], setDropdownPositionOffset = _z[1];
|
|
77
|
+
/** 입력 시 천 단위 콤마 추가 함수 */
|
|
78
|
+
var addCommas = function (value) {
|
|
79
|
+
if (!value)
|
|
80
|
+
return '';
|
|
81
|
+
var parts = value.split('.');
|
|
82
|
+
var integerPart = parts[0];
|
|
83
|
+
var decimalPart = parts[1];
|
|
84
|
+
// 정수 부분에 콤마 추가
|
|
85
|
+
var formattedInteger = integerPart.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
|
86
|
+
// 소수점이 있으면 합치기
|
|
87
|
+
return decimalPart !== undefined ? "".concat(formattedInteger, ".").concat(decimalPart) : formattedInteger;
|
|
88
|
+
};
|
|
89
|
+
var displayValue = (0, react_1.useMemo)(function () {
|
|
90
|
+
if (!baseCurrencyValue || baseCurrencyValue === '') {
|
|
91
|
+
return '';
|
|
92
|
+
}
|
|
93
|
+
if (selectedCurrency === baseCurrency) {
|
|
94
|
+
return isInputFocused
|
|
95
|
+
? addCommas(baseCurrencyValue)
|
|
96
|
+
: formatCurrency(Number(baseCurrencyValue), selectedCurrency, decimalPlaces);
|
|
97
|
+
}
|
|
98
|
+
var rate = exchangeRates[selectedCurrency] || 1;
|
|
99
|
+
var baseRate = exchangeRates[baseCurrency] || 1;
|
|
100
|
+
var convertedValue = (Number(baseCurrencyValue) / baseRate) * rate;
|
|
101
|
+
return formatCurrency(convertedValue, selectedCurrency, decimalPlaces);
|
|
102
|
+
}, [
|
|
103
|
+
baseCurrencyValue,
|
|
104
|
+
selectedCurrency,
|
|
105
|
+
baseCurrency,
|
|
106
|
+
exchangeRates,
|
|
107
|
+
decimalPlaces,
|
|
108
|
+
isInputFocused
|
|
109
|
+
]);
|
|
78
110
|
var contextMenuRef = (0, react_1.useRef)(null);
|
|
79
111
|
var dropdownRef = (0, react_1.useRef)(null);
|
|
80
|
-
var
|
|
112
|
+
var _0 = (0, react_hook_form_1.useFormContext)(), register = _0.register, trigger = _0.trigger, errors = _0.formState.errors, setValue = _0.setValue;
|
|
81
113
|
/** 기본 validation */
|
|
82
114
|
var defaultValidation = (0, react_1.useMemo)(function () {
|
|
83
115
|
var validationConfig = {};
|
|
@@ -192,30 +224,13 @@ function PriceTextField(_a) {
|
|
|
192
224
|
};
|
|
193
225
|
// 환율 계산된 값 계산 (항상 baseCurrency 기준으로)
|
|
194
226
|
var calculatedValue = (0, react_1.useMemo)(function () {
|
|
195
|
-
if (selectedCurrency === baseCurrency) {
|
|
227
|
+
if (!baseCurrencyValue || selectedCurrency === baseCurrency) {
|
|
196
228
|
return Number(baseCurrencyValue);
|
|
197
229
|
}
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
if (isInputFocused && selectedCurrency === baseCurrency) {
|
|
203
|
-
setDisplayValue(addCommas(baseCurrencyValue) || '');
|
|
204
|
-
}
|
|
205
|
-
else if (!baseCurrencyValue || baseCurrencyValue === '') {
|
|
206
|
-
setDisplayValue('');
|
|
207
|
-
}
|
|
208
|
-
else {
|
|
209
|
-
setDisplayValue(formatCurrency(calculatedValue, selectedCurrency, decimalPlaces));
|
|
210
|
-
}
|
|
211
|
-
}, [
|
|
212
|
-
baseCurrencyValue,
|
|
213
|
-
calculatedValue,
|
|
214
|
-
selectedCurrency,
|
|
215
|
-
isInputFocused,
|
|
216
|
-
baseCurrency,
|
|
217
|
-
decimalPlaces
|
|
218
|
-
]);
|
|
230
|
+
var rate = exchangeRates[selectedCurrency] || 1;
|
|
231
|
+
var baseRate = exchangeRates[baseCurrency] || 1;
|
|
232
|
+
return (Number(baseCurrencyValue) / baseRate) * rate;
|
|
233
|
+
}, [baseCurrencyValue, selectedCurrency, baseCurrency, exchangeRates]);
|
|
219
234
|
/** 드롭다운 위치 업데이트 */
|
|
220
235
|
(0, react_1.useEffect)(function () {
|
|
221
236
|
if (!isDropdownFocused && contextMenuRef.current) {
|
|
@@ -245,36 +260,16 @@ function PriceTextField(_a) {
|
|
|
245
260
|
}
|
|
246
261
|
return formatCurrency(calculatedValue || 0, selectedCurrency, decimalPlaces);
|
|
247
262
|
}, [baseCurrencyValue, calculatedValue, selectedCurrency, decimalPlaces]);
|
|
248
|
-
/** returnType에 따른 폼 값 */
|
|
249
|
-
var formValue = (0, react_1.useMemo)(function () {
|
|
250
|
-
if (!baseCurrencyValue || baseCurrencyValue === '') {
|
|
251
|
-
return '';
|
|
252
|
-
}
|
|
253
|
-
switch (returnType) {
|
|
254
|
-
case 'string':
|
|
255
|
-
return formattedValue;
|
|
256
|
-
case 'rawValue':
|
|
257
|
-
return baseCurrencyValue;
|
|
258
|
-
case 'object':
|
|
259
|
-
default:
|
|
260
|
-
return formattedValue;
|
|
261
|
-
}
|
|
262
|
-
}, [baseCurrencyValue, formattedValue, returnType]);
|
|
263
263
|
/** 폼 값 업데이트 */
|
|
264
264
|
(0, react_1.useEffect)(function () {
|
|
265
|
-
setValue(name,
|
|
266
|
-
}, [name, setValue,
|
|
265
|
+
setValue(name, baseCurrencyValue);
|
|
266
|
+
}, [name, setValue, baseCurrencyValue]);
|
|
267
267
|
/** onChange 콜백 처리 */
|
|
268
268
|
(0, react_1.useEffect)(function () {
|
|
269
|
-
if (
|
|
270
|
-
|
|
271
|
-
if (!baseCurrencyValue || baseCurrencyValue === '') {
|
|
272
|
-
onChange('');
|
|
273
|
-
return;
|
|
269
|
+
if (onChange && baseCurrencyValue) {
|
|
270
|
+
onChange(baseCurrencyValue);
|
|
274
271
|
}
|
|
275
|
-
|
|
276
|
-
onChange(callbackValue);
|
|
277
|
-
}, [onChange, baseCurrencyValue, formattedValue, formValue, returnType]);
|
|
272
|
+
}, [onChange, baseCurrencyValue]);
|
|
278
273
|
/** onValueChange 콜백 처리 */
|
|
279
274
|
(0, react_1.useEffect)(function () {
|
|
280
275
|
if (!onValueChange)
|
|
@@ -289,18 +284,6 @@ function PriceTextField(_a) {
|
|
|
289
284
|
displayValue: formattedValue
|
|
290
285
|
});
|
|
291
286
|
}, [baseCurrencyValue, selectedCurrency, calculatedValue, formattedValue]);
|
|
292
|
-
/** 입력 시 천 단위 콤마 추가 함수 */
|
|
293
|
-
var addCommas = function (value) {
|
|
294
|
-
if (!value)
|
|
295
|
-
return '';
|
|
296
|
-
var parts = value.split('.');
|
|
297
|
-
var integerPart = parts[0];
|
|
298
|
-
var decimalPart = parts[1];
|
|
299
|
-
// 정수 부분에 콤마 추가
|
|
300
|
-
var formattedInteger = integerPart.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
|
301
|
-
// 소수점이 있으면 합치기
|
|
302
|
-
return decimalPart !== undefined ? "".concat(formattedInteger, ".").concat(decimalPart) : formattedInteger;
|
|
303
|
-
};
|
|
304
287
|
var handleChange = function (e) {
|
|
305
288
|
var _a = e.target, value = _a.value, selectionStart = _a.selectionStart;
|
|
306
289
|
var prevValue = displayValue;
|
|
@@ -434,13 +417,13 @@ function PriceTextField(_a) {
|
|
|
434
417
|
};
|
|
435
418
|
var handleDelete = (0, react_1.useCallback)(function () {
|
|
436
419
|
setBaseCurrencyValue('');
|
|
437
|
-
setDisplayValue('');
|
|
438
420
|
setValue(name, '');
|
|
439
421
|
}, [name, setValue]);
|
|
440
422
|
return ((0, jsx_runtime_1.jsxs)(S_PriceTextField, __assign({ "x-pds-name": "PriceTextField", "x-pds-element-type": "component", "x-pds-device-type": "desktop", inputSize: size, responsiveMode: responsiveMode, customWidth: customWidth }, { children: [(0, jsx_runtime_1.jsxs)(S_ComponentBox, __assign({ inputSize: size, responsiveMode: responsiveMode, isFocused: isInputFocused, isError: Boolean(isError), state: state, customWidth: customWidth, isInputReadOnly: isInputReadOnly }, { children: [(0, jsx_runtime_1.jsx)(S_TextFieldBaseWrapper, __assign({ state: state, isError: Boolean(isError), isFocused: isInputFocused, inputSize: size, isInputReadOnly: isInputReadOnly }, { children: (0, jsx_runtime_1.jsx)(components_1.TextFieldBase, { name: name, hintText: hintText ||
|
|
441
423
|
t('str_channel_min_price', {
|
|
442
424
|
channelMinPrice: pricing_1.PricingService.format.price({
|
|
443
|
-
amount: minPriceAmount ||
|
|
425
|
+
amount: minPriceAmount ||
|
|
426
|
+
policy_1.DEFAULT_CURRENCY_PRICE_POLICIES[baseCurrency].minPayment.amount,
|
|
444
427
|
currency: baseCurrency
|
|
445
428
|
})
|
|
446
429
|
}), value: displayValue, textAlign: textAlign, validation: finalValidation, textLineType: "single", inputType: "text", inputMode: "decimal", preventBlankMode: "all", enterSubmitMode: "none", state: isInputReadOnly ? 'read_only' : state, colorTheme: colorTheme, textSize: "form2", textWeight: fontWeight === 'bold' ? 'bold' : 'normal', hintTextWeight: hintTextFontWeight === 'bold' ? 'bold' : 'normal', fieldPaddingRight: size === 'large' || size === 'rlarge' ? 12 : undefined, deleteIconMode: deleteBtnMode, deleteIconSize: size === 'large' || size === 'rlarge' ? 20 : 16, deleteIconColor: deleteIconColor, isFocused: isInputFocused, suffixTextRightSpacingMode: size === 'large' || size === 'rlarge' ? 'use' : 'none', onChange: handleChange, onFocus: handleFocus, onBlur: handleBlur, onTarget: handleTarget, onDelete: handleDelete }) })), (0, jsx_runtime_1.jsx)(S_DropdownWrapper, __assign({ ref: dropdownRef, inputSize: size, onClick: handleDropdownClick, onBlur: handleDropdownBlur, tabIndex: 0, isFocused: isDropdownFocused, state: dropdownState, isError: Boolean(isError) }, { children: (0, jsx_runtime_1.jsxs)(S_Select, __assign({ inputSize: size }, { children: [useDotBadge === 'use' && selectedCurrency === baseCurrency && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(S_Badge, {}), (0, jsx_runtime_1.jsx)(hybrid_1.Spacing, { size: "spacing_a", spacingType: "width" })] })), (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: selectedCurrency, styleTheme: "form2Bold", singleLineMode: "use", colorTheme: "sysTextPrimary", ellipsisMode: "use", customFontWeight: "bold", colorOverride: getDropdownTextColorKey(), lineLimit: 1 }), (0, jsx_runtime_1.jsx)(hybrid_1.Spacing, { size: "spacing_a", spacingType: "width" }), (0, jsx_runtime_1.jsx)(hybrid_1.Icon, { size: 16, fillType: "line", iconName: isDropdownFocused ? 'ic_arrow_up' : 'ic_arrow_down', colorKey: getArrowIconColorKey() })] })) }))] })), isDropdownFocused &&
|
|
@@ -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;
|