@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/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 (React__default["default"].createElement("div", { className: "calendar-box ".concat(isHoliday ? 'calendar-holiday' : '', " ").concat(isPreviousMonth ? 'calendar-previous-month' : '', " ").concat(isNextMonth ? 'calendar-next-month' : ''), onClick: function () {
58
- return onClick && date && canSelect ? onClick(date) : undefined;
59
- } },
60
- React__default["default"].createElement("div", { className: "calendar-selectionBox ".concat(isSelected ? 'calendar-selectionBox-selected' : '', " ").concat(isSelectedStart
61
- ? 'calendar-selectionBox-selected-start'
62
- : '', " ").concat(isSelectedEnd ? 'calendar-selectionBox-selected-end' : '', " ").concat(canSelect ? '' : 'calendar-box-disabled') },
63
- React__default["default"].createElement("div", { className: "".concat(isToday && highlightToday ? 'calendar-today' : '') }, text))));
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
- dayjs__default["default"].extend(isBetween__default["default"]);
101
- dayjs__default["default"].extend(weekOfYear__default["default"]);
102
- dayjs__default["default"].extend(localeData__default["default"]);
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 || dayjs__default["default"]().format(dateFormat !== null && dateFormat !== void 0 ? dateFormat : DATE_FORMAT)), date = _b[0], setDate = _b[1];
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 = dayjs__default["default"]();
115
- var updateRecords = React.useCallback(function (basisDate, sDates, minDate, maxDate) {
116
- setRecords(function (_) {
117
- var basis = dayjs__default["default"](basisDate).startOf('month');
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 = dayjs__default["default"](basis)
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
- dayjs__default["default"]().format(dateFormat !== null && dateFormat !== void 0 ? dateFormat : DATE_FORMAT),
139
- isSelected: sDates &&
140
- sDates.length > 0 &&
141
- current.isBetween(dayjs__default["default"](sDates[0]), dayjs__default["default"](sDates.length === 1
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
- dayjs__default["default"](sDates[0]).format(dateFormat !== null && dateFormat !== void 0 ? dateFormat : DATE_FORMAT),
148
- isSelectedEnd: sDates &&
149
- sDates.length > 0 &&
150
- current.format(dateFormat !== null && dateFormat !== void 0 ? dateFormat : DATE_FORMAT) ===
151
- dayjs__default["default"](sDates.length === 1
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() !== dayjs__default["default"](items[6].date).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 = dayjs__default["default"](DateUtil.ensureDateValue(date)).add(value, interval);
176
- return "Move to ".concat(d.format('YYYY-MM'));
177
- };
178
- var handleClickPrevYear = function () {
179
- setDate(function (prevState) {
180
- return dayjs__default["default"](prevState)
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 dayjs__default["default"](prevState)
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 dayjs__default["default"](prevState)
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 dayjs__default["default"](prevState)
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 (React__default["default"].createElement("div", { className: "calendar-container" },
246
- React__default["default"].createElement("div", { className: "calendar-title" },
247
- useMoveToYear && (React__default["default"].createElement("button", { className: "calendar-button previous-year", onClick: handleClickPrevYear, title: getButtonTitle(date, -1, 'year') }, buttonContentProps === null || buttonContentProps === void 0 ? void 0 : buttonContentProps.previousYear)),
248
- useMoveToMonth && (React__default["default"].createElement("button", { className: "calendar-button previous-month", onClick: handleClickPrevMonth, title: getButtonTitle(date, -1, 'month') }, buttonContentProps === null || buttonContentProps === void 0 ? void 0 : buttonContentProps.previousMonth)),
249
- React__default["default"].createElement("div", null, dayjs__default["default"](date).format('YYYY년 M월')),
250
- useMoveToMonth && (React__default["default"].createElement("button", { className: "calendar-button next-month", onClick: handleClickNextMonth, title: getButtonTitle(date, 1, 'month') }, buttonContentProps === null || buttonContentProps === void 0 ? void 0 : buttonContentProps.nextMonth)),
251
- useMoveToYear && (React__default["default"].createElement("button", { className: "calendar-button next-year", onClick: handleClickNextYear, title: getButtonTitle(date, 1, 'year') }, buttonContentProps === null || buttonContentProps === void 0 ? void 0 : buttonContentProps.nextYear))),
252
- React__default["default"].createElement("div", { className: "calendar-week-container" }, dayjs__default["default"].weekdaysMin(true).map(function (item, index) {
253
- var weekdayNames = [
254
- '일',
255
- '월',
256
- '화',
257
- '수',
258
- '목',
259
- '금',
260
- '토',
261
- ];
262
- var text = weekdayNames[index];
263
- return (React__default["default"].createElement(Box, { key: item, text: text, canSelect: true, isHoliday: index === 0 }));
264
- })),
265
- records.map(function (a, index) { return (React__default["default"].createElement("div", { key: (+new Date() + index).toString(), className: "calendar-week-container" }, a.map(function (b) { return (React__default["default"].createElement(Box, __assign({ key: "".concat(b.date) }, b, { highlightToday: highlightToday, onClick: handleClickBox }))); }))); }),
266
- showDate && (React__default["default"].createElement("div", { className: "calendar-bottom-container" },
267
- React__default["default"].createElement("button", { onClick: handleClickToday },
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;
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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,CAAA;AAEP,IAAA,QACIA,yBACI,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,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,CAAA;SAAA,EAAA;AAG5D,QAAAA,yBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,wBACP,CAAA,MAAA,CAAA,UAAU,GAAG,gCAAgC,GAAG,EAAE,cAElD,eAAe;AACX,kBAAE,sCAAsC;kBACtC,EAAE,EAER,GAAA,CAAA,CAAA,MAAA,CAAA,aAAa,GAAG,oCAAoC,GAAG,EAAE,EACzD,GAAA,CAAA,CAAA,MAAA,CAAA,SAAS,GAAG,EAAE,GAAG,uBAAuB,CAAE,EAAA;YAE9CA,yBACI,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,EACP,CAAA,MAAA,CAAA,OAAO,IAAI,cAAc,GAAG,gBAAgB,GAAG,EAAE,CACnD,EAAA,EAED,IAAI,CACH,CACJ,CACJ,EACR;AACN,CAAC;;AC1ED,IAAA,QAAA,kBAAA,YAAA;AAAA,IAAA,SAAA,QAAA,GAAA;KAkCC;AAjCG;;;;;;AAMG;IACW,QAAe,CAAA,eAAA,GAA7B,UAA8B,KAA6B,EAAA;AACvD,QAAA,IAAI,SAAe,CAAC;AACpB,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,IAAM,YAAY,GAAG,KAAK;iBACrB,KAAK,CAAC,QAAQ,CAAC;AACf,iBAAA,GAAG,CAAC,UAAC,CAAC,EAAA,EAAK,OAAA,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAf,EAAe,CAAC,CAAC;AACjC,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,CAAC;AACL,aAAA;AAAM,iBAAA;AACH,gBAAA,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,aAAA;AACJ,SAAA;AAAM,aAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAClC,YAAA,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAA;AAAM,aAAA;YACH,SAAS,GAAG,KAAK,CAAC;AACrB,SAAA;AAED,QAAA,OAAO,SAAS,CAAC;KACpB,CAAA;IACL,OAAC,QAAA,CAAA;AAAD,CAAC,EAAA;;ACxBDC,yBAAK,CAAC,MAAM,CAACC,6BAAS,CAAC,CAAC;AACxBD,yBAAK,CAAC,MAAM,CAACE,8BAAU,CAAC,CAAC;AACzBF,yBAAK,CAAC,MAAM,CAACG,8BAAU,CAAC,CAAC;AAgGzB;;;;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,CAAA;IAER,IAAM,WAAW,GAAG,YAAY,CAAC;IAE3B,IAAA,EAAA,GAAkBC,cAAQ,CAC5B,SAAS,IAAIJ,yBAAK,EAAE,CAAC,MAAM,CAAC,UAAU,KAAA,IAAA,IAAV,UAAU,KAAV,KAAA,CAAA,GAAA,UAAU,GAAI,WAAW,CAAC,CACzD,EAFM,IAAI,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,OAAO,GAAA,EAAA,CAAA,CAAA,CAEnB,CAAC;AACI,IAAA,IAAA,EAAoC,GAAAI,cAAQ,CAC9C,UAAU,IAAI,EAAE,CACnB,EAFM,aAAa,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,gBAAgB,QAErC,CAAC;IACI,IAAA,EAAA,GAAwBA,cAAQ,CAAe,EAAE,CAAC,EAAjD,OAAO,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,UAAU,GAAA,EAAA,CAAA,CAAA,CAA8B,CAAC;AACzD,IAAA,IAAM,KAAK,GAAGJ,yBAAK,EAAE,CAAC;IAEtB,IAAM,aAAa,GAAGK,iBAAW,CAC7B,UACI,SAAmB,EACnB,MAAkB,EAClB,OAAkB,EAClB,OAAkB,EAAA;QAElB,UAAU,CAAC,UAAC,CAAC,EAAA;YACT,IAAM,KAAK,GAAGL,yBAAK,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAChD,YAAA,IAAM,SAAS,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YACxD,IAAM,UAAU,GAAiB,EAAE,CAAC;oCAE3B,IAAI,EAAA;AACT,gBAAA,IAAM,KAAK,GAAe,KAAK,CAAC,CAAC,CAAC;qBAC7B,IAAI,CAAC,CAAC,CAAC;AACP,qBAAA,GAAG,CAAW,UAAC,CAAC,EAAE,KAAK,EAAA;AACpB,oBAAA,IAAM,OAAO,GAAGA,yBAAK,CAAC,KAAK,CAAC;AACvB,yBAAA,KAAK,EAAE;yBACP,IAAI,CAAC,IAAI,CAAC;yBACV,OAAO,CAAC,MAAM,CAAC;AACf,yBAAA,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC;AAE3B,oBAAA,IAAM,IAAI,GAAa;AACnB,wBAAA,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,KAAV,IAAA,IAAA,UAAU,KAAV,KAAA,CAAA,GAAA,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,KAAV,IAAA,IAAA,UAAU,KAAV,KAAA,CAAA,GAAA,UAAU,GAAI,WAAW,CAC5B;4BACDA,yBAAK,EAAE,CAAC,MAAM,CAAC,UAAU,KAAV,IAAA,IAAA,UAAU,KAAV,KAAA,CAAA,GAAA,UAAU,GAAI,WAAW,CAAC;AAC7C,wBAAA,UAAU,EACN,MAAM;4BACN,MAAM,CAAC,MAAM,GAAG,CAAC;AACjB,4BAAA,OAAO,CAAC,SAAS,CACbA,yBAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAChBA,yBAAK,CACD,MAAM,CAAC,MAAM,KAAK,CAAC;AACf,kCAAE,MAAM,CAAC,CAAC,CAAC;kCACT,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,KAAV,KAAA,CAAA,GAAA,UAAU,GAAI,WAAW,CAC5B;AACG,gCAAAA,yBAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CACnB,UAAU,aAAV,UAAU,KAAA,KAAA,CAAA,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,KAAV,KAAA,CAAA,GAAA,UAAU,GAAI,WAAW,CAC5B;AACG,gCAAAA,yBAAK,CACD,MAAM,CAAC,MAAM,KAAK,CAAC;AACf,sCAAE,MAAM,CAAC,CAAC,CAAC;AACX,sCAAE,MAAM,CAAC,CAAC,CAAC,CAClB,CAAC,MAAM,CAAC,UAAU,aAAV,UAAU,KAAA,KAAA,CAAA,GAAV,UAAU,GAAI,WAAW,CAAC;AAC3C,wBAAA,SAAS,EACL,CAAC,OAAO,IAAI,CAAC,OAAO;AAChB,8BAAE,IAAI;AACN,8BAAE,OAAO,CAAC,SAAS,CACb,OAAO,GAAG,OAAO,GAAG,YAAY,EAChC,OAAO,GAAG,OAAO,GAAG,YAAY,EAChC,SAAS,EACT,IAAI,CACP;qBACd,CAAC;AAEF,oBAAA,OAAO,IAAI,CAAC;AAChB,iBAAC,CAAC,CAAC;AAEP,gBAAA,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvB,gBAAA,IAAI,KAAK,CAAC,KAAK,EAAE,KAAKA,yBAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;;AAEnD,iBAAA;;;YA3EL,KAAK,IAAI,IAAI,GAAG,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAA;sCAA9B,IAAI,CAAA,CAAA;;;AA4EZ,aAAA;AAED,YAAA,OAAA,aAAA,CAAA,EAAA,EAAW,UAAU,EAAE,IAAA,CAAA,CAAA;AAC3B,SAAC,CAAC,CAAC;KACN,EACD,EAAE,CACL,CAAC;AAEF,IAAA,IAAM,cAAc,GAAG,UACnB,IAAc,EACd,KAAa,EACb,QAA0B,EAAA;AAE1B,QAAA,IAAM,CAAC,GAAGA,yBAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAErE,OAAO,UAAA,CAAA,MAAA,CAAW,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAE,CAAC;AAC5C,KAAC,CAAC;AAEF,IAAA,IAAM,mBAAmB,GAAG,YAAA;QACxB,OAAO,CAAC,UAAC,SAAS,EAAA;YACd,OAAAA,yBAAK,CAAC,SAAS,CAAC;AACX,iBAAA,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;iBACf,MAAM,CAAC,UAAU,KAAV,IAAA,IAAA,UAAU,cAAV,UAAU,GAAI,WAAW,CAAC,CAAA;AAFtC,SAEsC,CACzC,CAAC;AACN,KAAC,CAAC;AAEF,IAAA,IAAM,oBAAoB,GAAG,YAAA;QACzB,OAAO,CAAC,UAAC,SAAS,EAAA;YACd,OAAAA,yBAAK,CAAC,SAAS,CAAC;AACX,iBAAA,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;iBAChB,MAAM,CAAC,UAAU,KAAV,IAAA,IAAA,UAAU,cAAV,UAAU,GAAI,WAAW,CAAC,CAAA;AAFtC,SAEsC,CACzC,CAAC;AACN,KAAC,CAAC;AACF,IAAA,IAAM,oBAAoB,GAAG,YAAA;QACzB,OAAO,CAAC,UAAC,SAAS,EAAA;YACd,OAAAA,yBAAK,CAAC,SAAS,CAAC;AACX,iBAAA,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC;iBACf,MAAM,CAAC,UAAU,KAAV,IAAA,IAAA,UAAU,cAAV,UAAU,GAAI,WAAW,CAAC,CAAA;AAFtC,SAEsC,CACzC,CAAC;AACN,KAAC,CAAC;AACF,IAAA,IAAM,mBAAmB,GAAG,YAAA;QACxB,OAAO,CAAC,UAAC,SAAS,EAAA;YACd,OAAAA,yBAAK,CAAC,SAAS,CAAC;AACX,iBAAA,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC;iBACd,MAAM,CAAC,UAAU,KAAV,IAAA,IAAA,UAAU,cAAV,UAAU,GAAI,WAAW,CAAC,CAAA;AAFtC,SAEsC,CACzC,CAAC;AACN,KAAC,CAAC;AAEF,IAAA,IAAM,gBAAgB,GAAG,YAAA;AACrB,QAAA,OAAO,CACH,KAAK;;aAEA,MAAM,CAAC,UAAU,KAAA,IAAA,IAAV,UAAU,KAAA,KAAA,CAAA,GAAV,UAAU,GAAI,WAAW,CAAC,CACzC,CAAC;AACN,KAAC,CAAC;IAEF,IAAM,cAAc,GAAG,UAAC,IAAc,EAAA;QAClC,gBAAgB,CAAC,UAAC,SAAS,EAAA;AACvB,YAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;;;AAGxB,gBAAA,OAAO,aAAI,CAAA,aAAA,CAAA,EAAA,EAAA,SAAS,EAAE,IAAA,CAAA,EAAA,CAAA,IAAI,CAAE,EAAA,KAAA,CAAA,CAAA,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,EAAA,EAAK,QAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAf,EAAgB,CAAC,CAAC;AAChE,aAAA;AAAM,iBAAA;gBACH,OAAO,CAAC,IAAI,CAAC,CAAC;AACjB,aAAA;AACL,SAAC,CAAC,CAAC;AACP,KAAC,CAAC;AAEF,IAAAM,eAAS,CAAC,YAAA;QACN,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzD,KAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAEnE,IAAAA,eAAS,CAAC,YAAA;AACN,QAAA,IAAI,QAAQ,EAAE;YACV,IAAI,KAAK,SAAsB,CAAC;YAChC,IAAI,GAAG,SAAsB,CAAC;AAE9B,YAAA,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC5B,KAAK,GAAG,SAAS,CAAC;gBAClB,GAAG,GAAG,SAAS,CAAC;AACnB,aAAA;AAAM,iBAAA,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;AACnC,gBAAA,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;;AAE5B,aAAA;AAAM,iBAAA;AACH,gBAAA,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AACzB,gBAAA,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAC1B,aAAA;AAED,YAAA,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACxB,SAAA;AACL,KAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;AAE9B,IAAA,QACIP,yBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,oBAAoB,EAAA;QAC/BA,yBAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,gBAAgB,EAAA;AAC1B,YAAA,aAAa,KACVA,yBACI,CAAA,aAAA,CAAA,QAAA,EAAA,EAAA,SAAS,EAAC,+BAA+B,EACzC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,EAEtC,EAAA,kBAAkB,KAAlB,IAAA,IAAA,kBAAkB,KAAlB,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,kBAAkB,CAAE,YAAY,CAC5B,CACZ;AACA,YAAA,cAAc,KACXA,yBACI,CAAA,aAAA,CAAA,QAAA,EAAA,EAAA,SAAS,EAAC,gCAAgC,EAC1C,OAAO,EAAE,oBAAoB,EAC7B,KAAK,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAEvC,EAAA,kBAAkB,KAAlB,IAAA,IAAA,kBAAkB,KAAlB,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,kBAAkB,CAAE,aAAa,CAC7B,CACZ;YACDA,yBAAM,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA,EAAAC,yBAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAO;AAC1C,YAAA,cAAc,KACXD,yBACI,CAAA,aAAA,CAAA,QAAA,EAAA,EAAA,SAAS,EAAC,4BAA4B,EACtC,OAAO,EAAE,oBAAoB,EAC7B,KAAK,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAEtC,EAAA,kBAAkB,KAAlB,IAAA,IAAA,kBAAkB,KAAlB,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,kBAAkB,CAAE,SAAS,CACzB,CACZ;AACA,YAAA,aAAa,KACVA,yBACI,CAAA,aAAA,CAAA,QAAA,EAAA,EAAA,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,KAAA,CAAA,GAAA,KAAA,CAAA,GAAlB,kBAAkB,CAAE,QAAQ,CACxB,CACZ,CACC;AACN,QAAAA,yBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,yBAAyB,EACnC,EAAAC,yBAAK,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,CAAC;AACF,YAAA,IAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;YACjC,QACID,wCAAC,GAAG,EAAA,EACA,GAAG,EAAE,IAAI,EACT,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,IAAI,EACf,SAAS,EAAE,KAAK,KAAK,CAAC,EACxB,CAAA,EACJ;AACN,SAAC,CAAC,CACA;AACL,QAAA,OAAO,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,KAAK,EAAA,EAAK,QACvBA,yBACI,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,GAAG,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,EACrC,SAAS,EAAC,yBAAyB,EAElC,EAAA,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,EAAK,EAAA,QACVA,yBAAA,CAAA,aAAA,CAAC,GAAG,EACA,QAAA,CAAA,EAAA,GAAG,EAAE,EAAA,CAAA,MAAA,CAAG,CAAC,CAAC,IAAI,CAAE,IACZ,CAAC,EAAA,EACL,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,cAAc,EACzB,CAAA,CAAA,EANQ,EAOb,CAAC,CACA,EACT,EAAA,CAAC;AACD,QAAA,QAAQ,KACLA,yBAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,2BAA2B,EAAA;YACtCA,yBAAQ,CAAA,aAAA,CAAA,QAAA,EAAA,EAAA,OAAO,EAAE,gBAAgB,EAAA;;AACrB,gBAAA,KAAK,CAAC,MAAM,CAAC,UAAU,KAAA,IAAA,IAAV,UAAU,KAAV,KAAA,CAAA,GAAA,UAAU,GAAI,WAAW,CAAC,CAC1C,CACP,CACT,CACC,EACR;AACN;;;;;"}
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":"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"}
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';