@react-fabric/date 1.0.0-beta.8 → 1.0.1
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/README.md +2 -9
- package/{src/components/Date.module.css → css/_date.css} +5 -5
- package/{src/superdate/SuperDate.module.css → css/styles.css} +2 -8
- package/dist/cjs/components/DateCell.js +5 -7
- package/dist/cjs/components/DateHeader.js +27 -20
- package/dist/cjs/components/DatePage.js +10 -12
- package/dist/cjs/components/DecadePage.js +3 -3
- package/dist/cjs/components/MonthPage.js +3 -3
- package/dist/cjs/components/TimeSliders.js +36 -35
- package/dist/cjs/components/YearPage.js +3 -3
- package/dist/cjs/display/DateDisplay.js +25 -8
- package/dist/cjs/display/DateDuration.js +155 -0
- package/dist/cjs/hijri/DateConverter.js +154 -0
- package/dist/cjs/hijri/FormatDate.js +116 -0
- package/dist/cjs/hijri/HijriDate.js +531 -0
- package/dist/cjs/hijri/StringDateParser.js +74 -0
- package/dist/cjs/hijri/index.js +15 -1025
- package/dist/cjs/hijri/initializer.js +113 -0
- package/dist/cjs/hijri/locales.js +19 -0
- package/dist/cjs/hijri/safe.js +17 -0
- package/dist/cjs/i18n/ar/date.json.js +213 -0
- package/dist/cjs/i18n/en/date.json.js +83 -0
- package/dist/cjs/i18n/index.js +4 -10
- package/dist/cjs/index.js +41 -2
- package/dist/cjs/panels/BasePanel.js +6 -5
- package/dist/cjs/panels/DatePanel.js +45 -21
- package/dist/cjs/{superdate → panels}/EventPanel.js +28 -12
- package/dist/cjs/panels/RangePanel.js +49 -19
- package/dist/cjs/utils/dateUtil.js +3 -5
- package/dist/esm/components/DateCell.js +6 -8
- package/dist/esm/components/DateHeader.js +28 -21
- package/dist/esm/components/DatePage.js +11 -13
- package/dist/esm/components/DecadePage.js +3 -3
- package/dist/esm/components/MonthPage.js +3 -3
- package/dist/esm/components/TimeSliders.js +38 -37
- package/dist/esm/components/YearPage.js +3 -3
- package/dist/esm/display/DateDisplay.js +26 -9
- package/dist/esm/display/DateDuration.js +155 -0
- package/dist/esm/hijri/DateConverter.js +152 -0
- package/dist/esm/hijri/FormatDate.js +113 -0
- package/dist/esm/hijri/HijriDate.js +528 -0
- package/dist/esm/hijri/StringDateParser.js +74 -0
- package/dist/esm/hijri/index.js +15 -1025
- package/dist/esm/hijri/initializer.js +113 -0
- package/dist/esm/hijri/locales.js +18 -0
- package/dist/esm/hijri/safe.js +14 -0
- package/dist/esm/i18n/ar/date.json.js +209 -0
- package/dist/esm/i18n/en/date.json.js +79 -0
- package/dist/esm/i18n/index.js +2 -8
- package/dist/esm/index.js +36 -1
- package/dist/esm/panels/BasePanel.js +6 -5
- package/dist/esm/panels/DatePanel.js +48 -24
- package/dist/esm/{superdate → panels}/EventPanel.js +29 -13
- package/dist/esm/panels/RangePanel.js +52 -22
- package/dist/esm/utils/dateUtil.js +4 -6
- package/dist/types/components/DateCell.d.ts +1 -1
- package/dist/types/components/DateHeader.d.ts +1 -1
- package/dist/types/components/DatePage.d.ts +1 -1
- package/dist/types/components/DecadePage.d.ts +1 -1
- package/dist/types/components/MonthPage.d.ts +1 -1
- package/dist/types/components/TimeSliders.d.ts +1 -1
- package/dist/types/components/YearPage.d.ts +1 -1
- package/dist/types/display/DateDisplay.d.ts +17 -4
- package/dist/types/display/DateDuration.d.ts +25 -0
- package/dist/types/hijri/DateConverter.d.ts +13 -0
- package/dist/types/hijri/FormatDate.d.ts +19 -0
- package/dist/types/hijri/HijriDate.d.ts +214 -0
- package/dist/types/hijri/StringDateParser.d.ts +11 -0
- package/dist/types/hijri/index.d.ts +2 -2
- package/dist/types/hijri/initializer.d.ts +129 -0
- package/dist/types/hijri/locales.d.ts +19 -0
- package/dist/types/hijri/safe.d.ts +3 -0
- package/dist/types/index.d.ts +32 -1
- package/dist/types/panels/BasePanel.d.ts +1 -1
- package/dist/types/panels/DatePanel.d.ts +22 -1
- package/dist/types/panels/EventPanel.d.ts +17 -0
- package/dist/types/panels/RangePanel.d.ts +19 -1
- package/dist/types/types/index.d.ts +8 -40
- package/package.json +14 -21
- package/src/components/DateCell.tsx +20 -75
- package/src/components/DateHeader.tsx +27 -78
- package/src/components/DatePage.tsx +11 -36
- package/src/components/DecadePage.tsx +2 -2
- package/src/components/MonthPage.tsx +2 -2
- package/src/components/TimeSliders.tsx +20 -60
- package/src/components/YearPage.tsx +2 -2
- package/src/display/DateDisplay.tsx +26 -38
- package/src/display/DateDuration.tsx +170 -0
- package/src/hijri/DateConverter.js +175 -0
- package/src/hijri/FormatDate.js +134 -0
- package/src/hijri/HijriDate.js +477 -0
- package/src/hijri/StringDateParser.js +68 -0
- package/src/hijri/index.js +16 -1535
- package/src/hijri/initializer.js +96 -0
- package/src/hijri/locales.js +109 -0
- package/src/hijri/safe.js +16 -0
- package/src/i18n/ar/date.json +203 -0
- package/src/i18n/en/date.json +73 -0
- package/src/i18n/index.ts +2 -5
- package/src/index.ts +29 -18
- package/src/panels/BasePanel.tsx +7 -10
- package/src/panels/DatePanel.tsx +41 -33
- package/src/{superdate → panels}/EventPanel.tsx +52 -53
- package/src/panels/RangePanel.tsx +54 -60
- package/src/types/index.ts +8 -43
- package/src/utils/dateUtil.ts +26 -82
- package/dist/cjs/components/Date.module.css +0 -1
- package/dist/cjs/i18n/ar.json.js +0 -25
- package/dist/cjs/i18n/en.json.js +0 -21
- package/dist/cjs/i18n/superdate/ar.json.js +0 -86
- package/dist/cjs/i18n/superdate/en.json.js +0 -93
- package/dist/cjs/superdate/QuickSelect.js +0 -134
- package/dist/cjs/superdate/RelativeInput.js +0 -79
- package/dist/cjs/superdate/RelativePanel.js +0 -91
- package/dist/cjs/superdate/SuperDate.module.css +0 -1
- package/dist/cjs/superdate/Superdate.js +0 -177
- package/dist/esm/components/Date.module.css +0 -1
- package/dist/esm/i18n/ar.json.js +0 -21
- package/dist/esm/i18n/en.json.js +0 -18
- package/dist/esm/i18n/superdate/ar.json.js +0 -79
- package/dist/esm/i18n/superdate/en.json.js +0 -85
- package/dist/esm/superdate/QuickSelect.js +0 -134
- package/dist/esm/superdate/RelativeInput.js +0 -79
- package/dist/esm/superdate/RelativePanel.js +0 -91
- package/dist/esm/superdate/SuperDate.module.css +0 -1
- package/dist/esm/superdate/Superdate.js +0 -176
- package/dist/types/superdate/EventPanel.d.ts +0 -4
- package/dist/types/superdate/QuickSelect.d.ts +0 -1
- package/dist/types/superdate/RelativeInput.d.ts +0 -1
- package/dist/types/superdate/RelativePanel.d.ts +0 -1
- package/dist/types/superdate/Superdate.d.ts +0 -17
- package/src/i18n/ar.json +0 -14
- package/src/i18n/en.json +0 -13
- package/src/i18n/superdate/ar.json +0 -70
- package/src/i18n/superdate/en.json +0 -75
- package/src/superdate/QuickSelect.tsx +0 -121
- package/src/superdate/RelativeInput.tsx +0 -64
- package/src/superdate/RelativePanel.tsx +0 -103
- package/src/superdate/Superdate.tsx +0 -198
package/README.md
CHANGED
|
@@ -21,12 +21,12 @@
|
|
|
21
21
|
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
|
-
@layer
|
|
25
|
-
.dateHeader {
|
|
26
|
-
box-shadow: 0 -1px 0
|
|
24
|
+
@layer components {
|
|
25
|
+
.fabric-dateHeader {
|
|
26
|
+
box-shadow: 0 -1px 0 --alpha(var(--color-tint-200) / 50%) inset;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
.timeSlider {
|
|
29
|
+
.fabric-date-timeSlider {
|
|
30
30
|
height: 11.25rem;
|
|
31
31
|
|
|
32
32
|
&::before,
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
content: "";
|
|
35
35
|
z-index: 10;
|
|
36
36
|
display: block;
|
|
37
|
-
box-shadow: 0 0 3rem 0.25rem
|
|
37
|
+
box-shadow: 0 0 3rem 0.25rem var(--color-tint-600);
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
&::before {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
*
|
|
6
6
|
* The MIT License (MIT)
|
|
7
|
-
* Copyright (c)
|
|
7
|
+
* Copyright (c) 2025 Adarsh Pastakia
|
|
8
8
|
*
|
|
9
9
|
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
|
10
10
|
* and associated documentation files (the "Software"), to deal in the Software without restriction,
|
|
@@ -21,10 +21,4 @@
|
|
|
21
21
|
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
|
-
@
|
|
25
|
-
.superDate {
|
|
26
|
-
&:root {
|
|
27
|
-
font-size: 10px;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
24
|
+
@import "./_date.css";
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
4
4
|
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
5
5
|
var utilities = require('@react-fabric/utilities');
|
|
6
|
-
var classNames = require('classnames');
|
|
7
6
|
var dateFns = require('date-fns');
|
|
8
7
|
var i18next = require('i18next');
|
|
9
8
|
var react = require('react');
|
|
@@ -12,9 +11,8 @@ var dateUtil = require('../utils/dateUtil.js');
|
|
|
12
11
|
var jsxRuntime = require('react/jsx-runtime');
|
|
13
12
|
|
|
14
13
|
var _excluded = ["date", "isMuted"];
|
|
15
|
-
|
|
16
|
-
var
|
|
17
|
-
date = _ref$date === void 0 ? new Date() : _ref$date,
|
|
14
|
+
function DateCell(_ref) {
|
|
15
|
+
var date = _ref.date,
|
|
18
16
|
_ref$isMuted = _ref.isMuted,
|
|
19
17
|
isMuted = _ref$isMuted === void 0 ? false : _ref$isMuted,
|
|
20
18
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
@@ -32,7 +30,7 @@ var DateCell = function DateCell(_ref) {
|
|
|
32
30
|
}, [date]);
|
|
33
31
|
var isSelected = react.useMemo(function () {
|
|
34
32
|
return selected && !utilities.isArray(selected) && dateFns.isSameDay(date, selected);
|
|
35
|
-
}, [date,
|
|
33
|
+
}, [date, selected]);
|
|
36
34
|
var isMarked = react.useMemo(function () {
|
|
37
35
|
switch (page) {
|
|
38
36
|
case index.PageType.MONTH:
|
|
@@ -81,7 +79,7 @@ var DateCell = function DateCell(_ref) {
|
|
|
81
79
|
}, [date, dateDisabled, isSelected]);
|
|
82
80
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
83
81
|
role: "none",
|
|
84
|
-
className:
|
|
82
|
+
className: utilities.cn("p-1 m-px text-sm text-center rounded", className, !isDisabled && isMuted && "text-tint-500", (isToday || isMarked) && "underline underline-offset-4 text-primary-700", (!!isSelected || isHilightEdge) && "bg-primary-400 text-white", isHilightEdge === "start" && "rounded-e-none", isHilightEdge === "end" && "rounded-s-none", isHilight && "bg-primary-50 rounded-none", !isDisabled && "cursor-pointer hover:bg-primary-100 hover:text-primary-700", isDisabled && "text-tint-100 cursor-not-allowed"),
|
|
85
83
|
onFocus: function onFocus() {
|
|
86
84
|
return hilight && page === index.PageType.DATE && (mouseOver === null || mouseOver === void 0 ? void 0 : mouseOver(date));
|
|
87
85
|
},
|
|
@@ -93,6 +91,6 @@ var DateCell = function DateCell(_ref) {
|
|
|
93
91
|
},
|
|
94
92
|
children: [page === index.PageType.DATE && dateUtil.DateUtil.format(date, "d", i18next.language, isHijri), page === index.PageType.MONTH && dateUtil.DateUtil.format(date, "MMM", i18next.language, isHijri), page === index.PageType.YEAR && dateUtil.DateUtil.format(date, "yyyy", i18next.language, isHijri), page === index.PageType.DECADE && "".concat(dateUtil.DateUtil.format(dateUtil.DateUtil.startOfDecade(date, isHijri), "yyyy", i18next.language, isHijri), "-").concat(dateUtil.DateUtil.format(dateUtil.DateUtil.endOfDecade(date, isHijri), "yy", i18next.language, isHijri))]
|
|
95
93
|
});
|
|
96
|
-
}
|
|
94
|
+
}
|
|
97
95
|
|
|
98
96
|
exports.DateCell = DateCell;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
4
4
|
var core = require('@react-fabric/core');
|
|
5
|
-
var
|
|
5
|
+
var utilities = require('@react-fabric/utilities');
|
|
6
6
|
var dateFns = require('date-fns');
|
|
7
7
|
var i18next = require('i18next');
|
|
8
8
|
var react = require('react');
|
|
@@ -10,10 +10,9 @@ var index = require('../types/index.js');
|
|
|
10
10
|
var dateUtil = require('../utils/dateUtil.js');
|
|
11
11
|
var jsxRuntime = require('react/jsx-runtime');
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
function DateHeader(props) {
|
|
14
14
|
var page = props.page,
|
|
15
|
-
|
|
16
|
-
pageDate = _props$pageDate === void 0 ? new Date() : _props$pageDate,
|
|
15
|
+
pageDate = props.pageDate,
|
|
17
16
|
changePage = props.changePage,
|
|
18
17
|
changePageDate = props.changePageDate,
|
|
19
18
|
hideNext = props.hideNext,
|
|
@@ -33,7 +32,7 @@ var DateHeader = function DateHeader(props) {
|
|
|
33
32
|
case index.PageType.DECADE:
|
|
34
33
|
return "".concat(dateUtil.DateUtil.format(dateUtil.DateUtil.startOfCentury(pageDate, isHijri), "yyyy", i18next.language, isHijri), " - ").concat(dateUtil.DateUtil.format(dateUtil.DateUtil.endOfCentury(pageDate, isHijri), "yyyy", i18next.language, isHijri));
|
|
35
34
|
}
|
|
36
|
-
}, [
|
|
35
|
+
}, [isHijri, page, pageDate]);
|
|
37
36
|
var _useMemo = react.useMemo(function () {
|
|
38
37
|
if (page === index.PageType.DATE) {
|
|
39
38
|
var dateBefore = dateFns.addDays(dateUtil.DateUtil.startOfYear(pageDate, isHijri), -1);
|
|
@@ -82,27 +81,31 @@ var DateHeader = function DateHeader(props) {
|
|
|
82
81
|
previousPage = _useMemo4[0],
|
|
83
82
|
nextPage = _useMemo4[1];
|
|
84
83
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
85
|
-
className: "flex flex-nowrap items-center area-
|
|
84
|
+
className: "flex flex-nowrap items-center area-header",
|
|
86
85
|
"data-page": page,
|
|
87
86
|
children: [startPage !== undefined && /*#__PURE__*/jsxRuntime.jsx(core.Button, {
|
|
88
|
-
icon:
|
|
89
|
-
|
|
87
|
+
icon: {
|
|
88
|
+
icon: "icon-[mdi--chevron-double-left]",
|
|
89
|
+
rtlFlip: true
|
|
90
|
+
},
|
|
90
91
|
size: "sm",
|
|
91
92
|
variant: "link",
|
|
92
93
|
"aria-label": "start",
|
|
93
94
|
disabled: !startPage,
|
|
94
|
-
className:
|
|
95
|
+
className: utilities.cn(hidePrevious && "invisible"),
|
|
95
96
|
onClick: function onClick() {
|
|
96
97
|
return startPage && (changePageDate === null || changePageDate === void 0 ? void 0 : changePageDate(startPage));
|
|
97
98
|
}
|
|
98
99
|
}), /*#__PURE__*/jsxRuntime.jsx(core.Button, {
|
|
99
|
-
icon:
|
|
100
|
-
|
|
100
|
+
icon: {
|
|
101
|
+
icon: "icon-[mdi--chevron-left]",
|
|
102
|
+
rtlFlip: true
|
|
103
|
+
},
|
|
101
104
|
size: "sm",
|
|
102
105
|
variant: "link",
|
|
103
106
|
"aria-label": "prev",
|
|
104
107
|
disabled: !previousPage,
|
|
105
|
-
className:
|
|
108
|
+
className: utilities.cn(hidePrevious && "invisible"),
|
|
106
109
|
onClick: function onClick() {
|
|
107
110
|
return previousPage && (changePageDate === null || changePageDate === void 0 ? void 0 : changePageDate(previousPage));
|
|
108
111
|
}
|
|
@@ -111,32 +114,36 @@ var DateHeader = function DateHeader(props) {
|
|
|
111
114
|
onClick: function onClick() {
|
|
112
115
|
return changePage(page + 1);
|
|
113
116
|
},
|
|
114
|
-
className:
|
|
117
|
+
className: utilities.cn("flex-1 px-2 py-1 text-primary-600 text-center text-sm font-medium truncate", page === index.PageType.DECADE ? "pointer-events-none" : "cursor-pointer"),
|
|
115
118
|
children: headLabel
|
|
116
119
|
}), /*#__PURE__*/jsxRuntime.jsx(core.Button, {
|
|
117
|
-
icon:
|
|
118
|
-
|
|
120
|
+
icon: {
|
|
121
|
+
icon: "icon-[mdi--chevron-right]",
|
|
122
|
+
rtlFlip: true
|
|
123
|
+
},
|
|
119
124
|
size: "sm",
|
|
120
125
|
variant: "link",
|
|
121
126
|
"aria-label": "next",
|
|
122
127
|
disabled: !nextPage,
|
|
123
|
-
className:
|
|
128
|
+
className: utilities.cn(hideNext && "invisible"),
|
|
124
129
|
onClick: function onClick() {
|
|
125
130
|
return nextPage && (changePageDate === null || changePageDate === void 0 ? void 0 : changePageDate(nextPage));
|
|
126
131
|
}
|
|
127
132
|
}), endPage !== undefined && /*#__PURE__*/jsxRuntime.jsx(core.Button, {
|
|
128
|
-
icon:
|
|
129
|
-
|
|
133
|
+
icon: {
|
|
134
|
+
icon: "icon-[mdi--chevron-double-right]",
|
|
135
|
+
rtlFlip: true
|
|
136
|
+
},
|
|
130
137
|
size: "sm",
|
|
131
138
|
variant: "link",
|
|
132
139
|
"aria-label": "end",
|
|
133
140
|
disabled: !endPage,
|
|
134
|
-
className:
|
|
141
|
+
className: utilities.cn(hideNext && "invisible"),
|
|
135
142
|
onClick: function onClick() {
|
|
136
143
|
return endPage && (changePageDate === null || changePageDate === void 0 ? void 0 : changePageDate(endPage));
|
|
137
144
|
}
|
|
138
145
|
})]
|
|
139
146
|
});
|
|
140
|
-
}
|
|
147
|
+
}
|
|
141
148
|
|
|
142
149
|
exports.DateHeader = DateHeader;
|
|
@@ -2,22 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
4
4
|
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
5
|
+
var utilities = require('@react-fabric/utilities');
|
|
5
6
|
var dateFns = require('date-fns');
|
|
6
7
|
var i18next = require('i18next');
|
|
7
8
|
var react = require('react');
|
|
9
|
+
var index = require('../types/index.js');
|
|
8
10
|
var dateUtil = require('../utils/dateUtil.js');
|
|
9
11
|
var DateCell = require('./DateCell.js');
|
|
10
|
-
var classNames = require('classnames');
|
|
11
|
-
var index = require('../types/index.js');
|
|
12
|
-
var Date_module = require('./Date.module.css');
|
|
13
12
|
var jsxRuntime = require('react/jsx-runtime');
|
|
14
13
|
|
|
15
14
|
var _excluded = ["pageDate", "isHijri"];
|
|
16
15
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
17
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t),
|
|
16
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
18
17
|
var rows = [0, 1, 2, 3, 4, 5];
|
|
19
18
|
var cols = [0, 1, 2, 3, 4, 5, 6];
|
|
20
|
-
|
|
19
|
+
function DatePage(_ref) {
|
|
21
20
|
var pageDate = _ref.pageDate,
|
|
22
21
|
isHijri = _ref.isHijri,
|
|
23
22
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
@@ -27,13 +26,13 @@ var DatePage = function DatePage(_ref) {
|
|
|
27
26
|
return dateUtil.DateUtil.addDays(first, (current < 3 ? -7 : 0) + current * -1, isHijri);
|
|
28
27
|
}, [isHijri, pageDate]);
|
|
29
28
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
30
|
-
className:
|
|
29
|
+
className: utilities.cn("grid grid-cols-8 area-content", props.page !== index.PageType.DATE && "invisible"),
|
|
31
30
|
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
32
|
-
className:
|
|
31
|
+
className: utilities.cn("fabric-dateHeader", "px-1 text-center bg-tint-50 h-7")
|
|
33
32
|
}), cols.map(function (col) {
|
|
34
33
|
var dt = dateUtil.DateUtil.addDays(startDate, col, isHijri);
|
|
35
34
|
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
36
|
-
className:
|
|
35
|
+
className: utilities.cn("fabric-dateHeader", "font-medium text-sm p-1 mx-px text-center text-muted bg-tint-50 h-7"),
|
|
37
36
|
children: dateUtil.DateUtil.format(dt, "eeeeee", i18next.language, isHijri)
|
|
38
37
|
}, dt.toISOString());
|
|
39
38
|
}), rows.map(function (row) {
|
|
@@ -43,17 +42,16 @@ var DatePage = function DatePage(_ref) {
|
|
|
43
42
|
children: dateUtil.DateUtil.getWeek(dateUtil.DateUtil.addDays(startDate, row * 7, isHijri), i18next.language, isHijri)
|
|
44
43
|
}, row), cols.map(function (col) {
|
|
45
44
|
var dt = dateUtil.DateUtil.addDays(startDate, row * 7 + col, isHijri);
|
|
46
|
-
return /*#__PURE__*/
|
|
45
|
+
return /*#__PURE__*/jsxRuntime.jsx(DateCell.DateCell, _objectSpread(_objectSpread({}, props), {}, {
|
|
47
46
|
date: dt,
|
|
48
47
|
page: index.PageType.DATE,
|
|
49
48
|
isHijri: isHijri,
|
|
50
|
-
key: dt.toISOString(),
|
|
51
49
|
isMuted: !dateUtil.DateUtil.isSameMonth(dt, pageDate, isHijri)
|
|
52
|
-
}));
|
|
50
|
+
}), dt.toISOString());
|
|
53
51
|
})]
|
|
54
52
|
}, row);
|
|
55
53
|
})]
|
|
56
54
|
});
|
|
57
|
-
}
|
|
55
|
+
}
|
|
58
56
|
|
|
59
57
|
exports.DatePage = DatePage;
|
|
@@ -9,9 +9,9 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
9
9
|
|
|
10
10
|
var _excluded = ["pageDate", "isHijri"];
|
|
11
11
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t),
|
|
12
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13
13
|
var cols = [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
|
|
14
|
-
|
|
14
|
+
function DecadePage(_ref) {
|
|
15
15
|
var pageDate = _ref.pageDate,
|
|
16
16
|
isHijri = _ref.isHijri,
|
|
17
17
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
@@ -29,6 +29,6 @@ var DecadePage = function DecadePage(_ref) {
|
|
|
29
29
|
}, props), col);
|
|
30
30
|
})
|
|
31
31
|
});
|
|
32
|
-
}
|
|
32
|
+
}
|
|
33
33
|
|
|
34
34
|
exports.DecadePage = DecadePage;
|
|
@@ -9,9 +9,9 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
9
9
|
|
|
10
10
|
var _excluded = ["pageDate", "isHijri"];
|
|
11
11
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t),
|
|
12
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13
13
|
var cols = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
|
|
14
|
-
|
|
14
|
+
function MonthPage(_ref) {
|
|
15
15
|
var pageDate = _ref.pageDate,
|
|
16
16
|
isHijri = _ref.isHijri,
|
|
17
17
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
@@ -28,6 +28,6 @@ var MonthPage = function MonthPage(_ref) {
|
|
|
28
28
|
}, props), col);
|
|
29
29
|
})
|
|
30
30
|
});
|
|
31
|
-
}
|
|
31
|
+
}
|
|
32
32
|
|
|
33
33
|
exports.MonthPage = MonthPage;
|
|
@@ -2,12 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
4
4
|
var core = require('@react-fabric/core');
|
|
5
|
-
var
|
|
5
|
+
var utilities = require('@react-fabric/utilities');
|
|
6
6
|
var react = require('react');
|
|
7
|
-
var Date_module = require('./Date.module.css');
|
|
8
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
9
8
|
|
|
10
|
-
|
|
9
|
+
function TimeSlider(_ref) {
|
|
11
10
|
var _ref$hour = _ref.hour,
|
|
12
11
|
hour = _ref$hour === void 0 ? 0 : _ref$hour,
|
|
13
12
|
_ref$minute = _ref.minute,
|
|
@@ -15,28 +14,24 @@ var TimeSlider = function TimeSlider(_ref) {
|
|
|
15
14
|
onTimeChange = _ref.onTimeChange;
|
|
16
15
|
var hourRef = react.useRef(null);
|
|
17
16
|
var minuteRef = react.useRef(null);
|
|
18
|
-
var
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
setM
|
|
36
|
-
(_minuteRef$current = minuteRef.current) === null || _minuteRef$current === void 0 || (_minuteRef$current = _minuteRef$current.children.item(minute + 1)) === null || _minuteRef$current === void 0 || _minuteRef$current.scrollIntoView({
|
|
37
|
-
block: "center"
|
|
38
|
-
});
|
|
39
|
-
}, [minute]);
|
|
17
|
+
var _usePropState = core.usePropState(hour, function (hr) {
|
|
18
|
+
var _hourRef$current;
|
|
19
|
+
return (_hourRef$current = hourRef.current) === null || _hourRef$current === void 0 || (_hourRef$current = _hourRef$current.children.item(hr + 1)) === null || _hourRef$current === void 0 ? void 0 : _hourRef$current.scrollIntoView({
|
|
20
|
+
block: "center"
|
|
21
|
+
});
|
|
22
|
+
}),
|
|
23
|
+
_usePropState2 = _slicedToArray(_usePropState, 2),
|
|
24
|
+
h = _usePropState2[0],
|
|
25
|
+
setH = _usePropState2[1];
|
|
26
|
+
var _usePropState3 = core.usePropState(minute, function (mn) {
|
|
27
|
+
var _minuteRef$current;
|
|
28
|
+
return (_minuteRef$current = minuteRef.current) === null || _minuteRef$current === void 0 || (_minuteRef$current = _minuteRef$current.children.item(mn + 1)) === null || _minuteRef$current === void 0 ? void 0 : _minuteRef$current.scrollIntoView({
|
|
29
|
+
block: "center"
|
|
30
|
+
});
|
|
31
|
+
}),
|
|
32
|
+
_usePropState4 = _slicedToArray(_usePropState3, 2),
|
|
33
|
+
m = _usePropState4[0],
|
|
34
|
+
setM = _usePropState4[1];
|
|
40
35
|
var fireChange = core.useDebounce(onTimeChange, [onTimeChange]);
|
|
41
36
|
var calculateTime = react.useCallback(function () {
|
|
42
37
|
var _hourRef$current$scro, _hourRef$current2, _offsetHeight, _hourRef$current3, _minuteRef$current$sc, _minuteRef$current2, _offsetHeight2, _minuteRef$current3;
|
|
@@ -52,22 +47,22 @@ var TimeSlider = function TimeSlider(_ref) {
|
|
|
52
47
|
hour: hour,
|
|
53
48
|
minute: minute
|
|
54
49
|
});
|
|
55
|
-
}, [
|
|
50
|
+
}, [fireChange, setH, setM]);
|
|
56
51
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
57
|
-
className:
|
|
52
|
+
className: utilities.cn("area-[time] flex flex-col flex-nowrap border-s border-s-tint-50 overflow-hidden bg-default"),
|
|
58
53
|
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
59
54
|
className: "flex",
|
|
60
55
|
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
61
|
-
className:
|
|
56
|
+
className: utilities.cn("fabric-dateHeader", "flex-1 font-medium text-muted text-sm p-1 mx-px text-center bg-tint-50"),
|
|
62
57
|
children: "H"
|
|
63
58
|
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
64
|
-
className:
|
|
59
|
+
className: utilities.cn("fabric-dateHeader", "flex-1 font-medium text-muted text-sm p-1 mx-px text-center bg-tint-50"),
|
|
65
60
|
children: "M"
|
|
66
61
|
})]
|
|
67
62
|
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
68
|
-
className: "flex flex-1 flex-nowrap overflow-hidden relative",
|
|
63
|
+
className: "flex flex-1 flex-nowrap items-stretch overflow-hidden relative",
|
|
69
64
|
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
70
|
-
className:
|
|
65
|
+
className: utilities.cn("flex-1 overflow-auto scroll-hide snap-y snap-mandatory", "fabric-date-timeSlider"),
|
|
71
66
|
onScroll: calculateTime,
|
|
72
67
|
ref: hourRef,
|
|
73
68
|
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
@@ -75,7 +70,10 @@ var TimeSlider = function TimeSlider(_ref) {
|
|
|
75
70
|
}), Array(24).fill(0).map(function (_, i) {
|
|
76
71
|
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
77
72
|
role: "none",
|
|
78
|
-
className:
|
|
73
|
+
className: utilities.cn("ps-2 pe-1 snap-center outline outline-muted", i === h && "font-medium text-primary-600")
|
|
74
|
+
// eslint-disable-next-line @eslint-react/no-array-index-key
|
|
75
|
+
,
|
|
76
|
+
|
|
79
77
|
"data-skew": i === h - 5 || i === h + 5 ? 5 : i === h - 4 || i === h + 4 ? 4 : i === h - 3 || i === h + 3 ? 3 : i === h - 2 || i === h + 2 ? 2 : i === h - 1 || i === h + 1 ? 1 : undefined,
|
|
80
78
|
"data-selected": i === h,
|
|
81
79
|
onClick: function onClick(e) {
|
|
@@ -92,7 +90,7 @@ var TimeSlider = function TimeSlider(_ref) {
|
|
|
92
90
|
className: "w-full"
|
|
93
91
|
})]
|
|
94
92
|
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
95
|
-
className:
|
|
93
|
+
className: utilities.cn("flex-1 overflow-auto scroll-hide snap-y snap-mandatory", "fabric-date-timeSlider"),
|
|
96
94
|
onScroll: calculateTime,
|
|
97
95
|
ref: minuteRef,
|
|
98
96
|
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
@@ -100,7 +98,10 @@ var TimeSlider = function TimeSlider(_ref) {
|
|
|
100
98
|
}), Array(60).fill(0).map(function (_, i) {
|
|
101
99
|
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
102
100
|
role: "none",
|
|
103
|
-
className:
|
|
101
|
+
className: utilities.cn("ps-1 pe-2 snap-center outline outline-muted", i === m && "font-medium text-primary-600")
|
|
102
|
+
// eslint-disable-next-line @eslint-react/no-array-index-key
|
|
103
|
+
,
|
|
104
|
+
|
|
104
105
|
"data-skew": i === m - 5 || i === m + 5 ? 5 : i === m - 4 || i === m + 4 ? 4 : i === m - 3 || i === m + 3 ? 3 : i === m - 2 || i === m + 2 ? 2 : i === m - 1 || i === m + 1 ? 1 : undefined,
|
|
105
106
|
"data-selected": i === m,
|
|
106
107
|
onClick: function onClick(e) {
|
|
@@ -126,6 +127,6 @@ var TimeSlider = function TimeSlider(_ref) {
|
|
|
126
127
|
})]
|
|
127
128
|
})]
|
|
128
129
|
});
|
|
129
|
-
}
|
|
130
|
+
}
|
|
130
131
|
|
|
131
132
|
exports.TimeSlider = TimeSlider;
|
|
@@ -9,9 +9,9 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
9
9
|
|
|
10
10
|
var _excluded = ["pageDate", "isHijri"];
|
|
11
11
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t),
|
|
12
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13
13
|
var cols = [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
|
|
14
|
-
|
|
14
|
+
function YearPage(_ref) {
|
|
15
15
|
var pageDate = _ref.pageDate,
|
|
16
16
|
isHijri = _ref.isHijri,
|
|
17
17
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
@@ -29,6 +29,6 @@ var YearPage = function YearPage(_ref) {
|
|
|
29
29
|
}, props), col);
|
|
30
30
|
})
|
|
31
31
|
});
|
|
32
|
-
}
|
|
32
|
+
}
|
|
33
33
|
|
|
34
34
|
exports.YearPage = YearPage;
|
|
@@ -3,33 +3,50 @@
|
|
|
3
3
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
4
4
|
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
5
5
|
var core = require('@react-fabric/core');
|
|
6
|
+
var utilities = require('@react-fabric/utilities');
|
|
6
7
|
var dateUtil = require('../utils/dateUtil.js');
|
|
7
8
|
var jsxRuntime = require('react/jsx-runtime');
|
|
8
9
|
|
|
9
|
-
var _excluded = ["date", "className", "format", "children"];
|
|
10
|
+
var _excluded = ["date", "className", "format", "children", "showAlternateDate"];
|
|
10
11
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t),
|
|
12
|
-
|
|
12
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13
|
+
/**
|
|
14
|
+
* DateDisplay component to display a formatted gregorian or hijri date with optional tooltip and dropdown.
|
|
15
|
+
* It uses the current calendar and locale from the global context.
|
|
16
|
+
* It formats the date using the provided format or a default format.
|
|
17
|
+
* If `showAlternateDate` is true, it shows a tooltip with the formatted date.
|
|
18
|
+
* If `children` are provided, it wraps the date in a dropdown.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```jsx
|
|
22
|
+
* <DateDisplay date={new Date()} />
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
function DateDisplay(_ref) {
|
|
13
26
|
var date = _ref.date,
|
|
14
27
|
className = _ref.className,
|
|
15
28
|
_ref$format = _ref.format,
|
|
16
29
|
format = _ref$format === void 0 ? "eee, PPpp" : _ref$format,
|
|
17
30
|
children = _ref.children,
|
|
31
|
+
showAlternateDate = _ref.showAlternateDate,
|
|
18
32
|
aria = _objectWithoutProperties(_ref, _excluded);
|
|
19
|
-
var
|
|
20
|
-
currentCalendar =
|
|
21
|
-
currentLocale =
|
|
33
|
+
var _useApplicationContex = core.useApplicationContext(),
|
|
34
|
+
currentCalendar = _useApplicationContex.currentCalendar,
|
|
35
|
+
currentLocale = _useApplicationContex.currentLocale;
|
|
22
36
|
var dtLabel = /*#__PURE__*/jsxRuntime.jsx(core.Tooltip, {
|
|
37
|
+
disabled: !showAlternateDate,
|
|
23
38
|
content: dateUtil.DateUtil.format(date, format, currentLocale, currentCalendar !== "hijri"),
|
|
24
39
|
children: /*#__PURE__*/jsxRuntime.jsx("span", _objectSpread(_objectSpread({
|
|
25
|
-
className: className
|
|
40
|
+
className: utilities.cn(className, !!children && "underline decoration-dotted cursor-pointer")
|
|
26
41
|
}, aria), {}, {
|
|
27
42
|
children: dateUtil.DateUtil.format(date, format, currentLocale, currentCalendar === "hijri")
|
|
28
43
|
}))
|
|
29
44
|
});
|
|
30
45
|
return children ? /*#__PURE__*/jsxRuntime.jsxs(core.Dropdown, {
|
|
46
|
+
showArrow: true,
|
|
47
|
+
closeOnClick: true,
|
|
31
48
|
children: [dtLabel, children]
|
|
32
49
|
}) : dtLabel;
|
|
33
|
-
}
|
|
50
|
+
}
|
|
34
51
|
|
|
35
52
|
exports.DateDisplay = DateDisplay;
|