@bbon/react-calendar 0.5.0 → 0.5.4
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/Calendar/Box.d.ts +30 -30
- package/dist/Calendar/Calendar.d.ts +96 -96
- package/dist/Calendar/DateItem.d.ts +23 -23
- package/dist/Calendar/DateType.d.ts +1 -1
- package/dist/Calendar/DateUtil.d.ts +10 -10
- package/dist/Calendar/index.d.ts +4 -4
- package/dist/index.cjs.js +219 -222
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.esm.js +219 -212
- package/dist/index.esm.js.map +1 -1
- package/package.json +69 -67
package/dist/index.cjs.js
CHANGED
|
@@ -1,21 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
3
|
var React = require('react');
|
|
6
4
|
var dayjs = require('dayjs');
|
|
7
5
|
var weekOfYear = require('dayjs/plugin/weekOfYear');
|
|
8
6
|
var isBetween = require('dayjs/plugin/isBetween');
|
|
9
7
|
var localeData = require('dayjs/plugin/localeData');
|
|
10
8
|
|
|
11
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
12
|
-
|
|
13
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
14
|
-
var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
|
|
15
|
-
var weekOfYear__default = /*#__PURE__*/_interopDefaultLegacy(weekOfYear);
|
|
16
|
-
var isBetween__default = /*#__PURE__*/_interopDefaultLegacy(isBetween);
|
|
17
|
-
var localeData__default = /*#__PURE__*/_interopDefaultLegacy(localeData);
|
|
18
|
-
|
|
19
9
|
/******************************************************************************
|
|
20
10
|
Copyright (c) Microsoft Corporation.
|
|
21
11
|
|
|
@@ -30,6 +20,8 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
|
30
20
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
31
21
|
PERFORMANCE OF THIS SOFTWARE.
|
|
32
22
|
***************************************************************************** */
|
|
23
|
+
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
|
24
|
+
|
|
33
25
|
|
|
34
26
|
var __assign = function() {
|
|
35
27
|
__assign = Object.assign || function __assign(t) {
|
|
@@ -50,223 +42,228 @@ function __spreadArray(to, from, pack) {
|
|
|
50
42
|
}
|
|
51
43
|
}
|
|
52
44
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
53
|
-
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
48
|
+
var e = new Error(message);
|
|
49
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
50
|
+
};
|
|
54
51
|
|
|
55
|
-
var Box = function (_a) {
|
|
56
|
-
var date = _a.date, text = _a.text, isHoliday = _a.isHoliday, isPreviousMonth = _a.isPreviousMonth, isNextMonth = _a.isNextMonth, isToday = _a.isToday, isSelected = _a.isSelected, isSelectedStart = _a.isSelectedStart, isSelectedEnd = _a.isSelectedEnd, canSelect = _a.canSelect, highlightToday = _a.highlightToday, onClick = _a.onClick;
|
|
57
|
-
return (
|
|
58
|
-
return onClick && date && canSelect ? onClick(date) : undefined;
|
|
59
|
-
} },
|
|
60
|
-
|
|
61
|
-
? 'calendar-selectionBox-selected-start'
|
|
62
|
-
: '', " ").concat(isSelectedEnd ? 'calendar-selectionBox-selected-end' : '', " ").concat(canSelect ? '' : 'calendar-box-disabled') },
|
|
63
|
-
|
|
52
|
+
var Box = function (_a) {
|
|
53
|
+
var date = _a.date, text = _a.text, isHoliday = _a.isHoliday, isPreviousMonth = _a.isPreviousMonth, isNextMonth = _a.isNextMonth, isToday = _a.isToday, isSelected = _a.isSelected, isSelectedStart = _a.isSelectedStart, isSelectedEnd = _a.isSelectedEnd, canSelect = _a.canSelect, highlightToday = _a.highlightToday, onClick = _a.onClick;
|
|
54
|
+
return (React.createElement("div", { className: "calendar-box ".concat(isHoliday ? 'calendar-holiday' : '', " ").concat(isPreviousMonth ? 'calendar-previous-month' : '', " ").concat(isNextMonth ? 'calendar-next-month' : ''), onClick: function () {
|
|
55
|
+
return onClick && date && canSelect ? onClick(date) : undefined;
|
|
56
|
+
} },
|
|
57
|
+
React.createElement("div", { className: "calendar-selectionBox ".concat(isSelected ? 'calendar-selectionBox-selected' : '', " ").concat(isSelectedStart
|
|
58
|
+
? 'calendar-selectionBox-selected-start'
|
|
59
|
+
: '', " ").concat(isSelectedEnd ? 'calendar-selectionBox-selected-end' : '', " ").concat(canSelect ? '' : 'calendar-box-disabled') },
|
|
60
|
+
React.createElement("div", { className: "".concat(isToday && highlightToday ? 'calendar-today' : '') }, text))));
|
|
64
61
|
};
|
|
65
62
|
|
|
66
|
-
var DateUtil = /** @class */ (function () {
|
|
67
|
-
function DateUtil() {
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Date 형식을 확인합니다.
|
|
71
|
-
*
|
|
72
|
-
* @param {(Date | string | number)} value
|
|
73
|
-
* @returns {Date}
|
|
74
|
-
* @memberof Dates
|
|
75
|
-
*/
|
|
76
|
-
DateUtil.ensureDateValue = function (value) {
|
|
77
|
-
var dateValue;
|
|
78
|
-
if (typeof value === 'string') {
|
|
79
|
-
var numberValues = value
|
|
80
|
-
.split(/[^0-9]/)
|
|
81
|
-
.map(function (x) { return parseInt(x, 10); });
|
|
82
|
-
if (numberValues.length >= 5) {
|
|
83
|
-
dateValue = new Date(numberValues[0], numberValues[1] - 1, numberValues[2], numberValues[3], numberValues[4], numberValues[5]);
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
dateValue = new Date(value);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
else if (typeof value === 'number') {
|
|
90
|
-
dateValue = new Date(value);
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
dateValue = value;
|
|
94
|
-
}
|
|
95
|
-
return dateValue;
|
|
96
|
-
};
|
|
97
|
-
return DateUtil;
|
|
63
|
+
var DateUtil = /** @class */ (function () {
|
|
64
|
+
function DateUtil() {
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Date 형식을 확인합니다.
|
|
68
|
+
*
|
|
69
|
+
* @param {(Date | string | number)} value
|
|
70
|
+
* @returns {Date}
|
|
71
|
+
* @memberof Dates
|
|
72
|
+
*/
|
|
73
|
+
DateUtil.ensureDateValue = function (value) {
|
|
74
|
+
var dateValue;
|
|
75
|
+
if (typeof value === 'string') {
|
|
76
|
+
var numberValues = value
|
|
77
|
+
.split(/[^0-9]/)
|
|
78
|
+
.map(function (x) { return parseInt(x, 10); });
|
|
79
|
+
if (numberValues.length >= 5) {
|
|
80
|
+
dateValue = new Date(numberValues[0], numberValues[1] - 1, numberValues[2], numberValues[3], numberValues[4], numberValues[5]);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
dateValue = new Date(value);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
else if (typeof value === 'number') {
|
|
87
|
+
dateValue = new Date(value);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
dateValue = value;
|
|
91
|
+
}
|
|
92
|
+
return dateValue;
|
|
93
|
+
};
|
|
94
|
+
return DateUtil;
|
|
98
95
|
}());
|
|
99
96
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* 달력으로 기간을 선택합니다.
|
|
105
|
-
* @param {CalendarProps}
|
|
106
|
-
* @returns
|
|
107
|
-
*/
|
|
108
|
-
var Calendar = function (_a) {
|
|
109
|
-
var selection = _a.selection, selections = _a.selections, useMoveToYear = _a.useMoveToYear, useMoveToMonth = _a.useMoveToMonth, minDate = _a.minDate, maxDate = _a.maxDate, showDate = _a.showDate, highlightToday = _a.highlightToday, dateFormat = _a.dateFormat, buttonContentProps = _a.buttonContentProps, onChange = _a.onChange;
|
|
110
|
-
var DATE_FORMAT = 'YYYY-MM-DD';
|
|
111
|
-
var _b = React.useState(selection ||
|
|
112
|
-
var _c = React.useState(selections || []), selectedDates = _c[0], setSelectedDates = _c[1];
|
|
113
|
-
var _d = React.useState([]), records = _d[0], setRecords = _d[1];
|
|
114
|
-
var today =
|
|
115
|
-
var updateRecords = React.useCallback(function (basisDate, sDates, minDate, maxDate) {
|
|
116
|
-
setRecords(function (_) {
|
|
117
|
-
var basis =
|
|
118
|
-
var startWeek = basis.clone().startOf('month').week();
|
|
119
|
-
var newRecords = [];
|
|
120
|
-
var _loop_1 = function (week) {
|
|
121
|
-
var items = Array(7)
|
|
122
|
-
.fill(0)
|
|
123
|
-
.map(function (i, index) {
|
|
124
|
-
var current =
|
|
125
|
-
.clone()
|
|
126
|
-
.week(week)
|
|
127
|
-
.startOf('week')
|
|
128
|
-
.add(i + index, 'day');
|
|
129
|
-
var item = {
|
|
130
|
-
date: current.format(dateFormat !== null && dateFormat !== void 0 ? dateFormat : DATE_FORMAT),
|
|
131
|
-
text: current.date().toString(),
|
|
132
|
-
isHoliday: 0 === current.day(),
|
|
133
|
-
isPreviousMonth: current.month() !== basis.month() &&
|
|
134
|
-
week === startWeek,
|
|
135
|
-
isNextMonth: current.month() !== basis.month() &&
|
|
136
|
-
week !== startWeek,
|
|
137
|
-
isToday: current.format(dateFormat !== null && dateFormat !== void 0 ? dateFormat : DATE_FORMAT) ===
|
|
138
|
-
|
|
139
|
-
isSelected: sDates &&
|
|
140
|
-
sDates.length > 0 &&
|
|
141
|
-
current.isBetween(
|
|
142
|
-
? sDates[0]
|
|
143
|
-
: sDates[1]), 'day', '[]'),
|
|
144
|
-
isSelectedStart: sDates &&
|
|
145
|
-
sDates.length > 0 &&
|
|
146
|
-
current.format(dateFormat !== null && dateFormat !== void 0 ? dateFormat : DATE_FORMAT) ===
|
|
147
|
-
|
|
148
|
-
isSelectedEnd: sDates &&
|
|
149
|
-
sDates.length > 0 &&
|
|
150
|
-
current.format(dateFormat !== null && dateFormat !== void 0 ? dateFormat : DATE_FORMAT) ===
|
|
151
|
-
|
|
152
|
-
? sDates[0]
|
|
153
|
-
: sDates[1]).format(dateFormat !== null && dateFormat !== void 0 ? dateFormat : DATE_FORMAT),
|
|
154
|
-
canSelect: !minDate && !maxDate
|
|
155
|
-
? true
|
|
156
|
-
: current.isBetween(minDate ? minDate : '0001-01-01', maxDate ? maxDate : '9999-12-31', undefined, '[]'),
|
|
157
|
-
};
|
|
158
|
-
return item;
|
|
159
|
-
});
|
|
160
|
-
newRecords.push(items);
|
|
161
|
-
if (basis.month() !==
|
|
162
|
-
return "break";
|
|
163
|
-
}
|
|
164
|
-
};
|
|
165
|
-
// eslint-disable-next-line no-constant-condition
|
|
166
|
-
for (var week = startWeek; true; week++) {
|
|
167
|
-
var state_1 = _loop_1(week);
|
|
168
|
-
if (state_1 === "break")
|
|
169
|
-
break;
|
|
170
|
-
}
|
|
171
|
-
return __spreadArray([], newRecords, true);
|
|
172
|
-
});
|
|
173
|
-
}, []);
|
|
174
|
-
var getButtonTitle = function (date, value, interval) {
|
|
175
|
-
var d =
|
|
176
|
-
return "Move to ".concat(d.format('YYYY-MM'));
|
|
177
|
-
};
|
|
178
|
-
var handleClickPrevYear = function () {
|
|
179
|
-
setDate(function (prevState) {
|
|
180
|
-
return
|
|
181
|
-
.add(-1, 'year')
|
|
182
|
-
.format(dateFormat !== null && dateFormat !== void 0 ? dateFormat : DATE_FORMAT);
|
|
183
|
-
});
|
|
184
|
-
};
|
|
185
|
-
var handleClickPrevMonth = function () {
|
|
186
|
-
setDate(function (prevState) {
|
|
187
|
-
return
|
|
188
|
-
.add(-1, 'month')
|
|
189
|
-
.format(dateFormat !== null && dateFormat !== void 0 ? dateFormat : DATE_FORMAT);
|
|
190
|
-
});
|
|
191
|
-
};
|
|
192
|
-
var handleClickNextMonth = function () {
|
|
193
|
-
setDate(function (prevState) {
|
|
194
|
-
return
|
|
195
|
-
.add(1, 'month')
|
|
196
|
-
.format(dateFormat !== null && dateFormat !== void 0 ? dateFormat : DATE_FORMAT);
|
|
197
|
-
});
|
|
198
|
-
};
|
|
199
|
-
var handleClickNextYear = function () {
|
|
200
|
-
setDate(function (prevState) {
|
|
201
|
-
return
|
|
202
|
-
.add(1, 'year')
|
|
203
|
-
.format(dateFormat !== null && dateFormat !== void 0 ? dateFormat : DATE_FORMAT);
|
|
204
|
-
});
|
|
205
|
-
};
|
|
206
|
-
var handleClickToday = function () {
|
|
207
|
-
setDate(today
|
|
208
|
-
// .toDate()
|
|
209
|
-
.format(dateFormat !== null && dateFormat !== void 0 ? dateFormat : DATE_FORMAT));
|
|
210
|
-
};
|
|
211
|
-
var handleClickBox = function (date) {
|
|
212
|
-
setSelectedDates(function (prevState) {
|
|
213
|
-
if (prevState.length === 1) {
|
|
214
|
-
// prevState.push(date);
|
|
215
|
-
// return [...prevState.sort((a, b) => (a > b ? 1 : -1))];
|
|
216
|
-
return __spreadArray(__spreadArray([], prevState, true), [date], false).sort(function (a, b) { return (a > b ? 1 : -1); });
|
|
217
|
-
}
|
|
218
|
-
else {
|
|
219
|
-
return [date];
|
|
220
|
-
}
|
|
221
|
-
});
|
|
222
|
-
};
|
|
223
|
-
React.useEffect(function () {
|
|
224
|
-
updateRecords(date, selectedDates, minDate, maxDate);
|
|
225
|
-
}, [date, selections, selectedDates, selection, minDate, maxDate]);
|
|
226
|
-
React.useEffect(function () {
|
|
227
|
-
if (onChange) {
|
|
228
|
-
var start = void 0;
|
|
229
|
-
var end = void 0;
|
|
230
|
-
if (selectedDates.length === 0) {
|
|
231
|
-
start = undefined;
|
|
232
|
-
end = undefined;
|
|
233
|
-
}
|
|
234
|
-
else if (selectedDates.length === 1) {
|
|
235
|
-
start = selectedDates[0];
|
|
236
|
-
// end = selectedDates[0];
|
|
237
|
-
}
|
|
238
|
-
else {
|
|
239
|
-
start = selectedDates[0];
|
|
240
|
-
end = selectedDates[1];
|
|
241
|
-
}
|
|
242
|
-
onChange(start, end);
|
|
243
|
-
}
|
|
244
|
-
}, [onChange, selectedDates]);
|
|
245
|
-
return (
|
|
246
|
-
|
|
247
|
-
useMoveToYear && (
|
|
248
|
-
useMoveToMonth && (
|
|
249
|
-
|
|
250
|
-
useMoveToMonth && (
|
|
251
|
-
useMoveToYear && (
|
|
252
|
-
|
|
253
|
-
var weekdayNames = [
|
|
254
|
-
'일',
|
|
255
|
-
'월',
|
|
256
|
-
'화',
|
|
257
|
-
'수',
|
|
258
|
-
'목',
|
|
259
|
-
'금',
|
|
260
|
-
'토',
|
|
261
|
-
];
|
|
262
|
-
var text = weekdayNames[index];
|
|
263
|
-
return (
|
|
264
|
-
})),
|
|
265
|
-
records.map(function (a, index) { return (
|
|
266
|
-
showDate && (
|
|
267
|
-
|
|
268
|
-
"Today: ",
|
|
269
|
-
today.format(dateFormat !== null && dateFormat !== void 0 ? dateFormat : DATE_FORMAT))))));
|
|
97
|
+
dayjs.extend(isBetween);
|
|
98
|
+
dayjs.extend(weekOfYear);
|
|
99
|
+
dayjs.extend(localeData);
|
|
100
|
+
/**
|
|
101
|
+
* 달력으로 기간을 선택합니다.
|
|
102
|
+
* @param {CalendarProps}
|
|
103
|
+
* @returns
|
|
104
|
+
*/
|
|
105
|
+
var Calendar = function (_a) {
|
|
106
|
+
var selection = _a.selection, selections = _a.selections, useMoveToYear = _a.useMoveToYear, useMoveToMonth = _a.useMoveToMonth, minDate = _a.minDate, maxDate = _a.maxDate, showDate = _a.showDate, highlightToday = _a.highlightToday, dateFormat = _a.dateFormat, buttonContentProps = _a.buttonContentProps, onChange = _a.onChange;
|
|
107
|
+
var DATE_FORMAT = 'YYYY-MM-DD';
|
|
108
|
+
var _b = React.useState(selection || dayjs().format(dateFormat !== null && dateFormat !== void 0 ? dateFormat : DATE_FORMAT)), date = _b[0], setDate = _b[1];
|
|
109
|
+
var _c = React.useState(selections || []), selectedDates = _c[0], setSelectedDates = _c[1];
|
|
110
|
+
var _d = React.useState([]), records = _d[0], setRecords = _d[1];
|
|
111
|
+
var today = dayjs();
|
|
112
|
+
var updateRecords = React.useCallback(function (basisDate, sDates, minDate, maxDate) {
|
|
113
|
+
setRecords(function (_) {
|
|
114
|
+
var basis = dayjs(basisDate).startOf('month');
|
|
115
|
+
var startWeek = basis.clone().startOf('month').week();
|
|
116
|
+
var newRecords = [];
|
|
117
|
+
var _loop_1 = function (week) {
|
|
118
|
+
var items = Array(7)
|
|
119
|
+
.fill(0)
|
|
120
|
+
.map(function (i, index) {
|
|
121
|
+
var current = dayjs(basis)
|
|
122
|
+
.clone()
|
|
123
|
+
.week(week)
|
|
124
|
+
.startOf('week')
|
|
125
|
+
.add(i + index, 'day');
|
|
126
|
+
var item = {
|
|
127
|
+
date: current.format(dateFormat !== null && dateFormat !== void 0 ? dateFormat : DATE_FORMAT),
|
|
128
|
+
text: current.date().toString(),
|
|
129
|
+
isHoliday: 0 === current.day(),
|
|
130
|
+
isPreviousMonth: current.month() !== basis.month() &&
|
|
131
|
+
week === startWeek,
|
|
132
|
+
isNextMonth: current.month() !== basis.month() &&
|
|
133
|
+
week !== startWeek,
|
|
134
|
+
isToday: current.format(dateFormat !== null && dateFormat !== void 0 ? dateFormat : DATE_FORMAT) ===
|
|
135
|
+
dayjs().format(dateFormat !== null && dateFormat !== void 0 ? dateFormat : DATE_FORMAT),
|
|
136
|
+
isSelected: sDates &&
|
|
137
|
+
sDates.length > 0 &&
|
|
138
|
+
current.isBetween(dayjs(sDates[0]), dayjs(sDates.length === 1
|
|
139
|
+
? sDates[0]
|
|
140
|
+
: sDates[1]), 'day', '[]'),
|
|
141
|
+
isSelectedStart: sDates &&
|
|
142
|
+
sDates.length > 0 &&
|
|
143
|
+
current.format(dateFormat !== null && dateFormat !== void 0 ? dateFormat : DATE_FORMAT) ===
|
|
144
|
+
dayjs(sDates[0]).format(dateFormat !== null && dateFormat !== void 0 ? dateFormat : DATE_FORMAT),
|
|
145
|
+
isSelectedEnd: sDates &&
|
|
146
|
+
sDates.length > 0 &&
|
|
147
|
+
current.format(dateFormat !== null && dateFormat !== void 0 ? dateFormat : DATE_FORMAT) ===
|
|
148
|
+
dayjs(sDates.length === 1
|
|
149
|
+
? sDates[0]
|
|
150
|
+
: sDates[1]).format(dateFormat !== null && dateFormat !== void 0 ? dateFormat : DATE_FORMAT),
|
|
151
|
+
canSelect: !minDate && !maxDate
|
|
152
|
+
? true
|
|
153
|
+
: current.isBetween(minDate ? minDate : '0001-01-01', maxDate ? maxDate : '9999-12-31', undefined, '[]'),
|
|
154
|
+
};
|
|
155
|
+
return item;
|
|
156
|
+
});
|
|
157
|
+
newRecords.push(items);
|
|
158
|
+
if (basis.month() !== dayjs(items[6].date).month()) {
|
|
159
|
+
return "break";
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
// eslint-disable-next-line no-constant-condition
|
|
163
|
+
for (var week = startWeek; true; week++) {
|
|
164
|
+
var state_1 = _loop_1(week);
|
|
165
|
+
if (state_1 === "break")
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
return __spreadArray([], newRecords, true);
|
|
169
|
+
});
|
|
170
|
+
}, []);
|
|
171
|
+
var getButtonTitle = function (date, value, interval) {
|
|
172
|
+
var d = dayjs(DateUtil.ensureDateValue(date)).add(value, interval);
|
|
173
|
+
return "Move to ".concat(d.format('YYYY-MM'));
|
|
174
|
+
};
|
|
175
|
+
var handleClickPrevYear = function () {
|
|
176
|
+
setDate(function (prevState) {
|
|
177
|
+
return dayjs(prevState)
|
|
178
|
+
.add(-1, 'year')
|
|
179
|
+
.format(dateFormat !== null && dateFormat !== void 0 ? dateFormat : DATE_FORMAT);
|
|
180
|
+
});
|
|
181
|
+
};
|
|
182
|
+
var handleClickPrevMonth = function () {
|
|
183
|
+
setDate(function (prevState) {
|
|
184
|
+
return dayjs(prevState)
|
|
185
|
+
.add(-1, 'month')
|
|
186
|
+
.format(dateFormat !== null && dateFormat !== void 0 ? dateFormat : DATE_FORMAT);
|
|
187
|
+
});
|
|
188
|
+
};
|
|
189
|
+
var handleClickNextMonth = function () {
|
|
190
|
+
setDate(function (prevState) {
|
|
191
|
+
return dayjs(prevState)
|
|
192
|
+
.add(1, 'month')
|
|
193
|
+
.format(dateFormat !== null && dateFormat !== void 0 ? dateFormat : DATE_FORMAT);
|
|
194
|
+
});
|
|
195
|
+
};
|
|
196
|
+
var handleClickNextYear = function () {
|
|
197
|
+
setDate(function (prevState) {
|
|
198
|
+
return dayjs(prevState)
|
|
199
|
+
.add(1, 'year')
|
|
200
|
+
.format(dateFormat !== null && dateFormat !== void 0 ? dateFormat : DATE_FORMAT);
|
|
201
|
+
});
|
|
202
|
+
};
|
|
203
|
+
var handleClickToday = function () {
|
|
204
|
+
setDate(today
|
|
205
|
+
// .toDate()
|
|
206
|
+
.format(dateFormat !== null && dateFormat !== void 0 ? dateFormat : DATE_FORMAT));
|
|
207
|
+
};
|
|
208
|
+
var handleClickBox = function (date) {
|
|
209
|
+
setSelectedDates(function (prevState) {
|
|
210
|
+
if (prevState.length === 1) {
|
|
211
|
+
// prevState.push(date);
|
|
212
|
+
// return [...prevState.sort((a, b) => (a > b ? 1 : -1))];
|
|
213
|
+
return __spreadArray(__spreadArray([], prevState, true), [date], false).sort(function (a, b) { return (a > b ? 1 : -1); });
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
return [date];
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
};
|
|
220
|
+
React.useEffect(function () {
|
|
221
|
+
updateRecords(date, selectedDates, minDate, maxDate);
|
|
222
|
+
}, [date, selections, selectedDates, selection, minDate, maxDate]);
|
|
223
|
+
React.useEffect(function () {
|
|
224
|
+
if (onChange) {
|
|
225
|
+
var start = void 0;
|
|
226
|
+
var end = void 0;
|
|
227
|
+
if (selectedDates.length === 0) {
|
|
228
|
+
start = undefined;
|
|
229
|
+
end = undefined;
|
|
230
|
+
}
|
|
231
|
+
else if (selectedDates.length === 1) {
|
|
232
|
+
start = selectedDates[0];
|
|
233
|
+
// end = selectedDates[0];
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
start = selectedDates[0];
|
|
237
|
+
end = selectedDates[1];
|
|
238
|
+
}
|
|
239
|
+
onChange(start, end);
|
|
240
|
+
}
|
|
241
|
+
}, [onChange, selectedDates]);
|
|
242
|
+
return (React.createElement("div", { className: "calendar-container" },
|
|
243
|
+
React.createElement("div", { className: "calendar-title" },
|
|
244
|
+
useMoveToYear && (React.createElement("button", { className: "calendar-button previous-year", onClick: handleClickPrevYear, title: getButtonTitle(date, -1, 'year') }, buttonContentProps === null || buttonContentProps === void 0 ? void 0 : buttonContentProps.previousYear)),
|
|
245
|
+
useMoveToMonth && (React.createElement("button", { className: "calendar-button previous-month", onClick: handleClickPrevMonth, title: getButtonTitle(date, -1, 'month') }, buttonContentProps === null || buttonContentProps === void 0 ? void 0 : buttonContentProps.previousMonth)),
|
|
246
|
+
React.createElement("div", null, dayjs(date).format('YYYY년 M월')),
|
|
247
|
+
useMoveToMonth && (React.createElement("button", { className: "calendar-button next-month", onClick: handleClickNextMonth, title: getButtonTitle(date, 1, 'month') }, buttonContentProps === null || buttonContentProps === void 0 ? void 0 : buttonContentProps.nextMonth)),
|
|
248
|
+
useMoveToYear && (React.createElement("button", { className: "calendar-button next-year", onClick: handleClickNextYear, title: getButtonTitle(date, 1, 'year') }, buttonContentProps === null || buttonContentProps === void 0 ? void 0 : buttonContentProps.nextYear))),
|
|
249
|
+
React.createElement("div", { className: "calendar-week-container" }, dayjs.weekdaysMin(true).map(function (item, index) {
|
|
250
|
+
var weekdayNames = [
|
|
251
|
+
'일',
|
|
252
|
+
'월',
|
|
253
|
+
'화',
|
|
254
|
+
'수',
|
|
255
|
+
'목',
|
|
256
|
+
'금',
|
|
257
|
+
'토',
|
|
258
|
+
];
|
|
259
|
+
var text = weekdayNames[index];
|
|
260
|
+
return (React.createElement(Box, { key: item, text: text, canSelect: true, isHoliday: index === 0 }));
|
|
261
|
+
})),
|
|
262
|
+
records.map(function (a, index) { return (React.createElement("div", { key: (+new Date() + index).toString(), className: "calendar-week-container" }, a.map(function (b) { return (React.createElement(Box, __assign({ key: "".concat(b.date) }, b, { highlightToday: highlightToday, onClick: handleClickBox }))); }))); }),
|
|
263
|
+
showDate && (React.createElement("div", { className: "calendar-bottom-container" },
|
|
264
|
+
React.createElement("button", { onClick: handleClickToday },
|
|
265
|
+
"Today: ",
|
|
266
|
+
today.format(dateFormat !== null && dateFormat !== void 0 ? dateFormat : DATE_FORMAT))))));
|
|
270
267
|
};
|
|
271
268
|
|
|
272
269
|
exports.Calendar = Calendar;
|
package/dist/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../src/Calendar/Box.tsx","../src/Calendar/DateUtil.ts","../src/Calendar/Calendar.tsx"],"sourcesContent":["import React from 'react';\nimport { DateType } from './DateType';\n\ninterface BoxProp {\n /** 날짜 */\n date?: DateType;\n /** 출력 문자열 */\n text?: string | number;\n /** 휴일여부 */\n isHoliday?: boolean;\n /** 이전달 여부 */\n isPreviousMonth?: boolean;\n /** 다음달 여부 */\n isNextMonth?: boolean;\n /** 오늘 여부 */\n isToday?: boolean;\n /** 선택여부 */\n isSelected?: boolean;\n /** 선택 시작 여부 */\n isSelectedStart?: boolean;\n /** 선택 종료 여부 */\n isSelectedEnd?: boolean;\n /** 선택가능여부 */\n canSelect: boolean;\n /** 오늘 하이라이트 여부 */\n highlightToday?: boolean;\n /** 날짜 클릭 처리기 */\n onClick?: (date: DateType) => void;\n}\n\nexport const Box = ({\n date,\n text,\n isHoliday,\n isPreviousMonth,\n isNextMonth,\n isToday,\n isSelected,\n isSelectedStart,\n isSelectedEnd,\n canSelect,\n highlightToday,\n onClick,\n}: BoxProp) => {\n return (\n <div\n className={`calendar-box ${isHoliday ? 'calendar-holiday' : ''} ${\n isPreviousMonth ? 'calendar-previous-month' : ''\n } ${isNextMonth ? 'calendar-next-month' : ''}`}\n onClick={() =>\n onClick && date && canSelect ? onClick(date) : undefined\n }\n >\n <div\n className={`calendar-selectionBox ${\n isSelected ? 'calendar-selectionBox-selected' : ''\n } ${\n isSelectedStart\n ? 'calendar-selectionBox-selected-start'\n : ''\n } ${\n isSelectedEnd ? 'calendar-selectionBox-selected-end' : ''\n } ${canSelect ? '' : 'calendar-box-disabled'}`}\n >\n <div\n className={`${\n isToday && highlightToday ? 'calendar-today' : ''\n }`}\n >\n {text}\n </div>\n </div>\n </div>\n );\n};\n","export class DateUtil {\n /**\n * Date 형식을 확인합니다.\n *\n * @param {(Date | string | number)} value\n * @returns {Date}\n * @memberof Dates\n */\n public static ensureDateValue(value: Date | string | number): Date {\n let dateValue: Date;\n if (typeof value === 'string') {\n const numberValues = value\n .split(/[^0-9]/)\n .map((x) => parseInt(x, 10));\n if (numberValues.length >= 5) {\n dateValue = new Date(\n numberValues[0],\n numberValues[1] - 1,\n numberValues[2],\n numberValues[3],\n numberValues[4],\n numberValues[5],\n );\n } else {\n dateValue = new Date(value);\n }\n } else if (typeof value === 'number') {\n dateValue = new Date(value);\n } else {\n dateValue = value;\n }\n\n return dateValue;\n }\n}\n","import React, { useCallback, useEffect, useState } from 'react';\nimport dayjs from 'dayjs';\nimport { Box } from './Box';\nimport { DateItem } from './DateItem';\nimport { DateType } from './DateType';\nimport { DateUtil } from './DateUtil';\nimport weekOfYear from 'dayjs/plugin/weekOfYear';\nimport isBetween from 'dayjs/plugin/isBetween';\nimport localeData from 'dayjs/plugin/localeData';\n\ndayjs.extend(isBetween);\ndayjs.extend(weekOfYear);\ndayjs.extend(localeData);\n\ninterface ButtonContentProps {\n previousYear?: React.ReactNode;\n previousMonth?: React.ReactNode;\n nextMonth?: React.ReactNode;\n nextYear?: React.ReactNode;\n}\n\ninterface CalendarProps {\n /**\n * 달력 기준일자; 입력된 값이 없으면 오늘을 기준으로 달력을 렌더링합니다.\n *\n * @type {DateType}\n * @memberof CalendarProps\n */\n selection?: DateType;\n /**\n * 선택된 날짜\n *\n * @type {DateType[]}\n * @memberof CalendarProps\n */\n selections?: DateType[];\n /**\n * 연단위 이동 사용\n *\n * @type {boolean}\n * @memberof CalendarProps\n */\n useMoveToYear?: boolean;\n /**\n * 월 단위 이동 사용\n *\n * @type {boolean}\n * @memberof CalendarProps\n */\n useMoveToMonth?: boolean;\n\n /**\n * 선택 가능 날짜 제한 (최소값)\n *\n * @type {DateType}\n * @memberof CalendarProps\n */\n minDate?: DateType;\n /**\n * 선택 가능 날짜 제한 (최대값)\n *\n * @type {DateType}\n * @memberof CalendarProps\n */\n maxDate?: DateType;\n\n /**\n * 날짜 출력\n *\n * @type {boolean}\n * @memberof CalendarProps\n */\n showDate?: boolean;\n /**\n * 오늘 하이라이트 여부\n *\n * @type {boolean}\n * @memberof CalendarProps\n */\n highlightToday?: boolean;\n\n /**\n * 날짜 형식\n *\n * Default: YYYY-MM-DD\n *\n * @type {string}\n * @memberof CalendarProps\n */\n dateFormat?: string;\n\n /**\n * Button contents\n *\n * @type {ButtonContentProps}\n * @memberof CalendarProps\n */\n buttonContentProps?: ButtonContentProps;\n\n /**\n * 선택 변경 처리기\n * - 처리기가 설정되지 않으면 사용자가 선택을 변경할 수 없습니다.\n *\n * @memberof CalendarProps\n */\n onChange?: (start: DateType | undefined, end: DateType | undefined) => void;\n}\n\n/**\n * 달력으로 기간을 선택합니다.\n * @param {CalendarProps}\n * @returns\n */\nexport const Calendar = ({\n selection,\n selections,\n useMoveToYear,\n useMoveToMonth,\n minDate,\n maxDate,\n showDate,\n highlightToday,\n dateFormat,\n buttonContentProps,\n onChange,\n}: CalendarProps) => {\n const DATE_FORMAT = 'YYYY-MM-DD';\n\n const [date, setDate] = useState<DateType>(\n selection || dayjs().format(dateFormat ?? DATE_FORMAT),\n );\n const [selectedDates, setSelectedDates] = useState<DateType[]>(\n selections || [],\n );\n const [records, setRecords] = useState<DateItem[][]>([]);\n const today = dayjs();\n\n const updateRecords = useCallback(\n (\n basisDate: DateType,\n sDates: DateType[],\n minDate?: DateType,\n maxDate?: DateType,\n ) => {\n setRecords((_) => {\n const basis = dayjs(basisDate).startOf('month');\n const startWeek = basis.clone().startOf('month').week();\n const newRecords: DateItem[][] = [];\n // eslint-disable-next-line no-constant-condition\n for (let week = startWeek; true; week++) {\n const items: DateItem[] = Array(7)\n .fill(0)\n .map<DateItem>((i, index) => {\n const current = dayjs(basis)\n .clone()\n .week(week)\n .startOf('week')\n .add(i + index, 'day');\n\n const item: DateItem = {\n date: current.format(dateFormat ?? DATE_FORMAT),\n text: current.date().toString(),\n isHoliday: 0 === current.day(),\n isPreviousMonth:\n current.month() !== basis.month() &&\n week === startWeek,\n isNextMonth:\n current.month() !== basis.month() &&\n week !== startWeek,\n isToday:\n current.format(\n dateFormat ?? DATE_FORMAT,\n ) ===\n dayjs().format(dateFormat ?? DATE_FORMAT),\n isSelected:\n sDates &&\n sDates.length > 0 &&\n current.isBetween(\n dayjs(sDates[0]),\n dayjs(\n sDates.length === 1\n ? sDates[0]\n : sDates[1],\n ),\n 'day',\n '[]',\n ),\n isSelectedStart:\n sDates &&\n sDates.length > 0 &&\n current.format(\n dateFormat ?? DATE_FORMAT,\n ) ===\n dayjs(sDates[0]).format(\n dateFormat ?? DATE_FORMAT,\n ),\n isSelectedEnd:\n sDates &&\n sDates.length > 0 &&\n current.format(\n dateFormat ?? DATE_FORMAT,\n ) ===\n dayjs(\n sDates.length === 1\n ? sDates[0]\n : sDates[1],\n ).format(dateFormat ?? DATE_FORMAT),\n canSelect:\n !minDate && !maxDate\n ? true\n : current.isBetween(\n minDate ? minDate : '0001-01-01',\n maxDate ? maxDate : '9999-12-31',\n undefined,\n '[]',\n ),\n };\n\n return item;\n });\n\n newRecords.push(items);\n if (basis.month() !== dayjs(items[6].date).month()) {\n break;\n }\n }\n\n return [...newRecords];\n });\n },\n [],\n );\n\n const getButtonTitle = (\n date: DateType,\n value: number,\n interval: 'year' | 'month',\n ): string => {\n const d = dayjs(DateUtil.ensureDateValue(date)).add(value, interval);\n\n return `Move to ${d.format('YYYY-MM')}`;\n };\n\n const handleClickPrevYear = () => {\n setDate((prevState) =>\n dayjs(prevState)\n .add(-1, 'year')\n .format(dateFormat ?? DATE_FORMAT),\n );\n };\n\n const handleClickPrevMonth = () => {\n setDate((prevState) =>\n dayjs(prevState)\n .add(-1, 'month')\n .format(dateFormat ?? DATE_FORMAT),\n );\n };\n const handleClickNextMonth = () => {\n setDate((prevState) =>\n dayjs(prevState)\n .add(1, 'month')\n .format(dateFormat ?? DATE_FORMAT),\n );\n };\n const handleClickNextYear = () => {\n setDate((prevState) =>\n dayjs(prevState)\n .add(1, 'year')\n .format(dateFormat ?? DATE_FORMAT),\n );\n };\n\n const handleClickToday = () => {\n setDate(\n today\n // .toDate()\n .format(dateFormat ?? DATE_FORMAT),\n );\n };\n\n const handleClickBox = (date: DateType) => {\n setSelectedDates((prevState) => {\n if (prevState.length === 1) {\n // prevState.push(date);\n // return [...prevState.sort((a, b) => (a > b ? 1 : -1))];\n return [...prevState, date].sort((a, b) => (a > b ? 1 : -1));\n } else {\n return [date];\n }\n });\n };\n\n useEffect(() => {\n updateRecords(date, selectedDates, minDate, maxDate);\n }, [date, selections, selectedDates, selection, minDate, maxDate]);\n\n useEffect(() => {\n if (onChange) {\n let start: DateType | undefined;\n let end: DateType | undefined;\n\n if (selectedDates.length === 0) {\n start = undefined;\n end = undefined;\n } else if (selectedDates.length === 1) {\n start = selectedDates[0];\n // end = selectedDates[0];\n } else {\n start = selectedDates[0];\n end = selectedDates[1];\n }\n\n onChange(start, end);\n }\n }, [onChange, selectedDates]);\n\n return (\n <div className=\"calendar-container\">\n <div className=\"calendar-title\">\n {useMoveToYear && (\n <button\n className=\"calendar-button previous-year\"\n onClick={handleClickPrevYear}\n title={getButtonTitle(date, -1, 'year')}\n >\n {buttonContentProps?.previousYear}\n </button>\n )}\n {useMoveToMonth && (\n <button\n className=\"calendar-button previous-month\"\n onClick={handleClickPrevMonth}\n title={getButtonTitle(date, -1, 'month')}\n >\n {buttonContentProps?.previousMonth}\n </button>\n )}\n <div>{dayjs(date).format('YYYY년 M월')}</div>\n {useMoveToMonth && (\n <button\n className=\"calendar-button next-month\"\n onClick={handleClickNextMonth}\n title={getButtonTitle(date, 1, 'month')}\n >\n {buttonContentProps?.nextMonth}\n </button>\n )}\n {useMoveToYear && (\n <button\n className=\"calendar-button next-year\"\n onClick={handleClickNextYear}\n title={getButtonTitle(date, 1, 'year')}\n >\n {buttonContentProps?.nextYear}\n </button>\n )}\n </div>\n <div className=\"calendar-week-container\">\n {dayjs.weekdaysMin(true).map((item, index) => {\n const weekdayNames = [\n '일',\n '월',\n '화',\n '수',\n '목',\n '금',\n '토',\n ];\n const text = weekdayNames[index];\n return (\n <Box\n key={item}\n text={text}\n canSelect={true}\n isHoliday={index === 0}\n />\n );\n })}\n </div>\n {records.map((a, index) => (\n <div\n key={(+new Date() + index).toString()}\n className=\"calendar-week-container\"\n >\n {a.map((b) => (\n <Box\n key={`${b.date}`}\n {...b}\n highlightToday={highlightToday}\n onClick={handleClickBox}\n />\n ))}\n </div>\n ))}\n {showDate && (\n <div className=\"calendar-bottom-container\">\n <button onClick={handleClickToday}>\n Today: {today.format(dateFormat ?? DATE_FORMAT)}\n </button>\n </div>\n )}\n </div>\n );\n};\nexport default Calendar;\n"],"names":["React","dayjs","isBetween","weekOfYear","localeData","useState","useCallback","useEffect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../src/Calendar/Box.tsx","../src/Calendar/DateUtil.ts","../src/Calendar/Calendar.tsx"],"sourcesContent":["import React from 'react';\nimport { DateType } from './DateType';\n\ninterface BoxProp {\n /** 날짜 */\n date?: DateType;\n /** 출력 문자열 */\n text?: string | number;\n /** 휴일여부 */\n isHoliday?: boolean;\n /** 이전달 여부 */\n isPreviousMonth?: boolean;\n /** 다음달 여부 */\n isNextMonth?: boolean;\n /** 오늘 여부 */\n isToday?: boolean;\n /** 선택여부 */\n isSelected?: boolean;\n /** 선택 시작 여부 */\n isSelectedStart?: boolean;\n /** 선택 종료 여부 */\n isSelectedEnd?: boolean;\n /** 선택가능여부 */\n canSelect: boolean;\n /** 오늘 하이라이트 여부 */\n highlightToday?: boolean;\n /** 날짜 클릭 처리기 */\n onClick?: (date: DateType) => void;\n}\n\nexport const Box = ({\n date,\n text,\n isHoliday,\n isPreviousMonth,\n isNextMonth,\n isToday,\n isSelected,\n isSelectedStart,\n isSelectedEnd,\n canSelect,\n highlightToday,\n onClick,\n}: BoxProp) => {\n return (\n <div\n className={`calendar-box ${isHoliday ? 'calendar-holiday' : ''} ${\n isPreviousMonth ? 'calendar-previous-month' : ''\n } ${isNextMonth ? 'calendar-next-month' : ''}`}\n onClick={() =>\n onClick && date && canSelect ? onClick(date) : undefined\n }\n >\n <div\n className={`calendar-selectionBox ${\n isSelected ? 'calendar-selectionBox-selected' : ''\n } ${\n isSelectedStart\n ? 'calendar-selectionBox-selected-start'\n : ''\n } ${\n isSelectedEnd ? 'calendar-selectionBox-selected-end' : ''\n } ${canSelect ? '' : 'calendar-box-disabled'}`}\n >\n <div\n className={`${\n isToday && highlightToday ? 'calendar-today' : ''\n }`}\n >\n {text}\n </div>\n </div>\n </div>\n );\n};\n","export class DateUtil {\n /**\n * Date 형식을 확인합니다.\n *\n * @param {(Date | string | number)} value\n * @returns {Date}\n * @memberof Dates\n */\n public static ensureDateValue(value: Date | string | number): Date {\n let dateValue: Date;\n if (typeof value === 'string') {\n const numberValues = value\n .split(/[^0-9]/)\n .map((x) => parseInt(x, 10));\n if (numberValues.length >= 5) {\n dateValue = new Date(\n numberValues[0],\n numberValues[1] - 1,\n numberValues[2],\n numberValues[3],\n numberValues[4],\n numberValues[5],\n );\n } else {\n dateValue = new Date(value);\n }\n } else if (typeof value === 'number') {\n dateValue = new Date(value);\n } else {\n dateValue = value;\n }\n\n return dateValue;\n }\n}\n","import React, { useCallback, useEffect, useState } from 'react';\nimport dayjs from 'dayjs';\nimport { Box } from './Box';\nimport { DateItem } from './DateItem';\nimport { DateType } from './DateType';\nimport { DateUtil } from './DateUtil';\nimport weekOfYear from 'dayjs/plugin/weekOfYear';\nimport isBetween from 'dayjs/plugin/isBetween';\nimport localeData from 'dayjs/plugin/localeData';\n\ndayjs.extend(isBetween);\ndayjs.extend(weekOfYear);\ndayjs.extend(localeData);\n\ninterface ButtonContentProps {\n previousYear?: React.ReactNode;\n previousMonth?: React.ReactNode;\n nextMonth?: React.ReactNode;\n nextYear?: React.ReactNode;\n}\n\ninterface CalendarProps {\n /**\n * 달력 기준일자; 입력된 값이 없으면 오늘을 기준으로 달력을 렌더링합니다.\n *\n * @type {DateType}\n * @memberof CalendarProps\n */\n selection?: DateType;\n /**\n * 선택된 날짜\n *\n * @type {DateType[]}\n * @memberof CalendarProps\n */\n selections?: DateType[];\n /**\n * 연단위 이동 사용\n *\n * @type {boolean}\n * @memberof CalendarProps\n */\n useMoveToYear?: boolean;\n /**\n * 월 단위 이동 사용\n *\n * @type {boolean}\n * @memberof CalendarProps\n */\n useMoveToMonth?: boolean;\n\n /**\n * 선택 가능 날짜 제한 (최소값)\n *\n * @type {DateType}\n * @memberof CalendarProps\n */\n minDate?: DateType;\n /**\n * 선택 가능 날짜 제한 (최대값)\n *\n * @type {DateType}\n * @memberof CalendarProps\n */\n maxDate?: DateType;\n\n /**\n * 날짜 출력\n *\n * @type {boolean}\n * @memberof CalendarProps\n */\n showDate?: boolean;\n /**\n * 오늘 하이라이트 여부\n *\n * @type {boolean}\n * @memberof CalendarProps\n */\n highlightToday?: boolean;\n\n /**\n * 날짜 형식\n *\n * Default: YYYY-MM-DD\n *\n * @type {string}\n * @memberof CalendarProps\n */\n dateFormat?: string;\n\n /**\n * Button contents\n *\n * @type {ButtonContentProps}\n * @memberof CalendarProps\n */\n buttonContentProps?: ButtonContentProps;\n\n /**\n * 선택 변경 처리기\n * - 처리기가 설정되지 않으면 사용자가 선택을 변경할 수 없습니다.\n *\n * @memberof CalendarProps\n */\n onChange?: (start: DateType | undefined, end: DateType | undefined) => void;\n}\n\n/**\n * 달력으로 기간을 선택합니다.\n * @param {CalendarProps}\n * @returns\n */\nexport const Calendar = ({\n selection,\n selections,\n useMoveToYear,\n useMoveToMonth,\n minDate,\n maxDate,\n showDate,\n highlightToday,\n dateFormat,\n buttonContentProps,\n onChange,\n}: CalendarProps) => {\n const DATE_FORMAT = 'YYYY-MM-DD';\n\n const [date, setDate] = useState<DateType>(\n selection || dayjs().format(dateFormat ?? DATE_FORMAT),\n );\n const [selectedDates, setSelectedDates] = useState<DateType[]>(\n selections || [],\n );\n const [records, setRecords] = useState<DateItem[][]>([]);\n const today = dayjs();\n\n const updateRecords = useCallback(\n (\n basisDate: DateType,\n sDates: DateType[],\n minDate?: DateType,\n maxDate?: DateType,\n ) => {\n setRecords((_) => {\n const basis = dayjs(basisDate).startOf('month');\n const startWeek = basis.clone().startOf('month').week();\n const newRecords: DateItem[][] = [];\n // eslint-disable-next-line no-constant-condition\n for (let week = startWeek; true; week++) {\n const items: DateItem[] = Array(7)\n .fill(0)\n .map<DateItem>((i, index) => {\n const current = dayjs(basis)\n .clone()\n .week(week)\n .startOf('week')\n .add(i + index, 'day');\n\n const item: DateItem = {\n date: current.format(dateFormat ?? DATE_FORMAT),\n text: current.date().toString(),\n isHoliday: 0 === current.day(),\n isPreviousMonth:\n current.month() !== basis.month() &&\n week === startWeek,\n isNextMonth:\n current.month() !== basis.month() &&\n week !== startWeek,\n isToday:\n current.format(\n dateFormat ?? DATE_FORMAT,\n ) ===\n dayjs().format(dateFormat ?? DATE_FORMAT),\n isSelected:\n sDates &&\n sDates.length > 0 &&\n current.isBetween(\n dayjs(sDates[0]),\n dayjs(\n sDates.length === 1\n ? sDates[0]\n : sDates[1],\n ),\n 'day',\n '[]',\n ),\n isSelectedStart:\n sDates &&\n sDates.length > 0 &&\n current.format(\n dateFormat ?? DATE_FORMAT,\n ) ===\n dayjs(sDates[0]).format(\n dateFormat ?? DATE_FORMAT,\n ),\n isSelectedEnd:\n sDates &&\n sDates.length > 0 &&\n current.format(\n dateFormat ?? DATE_FORMAT,\n ) ===\n dayjs(\n sDates.length === 1\n ? sDates[0]\n : sDates[1],\n ).format(dateFormat ?? DATE_FORMAT),\n canSelect:\n !minDate && !maxDate\n ? true\n : current.isBetween(\n minDate ? minDate : '0001-01-01',\n maxDate ? maxDate : '9999-12-31',\n undefined,\n '[]',\n ),\n };\n\n return item;\n });\n\n newRecords.push(items);\n if (basis.month() !== dayjs(items[6].date).month()) {\n break;\n }\n }\n\n return [...newRecords];\n });\n },\n [],\n );\n\n const getButtonTitle = (\n date: DateType,\n value: number,\n interval: 'year' | 'month',\n ): string => {\n const d = dayjs(DateUtil.ensureDateValue(date)).add(value, interval);\n\n return `Move to ${d.format('YYYY-MM')}`;\n };\n\n const handleClickPrevYear = () => {\n setDate((prevState) =>\n dayjs(prevState)\n .add(-1, 'year')\n .format(dateFormat ?? DATE_FORMAT),\n );\n };\n\n const handleClickPrevMonth = () => {\n setDate((prevState) =>\n dayjs(prevState)\n .add(-1, 'month')\n .format(dateFormat ?? DATE_FORMAT),\n );\n };\n const handleClickNextMonth = () => {\n setDate((prevState) =>\n dayjs(prevState)\n .add(1, 'month')\n .format(dateFormat ?? DATE_FORMAT),\n );\n };\n const handleClickNextYear = () => {\n setDate((prevState) =>\n dayjs(prevState)\n .add(1, 'year')\n .format(dateFormat ?? DATE_FORMAT),\n );\n };\n\n const handleClickToday = () => {\n setDate(\n today\n // .toDate()\n .format(dateFormat ?? DATE_FORMAT),\n );\n };\n\n const handleClickBox = (date: DateType) => {\n setSelectedDates((prevState) => {\n if (prevState.length === 1) {\n // prevState.push(date);\n // return [...prevState.sort((a, b) => (a > b ? 1 : -1))];\n return [...prevState, date].sort((a, b) => (a > b ? 1 : -1));\n } else {\n return [date];\n }\n });\n };\n\n useEffect(() => {\n updateRecords(date, selectedDates, minDate, maxDate);\n }, [date, selections, selectedDates, selection, minDate, maxDate]);\n\n useEffect(() => {\n if (onChange) {\n let start: DateType | undefined;\n let end: DateType | undefined;\n\n if (selectedDates.length === 0) {\n start = undefined;\n end = undefined;\n } else if (selectedDates.length === 1) {\n start = selectedDates[0];\n // end = selectedDates[0];\n } else {\n start = selectedDates[0];\n end = selectedDates[1];\n }\n\n onChange(start, end);\n }\n }, [onChange, selectedDates]);\n\n return (\n <div className=\"calendar-container\">\n <div className=\"calendar-title\">\n {useMoveToYear && (\n <button\n className=\"calendar-button previous-year\"\n onClick={handleClickPrevYear}\n title={getButtonTitle(date, -1, 'year')}\n >\n {buttonContentProps?.previousYear}\n </button>\n )}\n {useMoveToMonth && (\n <button\n className=\"calendar-button previous-month\"\n onClick={handleClickPrevMonth}\n title={getButtonTitle(date, -1, 'month')}\n >\n {buttonContentProps?.previousMonth}\n </button>\n )}\n <div>{dayjs(date).format('YYYY년 M월')}</div>\n {useMoveToMonth && (\n <button\n className=\"calendar-button next-month\"\n onClick={handleClickNextMonth}\n title={getButtonTitle(date, 1, 'month')}\n >\n {buttonContentProps?.nextMonth}\n </button>\n )}\n {useMoveToYear && (\n <button\n className=\"calendar-button next-year\"\n onClick={handleClickNextYear}\n title={getButtonTitle(date, 1, 'year')}\n >\n {buttonContentProps?.nextYear}\n </button>\n )}\n </div>\n <div className=\"calendar-week-container\">\n {dayjs.weekdaysMin(true).map((item, index) => {\n const weekdayNames = [\n '일',\n '월',\n '화',\n '수',\n '목',\n '금',\n '토',\n ];\n const text = weekdayNames[index];\n return (\n <Box\n key={item}\n text={text}\n canSelect={true}\n isHoliday={index === 0}\n />\n );\n })}\n </div>\n {records.map((a, index) => (\n <div\n key={(+new Date() + index).toString()}\n className=\"calendar-week-container\"\n >\n {a.map((b) => (\n <Box\n key={`${b.date}`}\n {...b}\n highlightToday={highlightToday}\n onClick={handleClickBox}\n />\n ))}\n </div>\n ))}\n {showDate && (\n <div className=\"calendar-bottom-container\">\n <button onClick={handleClickToday}>\n Today: {today.format(dateFormat ?? DATE_FORMAT)}\n </button>\n </div>\n )}\n </div>\n );\n};\nexport default Calendar;\n"],"names":["useState","useCallback","useEffect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BO,IAAM,GAAG,GAAG,UAAC,EAaV,EAAA;AAZN,IAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,EACJ,IAAI,GAAA,EAAA,CAAA,IAAA,EACJ,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,eAAe,GAAA,EAAA,CAAA,eAAA,EACf,WAAW,GAAA,EAAA,CAAA,WAAA,EACX,OAAO,GAAA,EAAA,CAAA,OAAA,EACP,UAAU,GAAA,EAAA,CAAA,UAAA,EACV,eAAe,GAAA,EAAA,CAAA,eAAA,EACf,aAAa,GAAA,EAAA,CAAA,aAAA,EACb,SAAS,eAAA,EACT,cAAc,GAAA,EAAA,CAAA,cAAA,EACd,OAAO,GAAA,EAAA,CAAA,OAAA;AAEP,IAAA,QACI,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,eAAA,CAAA,MAAA,CAAgB,SAAS,GAAG,kBAAkB,GAAG,EAAE,EAAA,GAAA,CAAA,CAAA,MAAA,CAC1D,eAAe,GAAG,yBAAyB,GAAG,EAAE,EAAA,GAAA,CAAA,CAAA,MAAA,CAChD,WAAW,GAAG,qBAAqB,GAAG,EAAE,CAAE,EAC9C,OAAO,EAAE,YAAA;AACL,YAAA,OAAA,OAAO,IAAI,IAAI,IAAI,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS;QAAxD,CAAwD,EAAA;AAG5D,QAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,wBAAA,CAAA,MAAA,CACP,UAAU,GAAG,gCAAgC,GAAG,EAAE,cAElD;AACI,kBAAE;kBACA,EAAE,EAAA,GAAA,CAAA,CAAA,MAAA,CAER,aAAa,GAAG,oCAAoC,GAAG,EAAE,EAAA,GAAA,CAAA,CAAA,MAAA,CACzD,SAAS,GAAG,EAAE,GAAG,uBAAuB,CAAE,EAAA;YAE9C,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,EAAA,CAAA,MAAA,CACP,OAAO,IAAI,cAAc,GAAG,gBAAgB,GAAG,EAAE,CACnD,EAAA,EAED,IAAI,CACH,CACJ,CACJ;AAEd,CAAC;;AC1ED,IAAA,QAAA,kBAAA,YAAA;AAAA,IAAA,SAAA,QAAA,GAAA;IAkCA;AAjCI;;;;;;AAMG;IACW,QAAA,CAAA,eAAe,GAA7B,UAA8B,KAA6B,EAAA;AACvD,QAAA,IAAI,SAAe;AACnB,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,IAAM,YAAY,GAAG;iBAChB,KAAK,CAAC,QAAQ;AACd,iBAAA,GAAG,CAAC,UAAC,CAAC,EAAA,EAAK,OAAA,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA,CAAf,CAAe,CAAC;AAChC,YAAA,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE;AAC1B,gBAAA,SAAS,GAAG,IAAI,IAAI,CAChB,YAAY,CAAC,CAAC,CAAC,EACf,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,EACnB,YAAY,CAAC,CAAC,CAAC,EACf,YAAY,CAAC,CAAC,CAAC,EACf,YAAY,CAAC,CAAC,CAAC,EACf,YAAY,CAAC,CAAC,CAAC,CAClB;YACL;iBAAO;AACH,gBAAA,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;YAC/B;QACJ;AAAO,aAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAClC,YAAA,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;QAC/B;aAAO;YACH,SAAS,GAAG,KAAK;QACrB;AAEA,QAAA,OAAO,SAAS;IACpB,CAAC;IACL,OAAA,QAAC;AAAD,CAAC,EAlCD;;ACUA,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;AACvB,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC;AACxB,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC;AAgGxB;;;;AAIG;AACI,IAAM,QAAQ,GAAG,UAAC,EAYT,EAAA;AAXZ,IAAA,IAAA,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,UAAU,GAAA,EAAA,CAAA,UAAA,EACV,aAAa,GAAA,EAAA,CAAA,aAAA,EACb,cAAc,GAAA,EAAA,CAAA,cAAA,EACd,OAAO,aAAA,EACP,OAAO,GAAA,EAAA,CAAA,OAAA,EACP,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,cAAc,GAAA,EAAA,CAAA,cAAA,EACd,UAAU,GAAA,EAAA,CAAA,UAAA,EACV,kBAAkB,GAAA,EAAA,CAAA,kBAAA,EAClB,QAAQ,GAAA,EAAA,CAAA,QAAA;IAER,IAAM,WAAW,GAAG,YAAY;IAE1B,IAAA,EAAA,GAAkBA,cAAQ,CAC5B,SAAS,IAAI,KAAK,EAAE,CAAC,MAAM,CAAC,UAAU,KAAA,IAAA,IAAV,UAAU,KAAA,MAAA,GAAV,UAAU,GAAI,WAAW,CAAC,CACzD,EAFM,IAAI,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,OAAO,GAAA,EAAA,CAAA,CAAA,CAEnB;AACK,IAAA,IAAA,EAAA,GAAoCA,cAAQ,CAC9C,UAAU,IAAI,EAAE,CACnB,EAFM,aAAa,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,gBAAgB,QAErC;IACK,IAAA,EAAA,GAAwBA,cAAQ,CAAe,EAAE,CAAC,EAAjD,OAAO,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,UAAU,GAAA,EAAA,CAAA,CAAA,CAA8B;AACxD,IAAA,IAAM,KAAK,GAAG,KAAK,EAAE;IAErB,IAAM,aAAa,GAAGC,iBAAW,CAC7B,UACI,SAAmB,EACnB,MAAkB,EAClB,OAAkB,EAClB,OAAkB,EAAA;QAElB,UAAU,CAAC,UAAC,CAAC,EAAA;YACT,IAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;AAC/C,YAAA,IAAM,SAAS,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE;YACvD,IAAM,UAAU,GAAiB,EAAE;oCAE1B,IAAI,EAAA;AACT,gBAAA,IAAM,KAAK,GAAe,KAAK,CAAC,CAAC;qBAC5B,IAAI,CAAC,CAAC;AACN,qBAAA,GAAG,CAAW,UAAC,CAAC,EAAE,KAAK,EAAA;AACpB,oBAAA,IAAM,OAAO,GAAG,KAAK,CAAC,KAAK;AACtB,yBAAA,KAAK;yBACL,IAAI,CAAC,IAAI;yBACT,OAAO,CAAC,MAAM;AACd,yBAAA,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC;AAE1B,oBAAA,IAAM,IAAI,GAAa;AACnB,wBAAA,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,KAAA,IAAA,IAAV,UAAU,KAAA,MAAA,GAAV,UAAU,GAAI,WAAW,CAAC;AAC/C,wBAAA,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;AAC/B,wBAAA,SAAS,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,EAAE;wBAC9B,eAAe,EACX,OAAO,CAAC,KAAK,EAAE,KAAK,KAAK,CAAC,KAAK,EAAE;AACjC,4BAAA,IAAI,KAAK,SAAS;wBACtB,WAAW,EACP,OAAO,CAAC,KAAK,EAAE,KAAK,KAAK,CAAC,KAAK,EAAE;AACjC,4BAAA,IAAI,KAAK,SAAS;AACtB,wBAAA,OAAO,EACH,OAAO,CAAC,MAAM,CACV,UAAU,KAAA,IAAA,IAAV,UAAU,KAAA,MAAA,GAAV,UAAU,GAAI,WAAW,CAC5B;4BACD,KAAK,EAAE,CAAC,MAAM,CAAC,UAAU,KAAA,IAAA,IAAV,UAAU,KAAA,MAAA,GAAV,UAAU,GAAI,WAAW,CAAC;AAC7C,wBAAA,UAAU,EACN,MAAM;4BACN,MAAM,CAAC,MAAM,GAAG,CAAC;AACjB,4BAAA,OAAO,CAAC,SAAS,CACb,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAChB,KAAK,CACD,MAAM,CAAC,MAAM,KAAK;AACd,kCAAE,MAAM,CAAC,CAAC;kCACR,MAAM,CAAC,CAAC,CAAC,CAClB,EACD,KAAK,EACL,IAAI,CACP;AACL,wBAAA,eAAe,EACX,MAAM;4BACN,MAAM,CAAC,MAAM,GAAG,CAAC;4BACjB,OAAO,CAAC,MAAM,CACV,UAAU,KAAA,IAAA,IAAV,UAAU,KAAA,MAAA,GAAV,UAAU,GAAI,WAAW,CAC5B;AACG,gCAAA,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CACnB,UAAU,aAAV,UAAU,KAAA,MAAA,GAAV,UAAU,GAAI,WAAW,CAC5B;AACT,wBAAA,aAAa,EACT,MAAM;4BACN,MAAM,CAAC,MAAM,GAAG,CAAC;4BACjB,OAAO,CAAC,MAAM,CACV,UAAU,KAAA,IAAA,IAAV,UAAU,KAAA,MAAA,GAAV,UAAU,GAAI,WAAW,CAC5B;AACG,gCAAA,KAAK,CACD,MAAM,CAAC,MAAM,KAAK;AACd,sCAAE,MAAM,CAAC,CAAC;AACV,sCAAE,MAAM,CAAC,CAAC,CAAC,CAClB,CAAC,MAAM,CAAC,UAAU,aAAV,UAAU,KAAA,MAAA,GAAV,UAAU,GAAI,WAAW,CAAC;AAC3C,wBAAA,SAAS,EACL,CAAC,OAAO,IAAI,CAAC;AACT,8BAAE;AACF,8BAAE,OAAO,CAAC,SAAS,CACb,OAAO,GAAG,OAAO,GAAG,YAAY,EAChC,OAAO,GAAG,OAAO,GAAG,YAAY,EAChC,SAAS,EACT,IAAI,CACP;qBACd;AAED,oBAAA,OAAO,IAAI;AACf,gBAAA,CAAC,CAAC;AAEN,gBAAA,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;AACtB,gBAAA,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;;gBAEpD;;;YA3EJ,KAAK,IAAI,IAAI,GAAG,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAA;sCAA9B,IAAI,CAAA;;;AA4EZ,YAAA;AAED,YAAA,OAAA,aAAA,CAAA,EAAA,EAAW,UAAU,EAAA,IAAA,CAAA;AACzB,QAAA,CAAC,CAAC;IACN,CAAC,EACD,EAAE,CACL;AAED,IAAA,IAAM,cAAc,GAAG,UACnB,IAAc,EACd,KAAa,EACb,QAA0B,EAAA;AAE1B,QAAA,IAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC;QAEpE,OAAO,UAAA,CAAA,MAAA,CAAW,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAE;AAC3C,IAAA,CAAC;AAED,IAAA,IAAM,mBAAmB,GAAG,YAAA;QACxB,OAAO,CAAC,UAAC,SAAS,EAAA;YACd,OAAA,KAAK,CAAC,SAAS;AACV,iBAAA,GAAG,CAAC,EAAE,EAAE,MAAM;iBACd,MAAM,CAAC,UAAU,KAAA,IAAA,IAAV,UAAU,cAAV,UAAU,GAAI,WAAW,CAAC;AAFtC,QAAA,CAEsC,CACzC;AACL,IAAA,CAAC;AAED,IAAA,IAAM,oBAAoB,GAAG,YAAA;QACzB,OAAO,CAAC,UAAC,SAAS,EAAA;YACd,OAAA,KAAK,CAAC,SAAS;AACV,iBAAA,GAAG,CAAC,EAAE,EAAE,OAAO;iBACf,MAAM,CAAC,UAAU,KAAA,IAAA,IAAV,UAAU,cAAV,UAAU,GAAI,WAAW,CAAC;AAFtC,QAAA,CAEsC,CACzC;AACL,IAAA,CAAC;AACD,IAAA,IAAM,oBAAoB,GAAG,YAAA;QACzB,OAAO,CAAC,UAAC,SAAS,EAAA;YACd,OAAA,KAAK,CAAC,SAAS;AACV,iBAAA,GAAG,CAAC,CAAC,EAAE,OAAO;iBACd,MAAM,CAAC,UAAU,KAAA,IAAA,IAAV,UAAU,cAAV,UAAU,GAAI,WAAW,CAAC;AAFtC,QAAA,CAEsC,CACzC;AACL,IAAA,CAAC;AACD,IAAA,IAAM,mBAAmB,GAAG,YAAA;QACxB,OAAO,CAAC,UAAC,SAAS,EAAA;YACd,OAAA,KAAK,CAAC,SAAS;AACV,iBAAA,GAAG,CAAC,CAAC,EAAE,MAAM;iBACb,MAAM,CAAC,UAAU,KAAA,IAAA,IAAV,UAAU,cAAV,UAAU,GAAI,WAAW,CAAC;AAFtC,QAAA,CAEsC,CACzC;AACL,IAAA,CAAC;AAED,IAAA,IAAM,gBAAgB,GAAG,YAAA;AACrB,QAAA,OAAO,CACH;;aAEK,MAAM,CAAC,UAAU,KAAA,IAAA,IAAV,UAAU,KAAA,MAAA,GAAV,UAAU,GAAI,WAAW,CAAC,CACzC;AACL,IAAA,CAAC;IAED,IAAM,cAAc,GAAG,UAAC,IAAc,EAAA;QAClC,gBAAgB,CAAC,UAAC,SAAS,EAAA;AACvB,YAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;;;AAGxB,gBAAA,OAAO,aAAA,CAAA,aAAA,CAAA,EAAA,EAAI,SAAS,EAAA,IAAA,CAAA,EAAA,CAAE,IAAI,CAAA,EAAA,KAAA,CAAA,CAAE,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,EAAA,EAAK,QAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAC,CAAhB,CAAgB,CAAC;YAChE;iBAAO;gBACH,OAAO,CAAC,IAAI,CAAC;YACjB;AACJ,QAAA,CAAC,CAAC;AACN,IAAA,CAAC;AAED,IAAAC,eAAS,CAAC,YAAA;QACN,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC;AACxD,IAAA,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAElE,IAAAA,eAAS,CAAC,YAAA;QACN,IAAI,QAAQ,EAAE;YACV,IAAI,KAAK,SAAsB;YAC/B,IAAI,GAAG,SAAsB;AAE7B,YAAA,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC5B,KAAK,GAAG,SAAS;gBACjB,GAAG,GAAG,SAAS;YACnB;AAAO,iBAAA,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;AACnC,gBAAA,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC;;YAE5B;iBAAO;AACH,gBAAA,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC;AACxB,gBAAA,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC;YAC1B;AAEA,YAAA,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;QACxB;AACJ,IAAA,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;AAE7B,IAAA,QACI,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,oBAAoB,EAAA;QAC/B,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,gBAAgB,EAAA;AAC1B,YAAA,aAAa,KACV,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EACI,SAAS,EAAC,+BAA+B,EACzC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAA,EAEtC,kBAAkB,KAAA,IAAA,IAAlB,kBAAkB,KAAA,MAAA,GAAA,MAAA,GAAlB,kBAAkB,CAAE,YAAY,CAC5B,CACZ;AACA,YAAA,cAAc,KACX,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EACI,SAAS,EAAC,gCAAgC,EAC1C,OAAO,EAAE,oBAAoB,EAC7B,KAAK,EAAE,cAAc,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,EAAA,EAEvC,kBAAkB,KAAA,IAAA,IAAlB,kBAAkB,KAAA,MAAA,GAAA,MAAA,GAAlB,kBAAkB,CAAE,aAAa,CAC7B,CACZ;YACD,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA,EAAM,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAO;AAC1C,YAAA,cAAc,KACX,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EACI,SAAS,EAAC,4BAA4B,EACtC,OAAO,EAAE,oBAAoB,EAC7B,KAAK,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAA,EAEtC,kBAAkB,KAAA,IAAA,IAAlB,kBAAkB,KAAA,MAAA,GAAA,MAAA,GAAlB,kBAAkB,CAAE,SAAS,CACzB,CACZ;AACA,YAAA,aAAa,KACV,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EACI,SAAS,EAAC,2BAA2B,EACrC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,IAErC,kBAAkB,KAAA,IAAA,IAAlB,kBAAkB,KAAA,MAAA,GAAA,MAAA,GAAlB,kBAAkB,CAAE,QAAQ,CACxB,CACZ,CACC;AACN,QAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,yBAAyB,EAAA,EACnC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,KAAK,EAAA;AACrC,YAAA,IAAM,YAAY,GAAG;gBACjB,GAAG;gBACH,GAAG;gBACH,GAAG;gBACH,GAAG;gBACH,GAAG;gBACH,GAAG;gBACH,GAAG;aACN;AACD,YAAA,IAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC;YAChC,QACI,oBAAC,GAAG,EAAA,EACA,GAAG,EAAE,IAAI,EACT,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,IAAI,EACf,SAAS,EAAE,KAAK,KAAK,CAAC,EAAA,CACxB;AAEV,QAAA,CAAC,CAAC,CACA;AACL,QAAA,OAAO,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,KAAK,EAAA,EAAK,QACvB,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACI,GAAG,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,EACrC,SAAS,EAAC,yBAAyB,EAAA,EAElC,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,EAAA,EAAK,QACV,KAAA,CAAA,aAAA,CAAC,GAAG,EAAA,QAAA,CAAA,EACA,GAAG,EAAE,EAAA,CAAA,MAAA,CAAG,CAAC,CAAC,IAAI,CAAE,IACZ,CAAC,EAAA,EACL,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,cAAc,EAAA,CAAA,CACzB,EACL,CAPa,CAOb,CAAC,CACA,EACT,CAd0B,CAc1B,CAAC;AACD,QAAA,QAAQ,KACL,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,2BAA2B,EAAA;YACtC,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EAAQ,OAAO,EAAE,gBAAgB,EAAA;;AACrB,gBAAA,KAAK,CAAC,MAAM,CAAC,UAAU,KAAA,IAAA,IAAV,UAAU,KAAA,MAAA,GAAV,UAAU,GAAI,WAAW,CAAC,CAC1C,CACP,CACT,CACC;AAEd;;;;;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { default as Calendar } from './Calendar';
|
|
2
|
-
export * from './Calendar';
|
|
1
|
+
export { default as Calendar } from './Calendar';
|
|
2
|
+
export * from './Calendar';
|