@datability/8ui 0.1.69 → 1.1.0
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/.prettierrc +8 -0
- package/.vscode/extensions.json +6 -0
- package/README.md +66 -18
- package/declaration.d.ts +10 -0
- package/docker-compose.yml +20 -0
- package/eslint.config.js +23 -0
- package/index.html +13 -0
- package/package.json +37 -36
- package/public/vite.svg +1 -0
- package/src/App.tsx +370 -0
- package/src/components/blackdrop/index.tsx +18 -0
- package/src/components/blackdrop/index.type.ts +7 -0
- package/src/components/button/index.tsx +44 -0
- package/src/components/button/index.type.ts +13 -0
- package/src/components/chip/index.tsx +39 -0
- package/src/components/chip/index.type.ts +12 -0
- package/src/components/context.tsx +26 -0
- package/src/components/divider/index.tsx +13 -0
- package/src/components/index.ts +62 -0
- package/{dist/components/Input/InputAutoComplete → src/components/input/input-auto-complete}/index.scss +1 -1
- package/src/components/input/input-auto-complete/index.tsx +140 -0
- package/src/components/input/input-auto-complete/index.type.tsx +13 -0
- package/src/components/input/input-base/index.tsx +39 -0
- package/src/components/input/input-base/index.type.tsx +13 -0
- package/src/components/input/input-basic/index.tsx +47 -0
- package/src/components/input/input-basic/index.type.tsx +8 -0
- package/src/components/input/input-checkbox/index.tsx +69 -0
- package/src/components/input/input-checkbox/index.type.tsx +11 -0
- package/src/components/input/input-date/index.tsx +354 -0
- package/src/components/input/input-date/index.type.tsx +11 -0
- package/src/components/input/input-date-range/index.tsx +284 -0
- package/src/components/input/input-date-range/index.type.tsx +11 -0
- package/src/components/input/input-date-time/index.tsx +367 -0
- package/src/components/input/input-date-time/index.type.tsx +11 -0
- package/src/components/input/input-number/index.tsx +118 -0
- package/src/components/input/input-number/index.type.tsx +11 -0
- package/src/components/input/input-password/index.tsx +60 -0
- package/src/components/input/input-password/index.type.tsx +8 -0
- package/src/components/input/input-radio/index.tsx +72 -0
- package/src/components/input/input-radio/index.type.tsx +12 -0
- package/{dist/components/Input/InputSelect → src/components/input/input-select}/index.scss +1 -1
- package/src/components/input/input-select/index.tsx +113 -0
- package/src/components/input/input-select/index.type.tsx +15 -0
- package/{dist/components/InputNonContext/InputSwitch → src/components/input/input-switch}/index.scss +1 -1
- package/src/components/input/input-switch/index.tsx +44 -0
- package/src/components/input/input-switch/index.type.tsx +4 -0
- package/src/components/input/input-textarea/index.tsx +48 -0
- package/src/components/input/input-textarea/index.type.tsx +10 -0
- package/src/components/menu/index.tsx +136 -0
- package/src/components/menu/index.type.ts +8 -0
- package/{dist/components/Modal → src/components/modal}/index.scss +0 -0
- package/src/components/modal/index.tsx +99 -0
- package/src/components/modal/index.type.tsx +8 -0
- package/src/index.scss +44 -0
- package/src/index.ts +62 -0
- package/src/logoDownload.svg +3 -0
- package/src/main.tsx +9 -0
- package/tsconfig.app.json +28 -0
- package/tsconfig.json +42 -0
- package/tsconfig.node.json +29 -0
- package/vite.config.d.ts +2 -0
- package/vite.config.ts +35 -0
- package/dist/components/Blackdrop/index.d.ts +0 -5
- package/dist/components/Blackdrop/index.js +0 -11
- package/dist/components/Blackdrop/index.js.map +0 -1
- package/dist/components/Blackdrop/index.type.d.ts +0 -6
- package/dist/components/Blackdrop/index.type.js +0 -2
- package/dist/components/Blackdrop/index.type.js.map +0 -1
- package/dist/components/Button/index.d.ts +0 -5
- package/dist/components/Button/index.js +0 -16
- package/dist/components/Button/index.js.map +0 -1
- package/dist/components/Button/index.type.d.ts +0 -12
- package/dist/components/Button/index.type.js +0 -2
- package/dist/components/Button/index.type.js.map +0 -1
- package/dist/components/Chip/index.d.ts +0 -5
- package/dist/components/Chip/index.js +0 -18
- package/dist/components/Chip/index.js.map +0 -1
- package/dist/components/Chip/index.type.d.ts +0 -9
- package/dist/components/Chip/index.type.js +0 -2
- package/dist/components/Chip/index.type.js.map +0 -1
- package/dist/components/Divider/index.d.ts +0 -4
- package/dist/components/Divider/index.js +0 -10
- package/dist/components/Divider/index.js.map +0 -1
- package/dist/components/Input/InputAutoComplete/index.d.ts +0 -5
- package/dist/components/Input/InputAutoComplete/index.js +0 -68
- package/dist/components/Input/InputAutoComplete/index.js.map +0 -1
- package/dist/components/Input/InputAutoComplete/index.type.d.ts +0 -12
- package/dist/components/Input/InputAutoComplete/index.type.js +0 -2
- package/dist/components/Input/InputAutoComplete/index.type.js.map +0 -1
- package/dist/components/Input/InputBase/index.d.ts +0 -5
- package/dist/components/Input/InputBase/index.js +0 -23
- package/dist/components/Input/InputBase/index.js.map +0 -1
- package/dist/components/Input/InputBase/index.type.d.ts +0 -9
- package/dist/components/Input/InputBase/index.type.js +0 -2
- package/dist/components/Input/InputBase/index.type.js.map +0 -1
- package/dist/components/Input/InputBasic/index.d.ts +0 -5
- package/dist/components/Input/InputBasic/index.js +0 -16
- package/dist/components/Input/InputBasic/index.js.map +0 -1
- package/dist/components/Input/InputBasic/index.type.d.ts +0 -10
- package/dist/components/Input/InputBasic/index.type.js +0 -2
- package/dist/components/Input/InputBasic/index.type.js.map +0 -1
- package/dist/components/Input/InputCheckbox/index.d.ts +0 -5
- package/dist/components/Input/InputCheckbox/index.js +0 -19
- package/dist/components/Input/InputCheckbox/index.js.map +0 -1
- package/dist/components/Input/InputCheckbox/index.type.d.ts +0 -11
- package/dist/components/Input/InputCheckbox/index.type.js +0 -2
- package/dist/components/Input/InputCheckbox/index.type.js.map +0 -1
- package/dist/components/Input/InputDate/index.d.ts +0 -23
- package/dist/components/Input/InputDate/index.js +0 -190
- package/dist/components/Input/InputDate/index.js.map +0 -1
- package/dist/components/Input/InputDate/index.type.d.ts +0 -11
- package/dist/components/Input/InputDate/index.type.js +0 -2
- package/dist/components/Input/InputDate/index.type.js.map +0 -1
- package/dist/components/Input/InputDateRange/index.d.ts +0 -5
- package/dist/components/Input/InputDateRange/index.js +0 -137
- package/dist/components/Input/InputDateRange/index.js.map +0 -1
- package/dist/components/Input/InputDateRange/index.type.d.ts +0 -11
- package/dist/components/Input/InputDateRange/index.type.js +0 -2
- package/dist/components/Input/InputDateRange/index.type.js.map +0 -1
- package/dist/components/Input/InputDateTime/index.d.ts +0 -5
- package/dist/components/Input/InputDateTime/index.js +0 -185
- package/dist/components/Input/InputDateTime/index.js.map +0 -1
- package/dist/components/Input/InputDateTime/index.type.d.ts +0 -11
- package/dist/components/Input/InputDateTime/index.type.js +0 -2
- package/dist/components/Input/InputDateTime/index.type.js.map +0 -1
- package/dist/components/Input/InputNumber/index.d.ts +0 -5
- package/dist/components/Input/InputNumber/index.js +0 -78
- package/dist/components/Input/InputNumber/index.js.map +0 -1
- package/dist/components/Input/InputNumber/index.type.d.ts +0 -10
- package/dist/components/Input/InputNumber/index.type.js +0 -2
- package/dist/components/Input/InputNumber/index.type.js.map +0 -1
- package/dist/components/Input/InputPassword/index.d.ts +0 -5
- package/dist/components/Input/InputPassword/index.js +0 -21
- package/dist/components/Input/InputPassword/index.js.map +0 -1
- package/dist/components/Input/InputPassword/index.type.d.ts +0 -8
- package/dist/components/Input/InputPassword/index.type.js +0 -2
- package/dist/components/Input/InputPassword/index.type.js.map +0 -1
- package/dist/components/Input/InputRadio/index.d.ts +0 -5
- package/dist/components/Input/InputRadio/index.js +0 -31
- package/dist/components/Input/InputRadio/index.js.map +0 -1
- package/dist/components/Input/InputRadio/index.type.d.ts +0 -12
- package/dist/components/Input/InputRadio/index.type.js +0 -2
- package/dist/components/Input/InputRadio/index.type.js.map +0 -1
- package/dist/components/Input/InputSelect/index.d.ts +0 -5
- package/dist/components/Input/InputSelect/index.js +0 -45
- package/dist/components/Input/InputSelect/index.js.map +0 -1
- package/dist/components/Input/InputSelect/index.type.d.ts +0 -14
- package/dist/components/Input/InputSelect/index.type.js +0 -2
- package/dist/components/Input/InputSelect/index.type.js.map +0 -1
- package/dist/components/Input/InputTextarea/index.d.ts +0 -5
- package/dist/components/Input/InputTextarea/index.js +0 -16
- package/dist/components/Input/InputTextarea/index.js.map +0 -1
- package/dist/components/Input/InputTextarea/index.type.d.ts +0 -10
- package/dist/components/Input/InputTextarea/index.type.js +0 -2
- package/dist/components/Input/InputTextarea/index.type.js.map +0 -1
- package/dist/components/InputNonContext/InputSwitch/index.d.ts +0 -5
- package/dist/components/InputNonContext/InputSwitch/index.js +0 -19
- package/dist/components/InputNonContext/InputSwitch/index.js.map +0 -1
- package/dist/components/InputNonContext/InputSwitch/index.type.d.ts +0 -6
- package/dist/components/InputNonContext/InputSwitch/index.type.js +0 -2
- package/dist/components/InputNonContext/InputSwitch/index.type.js.map +0 -1
- package/dist/components/Menu/index.d.ts +0 -5
- package/dist/components/Menu/index.js +0 -103
- package/dist/components/Menu/index.js.map +0 -1
- package/dist/components/Menu/index.type.d.ts +0 -11
- package/dist/components/Menu/index.type.js +0 -2
- package/dist/components/Menu/index.type.js.map +0 -1
- package/dist/components/Modal/index.d.ts +0 -5
- package/dist/components/Modal/index.js +0 -83
- package/dist/components/Modal/index.js.map +0 -1
- package/dist/components/Modal/index.type.d.ts +0 -7
- package/dist/components/Modal/index.type.js +0 -2
- package/dist/components/Modal/index.type.js.map +0 -1
- package/dist/components/context.d.ts +0 -8
- package/dist/components/context.js +0 -12
- package/dist/components/context.js.map +0 -1
- package/dist/components/index.d.ts +0 -41
- package/dist/components/index.js +0 -21
- package/dist/components/index.js.map +0 -1
- /package/{dist → src}/components/assets/closed.svg +0 -0
- /package/{dist/components/assets/expandArrow.svg → src/components/assets/expand-arrow.svg} +0 -0
- /package/{dist/components/assets/visibilityOff.svg → src/components/assets/visibility-off.svg} +0 -0
- /package/{dist → src}/components/assets/visibility.svg +0 -0
- /package/{dist/components/Blackdrop → src/components/blackdrop}/index.scss +0 -0
- /package/{dist/components/Button → src/components/button}/index.scss +0 -0
- /package/{dist/components/Chip → src/components/chip}/index.scss +0 -0
- /package/{dist/components/Divider → src/components/divider}/index.scss +0 -0
- /package/{dist/components/Input → src/components/input}/extend.scss +0 -0
- /package/{dist/components/Input/InputBase → src/components/input/input-base}/index.scss +0 -0
- /package/{dist/components/Input/InputBasic → src/components/input/input-basic}/index.scss +0 -0
- /package/{dist/components/Input/InputCheckbox → src/components/input/input-checkbox}/index.scss +0 -0
- /package/{dist/components/Input/InputDate → src/components/input/input-date}/index.scss +0 -0
- /package/{dist/components/Input/InputDateRange → src/components/input/input-date-range}/index.scss +0 -0
- /package/{dist/components/Input/InputDateTime → src/components/input/input-date-time}/index.scss +0 -0
- /package/{dist/components/Input/InputNumber → src/components/input/input-number}/index.scss +0 -0
- /package/{dist/components/Input/InputPassword → src/components/input/input-password}/index.scss +0 -0
- /package/{dist/components/Input/InputRadio → src/components/input/input-radio}/index.scss +0 -0
- /package/{dist/components/Input/InputTextarea → src/components/input/input-textarea}/index.scss +0 -0
- /package/{dist/components/Menu → src/components/menu}/index.scss +0 -0
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
import { __spreadArray } from "tslib";
|
|
2
|
-
// Lib
|
|
3
|
-
import React, { useEffect, useState } from 'react';
|
|
4
|
-
import { getIn, useFormikContext } from 'formik';
|
|
5
|
-
// Images
|
|
6
|
-
import expandArrowSVG from '../../assets/expandArrow.svg';
|
|
7
|
-
import closedSVG from '../../assets/closed.svg';
|
|
8
|
-
// Include in project
|
|
9
|
-
import './index.scss';
|
|
10
|
-
import InputBase from '../InputBase';
|
|
11
|
-
import Menu from '../../Menu';
|
|
12
|
-
import Modal from '../../Modal';
|
|
13
|
-
import { createPortal } from 'react-dom';
|
|
14
|
-
// 2025-09-01
|
|
15
|
-
var InputDate = function (_a) {
|
|
16
|
-
var name = _a.name, label = _a.label, placeholder = _a.placeholder, _b = _a.disabled, disabled = _b === void 0 ? false : _b, _c = _a.require, require = _c === void 0 ? false : _c, _d = _a.fullWidth, fullWidth = _d === void 0 ? false : _d, _e = _a.isHideClearIcon, isHideClearIcon = _e === void 0 ? true : _e, minYear = _a.minYear, maxYear = _a.maxYear;
|
|
17
|
-
var _f = useFormikContext(), values = _f.values, touched = _f.touched, errors = _f.errors, setFieldValue = _f.setFieldValue;
|
|
18
|
-
var value = getIn(values, name);
|
|
19
|
-
var isInvalid = getIn(touched, name) && Boolean(getIn(errors, name));
|
|
20
|
-
var _g = useState(value ? value : getDateNow()), showDay = _g[0], setShowDay = _g[1];
|
|
21
|
-
var _h = useState(false), isOpenModal = _h[0], setIsOpenModal = _h[1];
|
|
22
|
-
var yearOption = generateYearOptions(minYear, maxYear);
|
|
23
|
-
var monthOption = generateMonthOptions();
|
|
24
|
-
function CalendarRow(_a) {
|
|
25
|
-
var year = _a.year, month = _a.month;
|
|
26
|
-
var days = getDaysInMonthWithWeekday(year, month);
|
|
27
|
-
// Mapping JavaScript getDay() → Thai order (เสาร์=0, อาทิตย์=1, ..., ศุกร์=6)
|
|
28
|
-
var mapToThaiWeek = function (dayIndex) { return dayIndex % 7; }; // Sunday(0) → 1 ... Saturday(6) → 0
|
|
29
|
-
// ช่องว่างก่อนเริ่มต้นเดือน
|
|
30
|
-
var firstDayThaiIndex = mapToThaiWeek(new Date("".concat(year, "-").concat(month, "-01")).getDay());
|
|
31
|
-
var emptyStartDays = Array(firstDayThaiIndex).fill(null);
|
|
32
|
-
var allDays = __spreadArray(__spreadArray([], emptyStartDays, true), days.map(function (d) { return d.date.split('-')[2]; }), true); // ['01', '02', ...]
|
|
33
|
-
// เติม null ให้ครบ 42 ช่อง (6 แถว × 7 วัน)
|
|
34
|
-
while (allDays.length < 42) {
|
|
35
|
-
allDays.push(null);
|
|
36
|
-
}
|
|
37
|
-
// แบ่งเป็นแถวละ 7 วัน
|
|
38
|
-
var weeks = [];
|
|
39
|
-
for (var i = 0; i < allDays.length; i += 7) {
|
|
40
|
-
weeks.push(allDays.slice(i, i + 7));
|
|
41
|
-
}
|
|
42
|
-
return (React.createElement(React.Fragment, null, weeks.map(function (week, rowIndex) { return (React.createElement("div", { key: rowIndex, className: "DBui-inputDateRowDay" }, week.map(function (day, i) { return (React.createElement("p", { key: i, className: "DBui-inputDateDay", onClick: function () {
|
|
43
|
-
if (day) {
|
|
44
|
-
setFieldValue(name, "".concat(getYearInDateString(showDay), "-").concat(getMonthInDateString(showDay), "-").concat(day));
|
|
45
|
-
setIsOpenModal(false);
|
|
46
|
-
}
|
|
47
|
-
}, "data-checked": "".concat(getYearInDateString(value), "-").concat(getMonthInDateString(value), "-").concat(getDayInDateString(value)) ===
|
|
48
|
-
"".concat(getYearInDateString(showDay), "-").concat(getMonthInDateString(showDay), "-").concat(day), "data-hidden-hover": !Boolean(day) }, day || '')); }))); })));
|
|
49
|
-
}
|
|
50
|
-
var _j = useState(false), mounted = _j[0], setMounted = _j[1];
|
|
51
|
-
useEffect(function () {
|
|
52
|
-
setMounted(true);
|
|
53
|
-
return function () { return setMounted(false); };
|
|
54
|
-
}, []);
|
|
55
|
-
var handleCleaState = function (e) {
|
|
56
|
-
e.stopPropagation();
|
|
57
|
-
setFieldValue(name, '');
|
|
58
|
-
};
|
|
59
|
-
return (React.createElement(InputBase, { name: name, label: label, require: require, fullWidth: fullWidth, isInvalid: isInvalid },
|
|
60
|
-
React.createElement(React.Fragment, null,
|
|
61
|
-
React.createElement("div", { className: "DBui-inputDate", onClick: function () { return (disabled ? null : setIsOpenModal(true)); }, "data-invalid": isInvalid, "data-disabled": disabled },
|
|
62
|
-
React.createElement("p", null, value ? value : placeholder),
|
|
63
|
-
React.createElement("img", { src: closedSVG, className: "DBui-clearIconInputDate", onClick: handleCleaState, "data-hidden": getIn(values, name) === '' || disabled || isHideClearIcon })),
|
|
64
|
-
mounted &&
|
|
65
|
-
createPortal(React.createElement(Modal, { id: "modalInputDate", open: isOpenModal, onClose: function () { return setIsOpenModal(false); } },
|
|
66
|
-
React.createElement("div", { className: "DBui-inputDateWrapperCalendar" },
|
|
67
|
-
React.createElement("div", { className: "DBui-inputDateRowMonthYear" },
|
|
68
|
-
React.createElement("img", { src: expandArrowSVG, className: "DBui-inputDateRowMonthYearSelected", style: { transform: 'rotate(90deg)' }, onClick: function () {
|
|
69
|
-
setShowDay(updateMonthInDateString(showDay, String(Number(showDay.split('-')[1]) - 1).padStart(2, '0')));
|
|
70
|
-
} }),
|
|
71
|
-
React.createElement(Menu, { isInModal: true, trigger: function () { return React.createElement("h4", { className: "DBui-inputDateRowMonthYearSelected" }, showDay.slice(0, 4)); } }, function (_a) {
|
|
72
|
-
var close = _a.close;
|
|
73
|
-
return yearOption.map(function (data, index) {
|
|
74
|
-
return (React.createElement("p", { key: index, className: "DBui-inputDateRowMonthYearOption", onClick: function () {
|
|
75
|
-
setShowDay(updateYearInDateString(showDay, data.value));
|
|
76
|
-
close();
|
|
77
|
-
}, "data-checked": getYearInDateString(showDay) === data.value }, data.label));
|
|
78
|
-
});
|
|
79
|
-
}),
|
|
80
|
-
React.createElement(Menu, { isInModal: true, trigger: function () {
|
|
81
|
-
var _a;
|
|
82
|
-
return (React.createElement("h4", { className: "DBui-inputDateRowMonthYearSelected", style: { width: '7rem' } }, (_a = monthOption.find(function (e) { return e.value === showDay.slice(5, 7); })) === null || _a === void 0 ? void 0 : _a.label));
|
|
83
|
-
} }, function (_a) {
|
|
84
|
-
var close = _a.close;
|
|
85
|
-
return monthOption.map(function (data, index) {
|
|
86
|
-
return (React.createElement("p", { key: index, className: "DBui-inputDateRowMonthYearOption", onClick: function () {
|
|
87
|
-
setShowDay(updateMonthInDateString(showDay, data.value));
|
|
88
|
-
close();
|
|
89
|
-
}, "data-checked": getMonthInDateString(showDay) === data.value }, data.label));
|
|
90
|
-
});
|
|
91
|
-
}),
|
|
92
|
-
React.createElement("img", { src: expandArrowSVG, className: "DBui-inputDateRowMonthYearSelected", style: { transform: 'rotate(-90deg)' }, onClick: function () {
|
|
93
|
-
setShowDay(updateMonthInDateString(showDay, String(Number(showDay.split('-')[1]) + 1).padStart(2, '0')));
|
|
94
|
-
} })),
|
|
95
|
-
React.createElement("div", null,
|
|
96
|
-
React.createElement("div", { className: "DBui-inputDateRowHeaderDay" },
|
|
97
|
-
React.createElement("p", { className: "DBui-inputDateHeader" }, "Sun"),
|
|
98
|
-
React.createElement("p", { className: "DBui-inputDateHeader" }, "Mon"),
|
|
99
|
-
React.createElement("p", { className: "DBui-inputDateHeader" }, "Tue"),
|
|
100
|
-
React.createElement("p", { className: "DBui-inputDateHeader" }, "Wed"),
|
|
101
|
-
React.createElement("p", { className: "DBui-inputDateHeader" }, "Thu"),
|
|
102
|
-
React.createElement("p", { className: "DBui-inputDateHeader" }, "Fri"),
|
|
103
|
-
React.createElement("p", { className: "DBui-inputDateHeader" }, "Sat")),
|
|
104
|
-
React.createElement(CalendarRow, { year: getYearInDateString(showDay), month: getMonthInDateString(showDay) })))), document.getElementById('root') || document.getElementById('__next')),
|
|
105
|
-
!mounted && (React.createElement(Modal, { id: "modalInputDate", open: isOpenModal, onClose: function () { return setIsOpenModal(false); } },
|
|
106
|
-
React.createElement("div", { className: "DBui-inputDateWrapperCalendar" }))))));
|
|
107
|
-
};
|
|
108
|
-
export default InputDate;
|
|
109
|
-
export function generateYearOptions(minYear, maxYear) {
|
|
110
|
-
var currentYear = new Date().getFullYear();
|
|
111
|
-
// Default values ถ้าไม่ส่งมา
|
|
112
|
-
var finalMax = maxYear !== null && maxYear !== void 0 ? maxYear : currentYear;
|
|
113
|
-
var finalMin = minYear !== null && minYear !== void 0 ? minYear : currentYear - 100;
|
|
114
|
-
var years = [];
|
|
115
|
-
// ไล่ปีแบบมาก -> น้อย
|
|
116
|
-
for (var year = finalMax; year >= finalMin; year--) {
|
|
117
|
-
years.push({ label: String(year), value: year });
|
|
118
|
-
}
|
|
119
|
-
return years;
|
|
120
|
-
}
|
|
121
|
-
export function generateMonthOptions() {
|
|
122
|
-
var monthNames = [
|
|
123
|
-
'January',
|
|
124
|
-
'February',
|
|
125
|
-
'March',
|
|
126
|
-
'April',
|
|
127
|
-
'May',
|
|
128
|
-
'June',
|
|
129
|
-
'July',
|
|
130
|
-
'August',
|
|
131
|
-
'September',
|
|
132
|
-
'October',
|
|
133
|
-
'November',
|
|
134
|
-
'December',
|
|
135
|
-
];
|
|
136
|
-
return monthNames.map(function (name, index) { return ({
|
|
137
|
-
label: name,
|
|
138
|
-
value: String(index + 1).padStart(2, '0')
|
|
139
|
-
}); });
|
|
140
|
-
}
|
|
141
|
-
export function updateYearInDateString(dateStr, newYear) {
|
|
142
|
-
var newDateStr = dateStr ? dateStr : new Date().toISOString().split('T')[0];
|
|
143
|
-
var _a = newDateStr.split('-'), _ = _a[0], month = _a[1], day = _a[2];
|
|
144
|
-
return "".concat(newYear, "-").concat(month, "-").concat(day);
|
|
145
|
-
}
|
|
146
|
-
export function updateMonthInDateString(dateStr, newMonth) {
|
|
147
|
-
var newDateStr = dateStr || new Date().toISOString().split('T')[0];
|
|
148
|
-
var _a = newDateStr.split('-'), yearStr = _a[0], _ = _a[1], dayStr = _a[2];
|
|
149
|
-
var year = parseInt(yearStr, 10);
|
|
150
|
-
var month = parseInt(newMonth, 10);
|
|
151
|
-
// Handle overflow/underflow
|
|
152
|
-
year += Math.floor((month - 1) / 12);
|
|
153
|
-
month = ((((month - 1) % 12) + 12) % 12) + 1; // Wrap to 1–12
|
|
154
|
-
var monthStr = String(month).padStart(2, '0');
|
|
155
|
-
return "".concat(year, "-").concat(monthStr, "-").concat(dayStr);
|
|
156
|
-
}
|
|
157
|
-
export function getYearInDateString(dateStr) {
|
|
158
|
-
var _a = dateStr.split('-'), year = _a[0], _month = _a[1], _day = _a[2];
|
|
159
|
-
return Number(year);
|
|
160
|
-
}
|
|
161
|
-
export function getMonthInDateString(dateStr) {
|
|
162
|
-
var _a = dateStr.split('-'), _year = _a[0], month = _a[1], _day = _a[2];
|
|
163
|
-
return month;
|
|
164
|
-
}
|
|
165
|
-
export function getDayInDateString(dateStr) {
|
|
166
|
-
var _a = dateStr.split('-'), _year = _a[0], _month = _a[1], day = _a[2];
|
|
167
|
-
return day;
|
|
168
|
-
}
|
|
169
|
-
export function getDaysInMonthWithWeekday(year, month) {
|
|
170
|
-
var days = [];
|
|
171
|
-
var monthIndex = parseInt(month, 10) - 1; // JavaScript months are 0-based
|
|
172
|
-
var date = new Date(year, monthIndex, 1);
|
|
173
|
-
var weekdayNames = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
|
|
174
|
-
while (date.getMonth() === monthIndex) {
|
|
175
|
-
var day = String(date.getDate()).padStart(2, '0');
|
|
176
|
-
var weekday = weekdayNames[date.getDay()];
|
|
177
|
-
var formattedDate = "".concat(year, "-").concat(month, "-").concat(day);
|
|
178
|
-
days.push({ date: formattedDate, weekday: weekday });
|
|
179
|
-
date.setDate(date.getDate() + 1);
|
|
180
|
-
}
|
|
181
|
-
return days;
|
|
182
|
-
}
|
|
183
|
-
export function getDateNow() {
|
|
184
|
-
var dateNow = new Date();
|
|
185
|
-
var year = dateNow.getFullYear();
|
|
186
|
-
var month = "".concat(dateNow.getMonth() + 1).padStart(2, '0');
|
|
187
|
-
var date = "".concat(dateNow.getDate()).padStart(2, '0');
|
|
188
|
-
return "".concat(year, "-").concat(month, "-").concat(date);
|
|
189
|
-
}
|
|
190
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Input/InputDate/index.tsx"],"names":[],"mappings":";AAAA,MAAM;AACN,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAClD,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAA;AAEhD,SAAS;AACT,OAAO,cAAc,MAAM,8BAA8B,CAAA;AACzD,OAAO,SAAS,MAAM,yBAAyB,CAAA;AAE/C,qBAAqB;AACrB,OAAO,cAAc,CAAA;AACrB,OAAO,SAAS,MAAM,cAAc,CAAA;AAEpC,OAAO,IAAI,MAAM,YAAY,CAAA;AAC7B,OAAO,KAAK,MAAM,aAAa,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC,aAAa;AACb,IAAM,SAAS,GAA6B,UAAC,EAU5C;QATC,IAAI,UAAA,EACJ,KAAK,WAAA,EACL,WAAW,iBAAA,EACX,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA,EAChB,eAAe,EAAf,OAAO,mBAAG,KAAK,KAAA,EACf,iBAAiB,EAAjB,SAAS,mBAAG,KAAK,KAAA,EACjB,uBAAsB,EAAtB,eAAe,mBAAG,IAAI,KAAA,EACtB,OAAO,aAAA,EACP,OAAO,aAAA;IAED,IAAA,KAA6C,gBAAgB,EAAE,EAA7D,MAAM,YAAA,EAAE,OAAO,aAAA,EAAE,MAAM,YAAA,EAAE,aAAa,mBAAuB,CAAA;IACrE,IAAM,KAAK,GAAW,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACzC,IAAM,SAAS,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;IAEhE,IAAA,KAAwB,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,EAA7D,OAAO,QAAA,EAAE,UAAU,QAA0C,CAAA;IAC9D,IAAA,KAAgC,QAAQ,CAAC,KAAK,CAAC,EAA9C,WAAW,QAAA,EAAE,cAAc,QAAmB,CAAA;IAErD,IAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACxD,IAAM,WAAW,GAAG,oBAAoB,EAAE,CAAA;IAE1C,SAAS,WAAW,CAAC,EAAgD;YAA9C,IAAI,UAAA,EAAE,KAAK,WAAA;QAChC,IAAM,IAAI,GAAG,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAEnD,8EAA8E;QAC9E,IAAM,aAAa,GAAG,UAAC,QAAgB,IAAK,OAAA,QAAQ,GAAG,CAAC,EAAZ,CAAY,CAAA,CAAC,oCAAoC;QAE7F,4BAA4B;QAC5B,IAAM,iBAAiB,GAAG,aAAa,CAAC,IAAI,IAAI,CAAC,UAAG,IAAI,cAAI,KAAK,QAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;QACjF,IAAM,cAAc,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAE1D,IAAM,OAAO,mCAAO,cAAc,SAAK,IAAI,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAApB,CAAoB,CAAC,OAAC,CAAA,CAAC,oBAAoB;QAElG,2CAA2C;QAC3C,OAAO,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE;YAC1B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;SACnB;QAED,sBAAsB;QACtB,IAAM,KAAK,GAAG,EAAE,CAAA;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAC1C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;SACpC;QAED,OAAO,CACL,0CACG,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,QAAQ,IAAK,OAAA,CAC7B,6BAAK,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAC,sBAAsB,IACjD,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG,EAAE,CAAC,IAAK,OAAA,CACpB,2BACE,GAAG,EAAE,CAAC,EACN,SAAS,EAAC,mBAAmB,EAC7B,OAAO,EAAE;gBACP,IAAI,GAAG,EAAE;oBACP,aAAa,CAAC,IAAI,EAAE,UAAG,mBAAmB,CAAC,OAAO,CAAC,cAAI,oBAAoB,CAAC,OAAO,CAAC,cAAI,GAAG,CAAE,CAAC,CAAA;oBAC9F,cAAc,CAAC,KAAK,CAAC,CAAA;iBACtB;YACH,CAAC,kBAEC,UAAG,mBAAmB,CAAC,KAAK,CAAC,cAAI,oBAAoB,CAAC,KAAK,CAAC,cAAI,kBAAkB,CAAC,KAAK,CAAC,CAAE;gBAC3F,UAAG,mBAAmB,CAAC,OAAO,CAAC,cAAI,oBAAoB,CAAC,OAAO,CAAC,cAAI,GAAG,CAAE,uBAExD,CAAC,OAAO,CAAC,GAAG,CAAC,IAE/B,GAAG,IAAI,EAAE,CACR,CACL,EAlBqB,CAkBrB,CAAC,CACE,CACP,EAtB8B,CAsB9B,CAAC,CACD,CACJ,CAAA;IACH,CAAC;IAEK,IAAA,KAAwB,QAAQ,CAAC,KAAK,CAAC,EAAtC,OAAO,QAAA,EAAE,UAAU,QAAmB,CAAA;IAC7C,SAAS,CAAC;QACR,UAAU,CAAC,IAAI,CAAC,CAAA;QAChB,OAAO,cAAM,OAAA,UAAU,CAAC,KAAK,CAAC,EAAjB,CAAiB,CAAA;IAChC,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,IAAM,eAAe,GAAG,UAAC,CAAiD;QACxE,CAAC,CAAC,eAAe,EAAE,CAAA;QAEnB,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IACzB,CAAC,CAAA;IAED,OAAO,CACL,oBAAC,SAAS,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;QAC/F;YACE,6BACE,SAAS,EAAC,gBAAgB,EAC1B,OAAO,EAAE,cAAM,OAAA,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAxC,CAAwC,kBACzC,SAAS,mBACR,QAAQ;gBAEvB,+BAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAK;gBACpC,6BACE,GAAG,EAAE,SAAS,EACd,SAAS,EAAC,yBAAyB,EACnC,OAAO,EAAE,eAAe,iBACX,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,QAAQ,IAAI,eAAe,GACtE,CACE;YAEL,OAAO;gBACN,YAAY,CACV,oBAAC,KAAK,IAAC,EAAE,EAAC,gBAAgB,EAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,cAAM,OAAA,cAAc,CAAC,KAAK,CAAC,EAArB,CAAqB;oBAChF,6BAAK,SAAS,EAAC,+BAA+B;wBAC5C,6BAAK,SAAS,EAAC,4BAA4B;4BACzC,6BACE,GAAG,EAAE,cAAc,EACnB,SAAS,EAAC,oCAAoC,EAC9C,KAAK,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,EACrC,OAAO,EAAE;oCACP,UAAU,CACR,uBAAuB,CACrB,OAAO,EACP,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAW,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CACrE,CACF,CAAA;gCACH,CAAC,GACD;4BACF,oBAAC,IAAI,IACH,SAAS,QACT,OAAO,EAAE,cAAM,OAAA,4BAAI,SAAS,EAAC,oCAAoC,IAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAM,EAA7E,CAA6E,IAE3F,UAAC,EAAS;oCAAP,KAAK,WAAA;gCACP,OAAA,UAAU,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,KAAK;oCACzB,OAAO,CACL,2BACE,GAAG,EAAE,KAAK,EACV,SAAS,EAAC,kCAAkC,EAC5C,OAAO,EAAE;4CACP,UAAU,CAAC,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;4CACvD,KAAK,EAAE,CAAA;wCACT,CAAC,kBACa,mBAAmB,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,KAAK,IAExD,IAAI,CAAC,KAAK,CACT,CACL,CAAA;gCACH,CAAC,CAAC;4BAdF,CAcE,CAEC;4BACP,oBAAC,IAAI,IACH,SAAS,QACT,OAAO,EAAE;;oCAAM,OAAA,CACb,4BAAI,SAAS,EAAC,oCAAoC,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IACxE,MAAA,WAAW,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAA/B,CAA+B,CAAC,0CAAE,KAAK,CAC7D,CACN,CAAA;iCAAA,IAEA,UAAC,EAAS;oCAAP,KAAK,WAAA;gCACP,OAAA,WAAW,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,KAAK;oCAC1B,OAAO,CACL,2BACE,GAAG,EAAE,KAAK,EACV,SAAS,EAAC,kCAAkC,EAC5C,OAAO,EAAE;4CACP,UAAU,CAAC,uBAAuB,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;4CACxD,KAAK,EAAE,CAAA;wCACT,CAAC,kBACa,oBAAoB,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,KAAK,IAEzD,IAAI,CAAC,KAAK,CACT,CACL,CAAA;gCACH,CAAC,CAAC;4BAdF,CAcE,CAEC;4BACP,6BACE,GAAG,EAAE,cAAc,EACnB,SAAS,EAAC,oCAAoC,EAC9C,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,EACtC,OAAO,EAAE;oCACP,UAAU,CACR,uBAAuB,CACrB,OAAO,EACP,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAW,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CACrE,CACF,CAAA;gCACH,CAAC,GACD,CACE;wBACN;4BACE,6BAAK,SAAS,EAAC,4BAA4B;gCACzC,2BAAG,SAAS,EAAC,sBAAsB,UAAQ;gCAC3C,2BAAG,SAAS,EAAC,sBAAsB,UAAQ;gCAC3C,2BAAG,SAAS,EAAC,sBAAsB,UAAQ;gCAC3C,2BAAG,SAAS,EAAC,sBAAsB,UAAQ;gCAC3C,2BAAG,SAAS,EAAC,sBAAsB,UAAQ;gCAC3C,2BAAG,SAAS,EAAC,sBAAsB,UAAQ;gCAC3C,2BAAG,SAAS,EAAC,sBAAsB,UAAQ,CACvC;4BAEN,oBAAC,WAAW,IAAC,IAAI,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,oBAAoB,CAAC,OAAO,CAAC,GAAI,CACrF,CACF,CACA,EACP,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAiB,IAAK,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAiB,CACvG;YACF,CAAC,OAAO,IAAI,CACX,oBAAC,KAAK,IAAC,EAAE,EAAC,gBAAgB,EAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,cAAM,OAAA,cAAc,CAAC,KAAK,CAAC,EAArB,CAAqB;gBAChF,6BAAK,SAAS,EAAC,+BAA+B,GAAO,CAC/C,CACT,CACA,CACO,CACb,CAAA;AACH,CAAC,CAAA;AAED,eAAe,SAAS,CAAA;AAExB,MAAM,UAAU,mBAAmB,CAAC,OAAgB,EAAE,OAAgB;IACpE,IAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAE5C,6BAA6B;IAC7B,IAAM,QAAQ,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,WAAW,CAAA;IACvC,IAAM,QAAQ,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,WAAW,GAAG,GAAG,CAAA;IAE7C,IAAM,KAAK,GAAG,EAAE,CAAA;IAEhB,sBAAsB;IACtB,KAAK,IAAI,IAAI,GAAG,QAAQ,EAAE,IAAI,IAAI,QAAQ,EAAE,IAAI,EAAE,EAAE;QAClD,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;KACjD;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,IAAM,UAAU,GAAG;QACjB,SAAS;QACT,UAAU;QACV,OAAO;QACP,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,QAAQ;QACR,WAAW;QACX,SAAS;QACT,UAAU;QACV,UAAU;KACX,CAAA;IAED,OAAO,UAAU,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,KAAK,IAAK,OAAA,CAAC;QACtC,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;KAC1C,CAAC,EAHqC,CAGrC,CAAC,CAAA;AACL,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAe,EAAE,OAAe;IACrE,IAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACvE,IAAA,KAAkB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAAtC,CAAC,QAAA,EAAE,KAAK,QAAA,EAAE,GAAG,QAAyB,CAAA;IAE7C,OAAO,UAAG,OAAO,cAAI,KAAK,cAAI,GAAG,CAAE,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAe,EAAE,QAAgB;IACvE,IAAM,UAAU,GAAG,OAAO,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9D,IAAA,KAAuB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAA3C,OAAO,QAAA,EAAE,CAAC,QAAA,EAAE,MAAM,QAAyB,CAAA;IAElD,IAAI,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IAChC,IAAI,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAElC,4BAA4B;IAC5B,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;IACpC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA,CAAC,eAAe;IAE5D,IAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC/C,OAAO,UAAG,IAAI,cAAI,QAAQ,cAAI,MAAM,CAAE,CAAA;AACxC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAe;IAC3C,IAAA,KAAuB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAxC,IAAI,QAAA,EAAE,MAAM,QAAA,EAAE,IAAI,QAAsB,CAAA;IAC/C,OAAO,MAAM,CAAC,IAAI,CAAC,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAC5C,IAAA,KAAuB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAxC,KAAK,QAAA,EAAE,KAAK,QAAA,EAAE,IAAI,QAAsB,CAAA;IAC/C,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAC1C,IAAA,KAAuB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAxC,KAAK,QAAA,EAAE,MAAM,QAAA,EAAE,GAAG,QAAsB,CAAA;IAC/C,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,IAAY,EAAE,KAAa;IACnE,IAAM,IAAI,GAAwC,EAAE,CAAA;IACpD,IAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA,CAAC,gCAAgC;IAE3E,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;IAC1C,IAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;IAEnG,OAAO,IAAI,CAAC,QAAQ,EAAE,KAAK,UAAU,EAAE;QACrC,IAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QACnD,IAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QAC3C,IAAM,aAAa,GAAG,UAAG,IAAI,cAAI,KAAK,cAAI,GAAG,CAAE,CAAA;QAE/C,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,SAAA,EAAE,CAAC,CAAA;QAC3C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;KACjC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,IAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAA;IAE1B,IAAM,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;IAClC,IAAM,KAAK,GAAG,UAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC1D,IAAM,IAAI,GAAG,UAAG,OAAO,CAAC,OAAO,EAAE,CAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACpD,OAAO,UAAG,IAAI,cAAI,KAAK,cAAI,IAAI,CAAE,CAAA;AACnC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.type.js","sourceRoot":"","sources":["../../../../src/components/Input/InputDate/index.type.tsx"],"names":[],"mappings":""}
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
import { __spreadArray } from "tslib";
|
|
2
|
-
// Lib
|
|
3
|
-
import React, { useEffect, useState } from 'react';
|
|
4
|
-
import { getIn, useFormikContext } from 'formik';
|
|
5
|
-
// Images
|
|
6
|
-
import expandArrowSVG from '../../assets/expandArrow.svg';
|
|
7
|
-
import closedSVG from '../../assets/closed.svg';
|
|
8
|
-
// Include in project
|
|
9
|
-
import './index.scss';
|
|
10
|
-
import InputBase from '../InputBase';
|
|
11
|
-
import Menu from '../../Menu';
|
|
12
|
-
import Modal from '../../Modal';
|
|
13
|
-
import { createPortal } from 'react-dom';
|
|
14
|
-
import { generateMonthOptions, generateYearOptions, getDateNow, getDayInDateString, getDaysInMonthWithWeekday, getMonthInDateString, getYearInDateString, updateMonthInDateString, updateYearInDateString, } from '../InputDate';
|
|
15
|
-
// 2025-09-01
|
|
16
|
-
var InputDateRange = function (_a) {
|
|
17
|
-
var name = _a.name, label = _a.label, placeholder = _a.placeholder, _b = _a.disabled, disabled = _b === void 0 ? false : _b, _c = _a.require, require = _c === void 0 ? false : _c, _d = _a.fullWidth, fullWidth = _d === void 0 ? false : _d, _e = _a.isHideClearIcon, isHideClearIcon = _e === void 0 ? true : _e, maxYear = _a.maxYear, minYear = _a.minYear;
|
|
18
|
-
var _f = useFormikContext(), values = _f.values, touched = _f.touched, errors = _f.errors, setFieldValue = _f.setFieldValue;
|
|
19
|
-
var _g = getIn(values, name), startDate = _g[0], endDate = _g[1];
|
|
20
|
-
var isInvalid = getIn(touched, name) && Boolean(getIn(errors, name));
|
|
21
|
-
var _h = useState(startDate ? startDate : getDateNow()), showDay = _h[0], setShowDay = _h[1];
|
|
22
|
-
var _j = useState(false), isOpenModal = _j[0], setIsOpenModal = _j[1];
|
|
23
|
-
var yearOption = generateYearOptions(minYear, maxYear);
|
|
24
|
-
var monthOption = generateMonthOptions();
|
|
25
|
-
function CalendarRow(_a) {
|
|
26
|
-
var year = _a.year, month = _a.month;
|
|
27
|
-
var days = getDaysInMonthWithWeekday(year, month);
|
|
28
|
-
// Mapping JavaScript getDay() → Thai order (เสาร์=0, อาทิตย์=1, ..., ศุกร์=6)
|
|
29
|
-
var mapToThaiWeek = function (dayIndex) { return dayIndex % 7; }; // Sunday(0) → 1 ... Saturday(6) → 0
|
|
30
|
-
// ช่องว่างก่อนเริ่มต้นเดือน
|
|
31
|
-
var firstDayThaiIndex = mapToThaiWeek(new Date("".concat(year, "-").concat(month, "-01")).getDay());
|
|
32
|
-
var emptyStartDays = Array(firstDayThaiIndex).fill(null);
|
|
33
|
-
var allDays = __spreadArray(__spreadArray([], emptyStartDays, true), days.map(function (d) { return d.date.split('-')[2]; }), true); // ['01', '02', ...]
|
|
34
|
-
// เติม null ให้ครบ 42 ช่อง (6 แถว × 7 วัน)
|
|
35
|
-
while (allDays.length < 42) {
|
|
36
|
-
allDays.push(null);
|
|
37
|
-
}
|
|
38
|
-
// แบ่งเป็นแถวละ 7 วัน
|
|
39
|
-
var weeks = [];
|
|
40
|
-
for (var i = 0; i < allDays.length; i += 7) {
|
|
41
|
-
weeks.push(allDays.slice(i, i + 7));
|
|
42
|
-
}
|
|
43
|
-
return (React.createElement(React.Fragment, null, weeks.map(function (week, rowIndex) { return (React.createElement("div", { key: rowIndex, className: "DBui-inputDateRangeRowDay" }, week.map(function (day, i) { return (React.createElement("p", { key: i, className: "DBui-inputDateRangeDay", onClick: function () {
|
|
44
|
-
if (day) {
|
|
45
|
-
var targetDate = "".concat(getYearInDateString(showDay), "-").concat(getMonthInDateString(showDay), "-").concat(day);
|
|
46
|
-
if (!startDate) {
|
|
47
|
-
setFieldValue(name, [targetDate, '']);
|
|
48
|
-
}
|
|
49
|
-
else if (startDate && !endDate) {
|
|
50
|
-
if (startDate < targetDate) {
|
|
51
|
-
setFieldValue(name, [startDate, targetDate]);
|
|
52
|
-
setIsOpenModal(false);
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
setFieldValue(name, [targetDate, '']);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
setFieldValue(name, [targetDate, '']);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}, "data-checked": (function () {
|
|
63
|
-
if (!day)
|
|
64
|
-
return false;
|
|
65
|
-
else if (startDate && !endDate) {
|
|
66
|
-
return ("".concat(getYearInDateString(startDate), "-").concat(getMonthInDateString(startDate), "-").concat(getDayInDateString(startDate)) ===
|
|
67
|
-
"".concat(getYearInDateString(showDay), "-").concat(getMonthInDateString(showDay), "-").concat(day));
|
|
68
|
-
}
|
|
69
|
-
else if (startDate && endDate) {
|
|
70
|
-
var targetDate = "".concat(getYearInDateString(showDay), "-").concat(getMonthInDateString(showDay), "-").concat(day);
|
|
71
|
-
// ตรวจสอบว่า targetDate อยู่ระหว่าง start และ end (inclusive)
|
|
72
|
-
return targetDate >= startDate && targetDate <= endDate;
|
|
73
|
-
}
|
|
74
|
-
else
|
|
75
|
-
return false;
|
|
76
|
-
})(), "data-hidden-hover": !Boolean(day) }, day || '')); }))); })));
|
|
77
|
-
}
|
|
78
|
-
var _k = useState(false), mounted = _k[0], setMounted = _k[1];
|
|
79
|
-
useEffect(function () {
|
|
80
|
-
setMounted(true);
|
|
81
|
-
return function () { return setMounted(false); };
|
|
82
|
-
}, []);
|
|
83
|
-
var handleCleaState = function (e) {
|
|
84
|
-
e.stopPropagation();
|
|
85
|
-
setFieldValue(name, ['', '']);
|
|
86
|
-
};
|
|
87
|
-
return (React.createElement(InputBase, { name: name, label: label, require: require, fullWidth: fullWidth, isInvalid: isInvalid },
|
|
88
|
-
React.createElement(React.Fragment, null,
|
|
89
|
-
React.createElement("div", { className: "DBui-inputDateRange", onClick: function () { return (disabled ? null : setIsOpenModal(true)); }, "data-invalid": isInvalid, "data-disabled": disabled },
|
|
90
|
-
React.createElement("p", null, startDate ? "".concat(startDate, " to ").concat(endDate ? endDate : '') : placeholder),
|
|
91
|
-
React.createElement("img", { src: closedSVG, className: "DBui-clearIconInputDateRange", onClick: handleCleaState, "data-hidden": (getIn(values, name)[0] === '' && getIn(values, name)[1] === '') || disabled || isHideClearIcon })),
|
|
92
|
-
mounted &&
|
|
93
|
-
createPortal(React.createElement(Modal, { id: "modalInputDate", open: isOpenModal, onClose: function () { return setIsOpenModal(false); } },
|
|
94
|
-
React.createElement("div", { className: "DBui-inputDateRangeWrapperCalendar" },
|
|
95
|
-
React.createElement("div", { className: "DBui-inputDateRangeRowMonthYear" },
|
|
96
|
-
React.createElement("img", { src: expandArrowSVG, className: "DBui-inputDateRangeRowMonthYearSelected", style: { transform: 'rotate(90deg)' }, onClick: function () {
|
|
97
|
-
setShowDay(updateMonthInDateString(showDay, String(Number(showDay.split('-')[1]) - 1).padStart(2, '0')));
|
|
98
|
-
} }),
|
|
99
|
-
React.createElement(Menu, { isInModal: true, trigger: function () { return React.createElement("h4", { className: "DBui-inputDateRangeRowMonthYearSelected" }, showDay.slice(0, 4)); } }, function (_a) {
|
|
100
|
-
var close = _a.close;
|
|
101
|
-
return yearOption.map(function (data, index) {
|
|
102
|
-
return (React.createElement("p", { key: index, className: "DBui-inputDateRangeRowMonthYearOption", onClick: function () {
|
|
103
|
-
setShowDay(updateYearInDateString(showDay, data.value));
|
|
104
|
-
close();
|
|
105
|
-
}, "data-checked": getYearInDateString(showDay) === data.value }, data.label));
|
|
106
|
-
});
|
|
107
|
-
}),
|
|
108
|
-
React.createElement(Menu, { isInModal: true, trigger: function () {
|
|
109
|
-
var _a;
|
|
110
|
-
return (React.createElement("h4", { className: "DBui-inputDateRangeRowMonthYearSelected", style: { width: '7rem' } }, (_a = monthOption.find(function (e) { return e.value === showDay.slice(5, 7); })) === null || _a === void 0 ? void 0 : _a.label));
|
|
111
|
-
} }, function (_a) {
|
|
112
|
-
var close = _a.close;
|
|
113
|
-
return monthOption.map(function (data, index) {
|
|
114
|
-
return (React.createElement("p", { key: index, className: "DBui-inputDateRangeRowMonthYearOption", onClick: function () {
|
|
115
|
-
setShowDay(updateMonthInDateString(showDay, data.value));
|
|
116
|
-
close();
|
|
117
|
-
}, "data-checked": getMonthInDateString(showDay) === data.value }, data.label));
|
|
118
|
-
});
|
|
119
|
-
}),
|
|
120
|
-
React.createElement("img", { src: expandArrowSVG, className: "DBui-inputDateRangeRowMonthYearSelected", style: { transform: 'rotate(-90deg)' }, onClick: function () {
|
|
121
|
-
setShowDay(updateMonthInDateString(showDay, String(Number(showDay.split('-')[1]) + 1).padStart(2, '0')));
|
|
122
|
-
} })),
|
|
123
|
-
React.createElement("div", null,
|
|
124
|
-
React.createElement("div", { className: "DBui-inputDateRangeRowHeaderDay" },
|
|
125
|
-
React.createElement("p", { className: "DBui-inputDateRangeHeader" }, "Sun"),
|
|
126
|
-
React.createElement("p", { className: "DBui-inputDateRangeHeader" }, "Mon"),
|
|
127
|
-
React.createElement("p", { className: "DBui-inputDateRangeHeader" }, "Tue"),
|
|
128
|
-
React.createElement("p", { className: "DBui-inputDateRangeHeader" }, "Wed"),
|
|
129
|
-
React.createElement("p", { className: "DBui-inputDateRangeHeader" }, "Thu"),
|
|
130
|
-
React.createElement("p", { className: "DBui-inputDateRangeHeader" }, "Fri"),
|
|
131
|
-
React.createElement("p", { className: "DBui-inputDateRangeHeader" }, "Sat")),
|
|
132
|
-
React.createElement(CalendarRow, { year: getYearInDateString(showDay), month: getMonthInDateString(showDay) })))), document.getElementById('root') || document.getElementById('__next')),
|
|
133
|
-
!mounted && (React.createElement(Modal, { id: "modalInputDate", open: isOpenModal, onClose: function () { return setIsOpenModal(false); } },
|
|
134
|
-
React.createElement("div", { className: "DBui-inputDateRangeWrapperCalendar" }))))));
|
|
135
|
-
};
|
|
136
|
-
export default InputDateRange;
|
|
137
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Input/InputDateRange/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.type.js","sourceRoot":"","sources":["../../../../src/components/Input/InputDateRange/index.type.tsx"],"names":[],"mappings":""}
|
|
@@ -1,185 +0,0 @@
|
|
|
1
|
-
import { __spreadArray } from "tslib";
|
|
2
|
-
// Lib
|
|
3
|
-
import React, { useEffect, useRef, useState } from 'react';
|
|
4
|
-
import { getIn, useFormikContext } from 'formik';
|
|
5
|
-
// Images
|
|
6
|
-
import expandArrowSVG from '../../assets/expandArrow.svg';
|
|
7
|
-
import closedSVG from '../../assets/closed.svg';
|
|
8
|
-
// Include in project
|
|
9
|
-
import './index.scss';
|
|
10
|
-
import InputBase from '../InputBase';
|
|
11
|
-
import Menu from '../../Menu';
|
|
12
|
-
import Modal from '../../Modal';
|
|
13
|
-
import Button from '../../Button';
|
|
14
|
-
import { createPortal } from 'react-dom';
|
|
15
|
-
import { generateMonthOptions, generateYearOptions, getDateNow, getDayInDateString, getDaysInMonthWithWeekday, getMonthInDateString, getYearInDateString, updateMonthInDateString, updateYearInDateString, } from '../InputDate';
|
|
16
|
-
// 2025-09-01
|
|
17
|
-
var InputDateTime = function (_a) {
|
|
18
|
-
var name = _a.name, label = _a.label, placeholder = _a.placeholder, _b = _a.disabled, disabled = _b === void 0 ? false : _b, _c = _a.require, require = _c === void 0 ? false : _c, _d = _a.fullWidth, fullWidth = _d === void 0 ? false : _d, _e = _a.isHideClearIcon, isHideClearIcon = _e === void 0 ? true : _e, maxYear = _a.maxYear, minYear = _a.minYear;
|
|
19
|
-
var hourWrapperRef = useRef(null);
|
|
20
|
-
var minWrapperRef = useRef(null);
|
|
21
|
-
var _f = useFormikContext(), values = _f.values, touched = _f.touched, errors = _f.errors, setFieldValue = _f.setFieldValue;
|
|
22
|
-
var realValue = getIn(values, name);
|
|
23
|
-
var isInvalid = getIn(touched, name) && Boolean(getIn(errors, name));
|
|
24
|
-
var _g = useState(realValue ? realValue : getDateNow()), showDay = _g[0], setShowDay = _g[1];
|
|
25
|
-
var _h = useState(realValue ? realValue.split('T')[0] : getDateNow()), selectedDay = _h[0], setSelectedDay = _h[1];
|
|
26
|
-
var _j = useState(realValue ? realValue.split('T')[1].split(':')[0] : '00'), selectedHour = _j[0], setSelectedHour = _j[1];
|
|
27
|
-
var _k = useState(realValue ? realValue.split('T')[1].split(':')[1] : '00'), selectedMin = _k[0], setSelectedMin = _k[1];
|
|
28
|
-
useEffect(function () {
|
|
29
|
-
setShowDay(realValue ? realValue : getDateNow());
|
|
30
|
-
setSelectedDay(realValue ? realValue.split('T')[0] : getDateNow());
|
|
31
|
-
setSelectedHour(realValue ? realValue.split('T')[1].split(':')[0] : '00');
|
|
32
|
-
setSelectedMin(realValue ? realValue.split('T')[1].split(':')[1] : '00');
|
|
33
|
-
}, [realValue]);
|
|
34
|
-
var _l = useState(false), isOpenModal = _l[0], setIsOpenModal = _l[1];
|
|
35
|
-
var yearOption = generateYearOptions(minYear, maxYear);
|
|
36
|
-
var monthOption = generateMonthOptions();
|
|
37
|
-
var hourOption = generateHourOptions();
|
|
38
|
-
var minOption = generateMinuteOptions();
|
|
39
|
-
useEffect(function () {
|
|
40
|
-
function scrollToChecked(wrapper) {
|
|
41
|
-
if (!wrapper)
|
|
42
|
-
return;
|
|
43
|
-
var checkedEl = wrapper.querySelector('[data-checked="true"]');
|
|
44
|
-
if (checkedEl) {
|
|
45
|
-
checkedEl.scrollIntoView({ behavior: 'smooth', block: 'center' });
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
scrollToChecked(hourWrapperRef.current);
|
|
49
|
-
scrollToChecked(minWrapperRef.current);
|
|
50
|
-
}, [selectedHour, selectedMin]);
|
|
51
|
-
function CalendarRow(_a) {
|
|
52
|
-
var year = _a.year, month = _a.month;
|
|
53
|
-
var days = getDaysInMonthWithWeekday(year, month);
|
|
54
|
-
// Mapping JavaScript getDay() → Thai order (เสาร์=0, อาทิตย์=1, ..., ศุกร์=6)
|
|
55
|
-
var mapToThaiWeek = function (dayIndex) { return dayIndex % 7; }; // Sunday(0) → 1 ... Saturday(6) → 0
|
|
56
|
-
// ช่องว่างก่อนเริ่มต้นเดือน
|
|
57
|
-
var firstDayThaiIndex = mapToThaiWeek(new Date("".concat(year, "-").concat(month, "-01")).getDay());
|
|
58
|
-
var emptyStartDays = Array(firstDayThaiIndex).fill(null);
|
|
59
|
-
var allDays = __spreadArray(__spreadArray([], emptyStartDays, true), days.map(function (d) { return d.date.split('-')[2]; }), true); // ['01', '02', ...]
|
|
60
|
-
// เติม null ให้ครบ 42 ช่อง (6 แถว × 7 วัน)
|
|
61
|
-
while (allDays.length < 42) {
|
|
62
|
-
allDays.push(null);
|
|
63
|
-
}
|
|
64
|
-
// แบ่งเป็นแถวละ 7 วัน
|
|
65
|
-
var weeks = [];
|
|
66
|
-
for (var i = 0; i < allDays.length; i += 7) {
|
|
67
|
-
weeks.push(allDays.slice(i, i + 7));
|
|
68
|
-
}
|
|
69
|
-
return (React.createElement(React.Fragment, null, weeks.map(function (week, rowIndex) { return (React.createElement("div", { key: rowIndex, className: "DBui-inputDateTimeRowDay" }, week.map(function (day, i) {
|
|
70
|
-
return (React.createElement("p", { key: i, className: "DBui-inputDateTimeDay", onClick: function () {
|
|
71
|
-
if (day) {
|
|
72
|
-
setSelectedDay("".concat(getYearInDateString(showDay), "-").concat(getMonthInDateString(showDay), "-").concat(day));
|
|
73
|
-
}
|
|
74
|
-
}, "data-checked": "".concat(getYearInDateString(selectedDay), "-").concat(getMonthInDateString(selectedDay), "-").concat(getDayInDateString(selectedDay).split('T')[0]) ===
|
|
75
|
-
"".concat(getYearInDateString(showDay), "-").concat(getMonthInDateString(showDay), "-").concat(day), "data-hidden-hover": !Boolean(day) }, day || ''));
|
|
76
|
-
}))); })));
|
|
77
|
-
}
|
|
78
|
-
var readingValue = function (dateString) {
|
|
79
|
-
var _a = dateString.split('T'), date = _a[0], time = _a[1];
|
|
80
|
-
return "".concat(date, " ").concat(time);
|
|
81
|
-
};
|
|
82
|
-
var _m = useState(false), mounted = _m[0], setMounted = _m[1];
|
|
83
|
-
useEffect(function () {
|
|
84
|
-
setMounted(true);
|
|
85
|
-
return function () { return setMounted(false); };
|
|
86
|
-
}, []);
|
|
87
|
-
var handleCleaState = function (e) {
|
|
88
|
-
e.stopPropagation();
|
|
89
|
-
setFieldValue(name, '');
|
|
90
|
-
};
|
|
91
|
-
return (React.createElement(InputBase, { name: name, label: label, require: require, fullWidth: fullWidth, isInvalid: isInvalid },
|
|
92
|
-
React.createElement(React.Fragment, null,
|
|
93
|
-
React.createElement("div", { className: "DBui-inputDateTime", onClick: function () { return (disabled ? null : setIsOpenModal(true)); }, "data-invalid": isInvalid, "data-disabled": disabled },
|
|
94
|
-
React.createElement("p", null, realValue ? readingValue(realValue) : placeholder),
|
|
95
|
-
React.createElement("img", { src: closedSVG, className: "DBui-clearIconInputDateTime", onClick: handleCleaState, "data-hidden": getIn(values, name) === '' || disabled || isHideClearIcon })),
|
|
96
|
-
mounted &&
|
|
97
|
-
createPortal(React.createElement(Modal, { id: "modalInputDateTime", open: isOpenModal, onClose: function () { return setIsOpenModal(false); } },
|
|
98
|
-
React.createElement("div", { className: "DBui-inputDateTimeWrapperCalendar" },
|
|
99
|
-
React.createElement("div", { className: "DBui-inputDateTimeWrapperYearMonthDayTime" },
|
|
100
|
-
React.createElement("div", { className: "DBui-inputDateTimeWrapperYearMonthDay" },
|
|
101
|
-
React.createElement("div", { className: "DBui-inputDateTimeRowMonthYear" },
|
|
102
|
-
React.createElement("img", { src: expandArrowSVG, className: "DBui-inputDateTimeRowMonthYearSelected", style: { transform: 'rotate(90deg)' }, onClick: function () {
|
|
103
|
-
setShowDay(updateMonthInDateString(showDay, String(Number(showDay.split('-')[1]) - 1).padStart(2, '0')));
|
|
104
|
-
} }),
|
|
105
|
-
React.createElement(Menu, { isInModal: true, trigger: function () { return (React.createElement("h4", { className: "DBui-inputDateTimeRowMonthYearSelected" }, showDay.slice(0, 4))); } }, function (_a) {
|
|
106
|
-
var close = _a.close;
|
|
107
|
-
return yearOption.map(function (data, index) {
|
|
108
|
-
return (React.createElement("p", { key: index, className: "DBui-inputDateTimeRowMonthYearOption", onClick: function () {
|
|
109
|
-
setShowDay(updateYearInDateString(showDay, data.value));
|
|
110
|
-
close();
|
|
111
|
-
}, "data-checked": getYearInDateString(showDay) === data.value }, data.label));
|
|
112
|
-
});
|
|
113
|
-
}),
|
|
114
|
-
React.createElement(Menu, { isInModal: true, trigger: function () {
|
|
115
|
-
var _a;
|
|
116
|
-
return (React.createElement("h4", { className: "DBui-inputDateTimeRowMonthYearSelected", style: { width: '7rem' } }, (_a = monthOption.find(function (e) { return e.value === showDay.slice(5, 7); })) === null || _a === void 0 ? void 0 : _a.label));
|
|
117
|
-
} }, function (_a) {
|
|
118
|
-
var close = _a.close;
|
|
119
|
-
return monthOption.map(function (data, index) {
|
|
120
|
-
return (React.createElement("p", { key: index, className: "DBui-inputDateTimeRowMonthYearOption", onClick: function () {
|
|
121
|
-
setShowDay(updateMonthInDateString(showDay, data.value));
|
|
122
|
-
close();
|
|
123
|
-
}, "data-checked": getMonthInDateString(showDay) === data.value }, data.label));
|
|
124
|
-
});
|
|
125
|
-
}),
|
|
126
|
-
React.createElement("img", { src: expandArrowSVG, className: "DBui-inputDateTimeRowMonthYearSelected", style: { transform: 'rotate(-90deg)' }, onClick: function () {
|
|
127
|
-
setShowDay(updateMonthInDateString(showDay, String(Number(showDay.split('-')[1]) + 1).padStart(2, '0')));
|
|
128
|
-
} })),
|
|
129
|
-
React.createElement("div", null,
|
|
130
|
-
React.createElement("div", { className: "DBui-inputDateTimeRowHeaderDay" },
|
|
131
|
-
React.createElement("p", { className: "DBui-inputDateTimeHeader" }, "Sun"),
|
|
132
|
-
React.createElement("p", { className: "DBui-inputDateTimeHeader" }, "Mon"),
|
|
133
|
-
React.createElement("p", { className: "DBui-inputDateTimeHeader" }, "Tue"),
|
|
134
|
-
React.createElement("p", { className: "DBui-inputDateTimeHeader" }, "Wed"),
|
|
135
|
-
React.createElement("p", { className: "DBui-inputDateTimeHeader" }, "Thu"),
|
|
136
|
-
React.createElement("p", { className: "DBui-inputDateTimeHeader" }, "Fri"),
|
|
137
|
-
React.createElement("p", { className: "DBui-inputDateTimeHeader" }, "Sat")),
|
|
138
|
-
React.createElement(CalendarRow, { year: getYearInDateString(showDay), month: getMonthInDateString(showDay) }))),
|
|
139
|
-
React.createElement("div", { className: "DBui-inputDateTimeWrapperHourMin" },
|
|
140
|
-
React.createElement("p", { style: { textAlign: 'center' } }, "Hr"),
|
|
141
|
-
React.createElement("div", { className: "DBui-inputDateTimeWrapperHourMinOptions", ref: hourWrapperRef }, hourOption.map(function (hour) {
|
|
142
|
-
return (React.createElement("p", { key: hour.value, "data-checked": selectedHour === hour.value, onClick: function () { return setSelectedHour(hour.value); } }, hour.value));
|
|
143
|
-
}))),
|
|
144
|
-
React.createElement("div", { className: "DBui-inputDateTimeWrapperHourMin" },
|
|
145
|
-
React.createElement("p", { style: { textAlign: 'center' } }, "Min"),
|
|
146
|
-
React.createElement("div", { className: "DBui-inputDateTimeWrapperHourMinOptions", ref: minWrapperRef }, minOption.map(function (min) { return (React.createElement("p", { key: min.value, "data-checked": selectedMin === min.value, onClick: function () { return setSelectedMin(min.value); } }, min.value)); })))),
|
|
147
|
-
React.createElement("div", { className: "DBui-inputDateTimeWrapperButton" },
|
|
148
|
-
React.createElement(Button, { type: "button", onClick: function () {
|
|
149
|
-
var hour = getHourNow();
|
|
150
|
-
var min = getMinNow();
|
|
151
|
-
if (selectedHour)
|
|
152
|
-
hour = selectedHour;
|
|
153
|
-
if (selectedMin)
|
|
154
|
-
min = selectedMin;
|
|
155
|
-
setFieldValue(name, "".concat(selectedDay, "T").concat(hour, ":").concat(min));
|
|
156
|
-
setIsOpenModal(false);
|
|
157
|
-
}, name: "Save", className: "DBui-inputDateTimeButtonSave" }),
|
|
158
|
-
React.createElement(Button, { type: "button", onClick: function () { return setIsOpenModal(false); }, name: "Cancle", className: "DBui-inputDateTimeButtonCancle" })))), document.getElementById('root') || document.getElementById('__next')),
|
|
159
|
-
!mounted && (React.createElement(Modal, { id: "modalInputDateTime", open: isOpenModal, onClose: function () { return setIsOpenModal(false); } },
|
|
160
|
-
React.createElement("div", { className: "DBui-inputDateTimeWrapperCalendar" }))))));
|
|
161
|
-
};
|
|
162
|
-
export default InputDateTime;
|
|
163
|
-
function generateHourOptions() {
|
|
164
|
-
return Array.from({ length: 24 }, function (_, i) {
|
|
165
|
-
var value = String(i).padStart(2, '0');
|
|
166
|
-
return { label: value, value: value };
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
function generateMinuteOptions() {
|
|
170
|
-
return Array.from({ length: 60 }, function (_, i) {
|
|
171
|
-
var value = String(i).padStart(2, '0');
|
|
172
|
-
return { label: value, value: value };
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
function getHourNow() {
|
|
176
|
-
var dateNow = new Date();
|
|
177
|
-
var hour = "".concat(dateNow.getHours()).padStart(2, '0');
|
|
178
|
-
return "".concat(hour);
|
|
179
|
-
}
|
|
180
|
-
function getMinNow() {
|
|
181
|
-
var dateNow = new Date();
|
|
182
|
-
var min = "".concat(dateNow.getMinutes()).padStart(2, '0');
|
|
183
|
-
return "".concat(min);
|
|
184
|
-
}
|
|
185
|
-
//# sourceMappingURL=index.js.map
|