@react-fabric/date 1.0.0-beta.4 → 1.0.0-beta.41
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/DatePage.js +2 -3
- package/dist/cjs/components/TimeSliders.js +5 -6
- package/dist/cjs/display/DateDisplay.js +5 -1
- package/dist/cjs/hijri/DateConverter.js +154 -0
- package/dist/cjs/hijri/FormatDate.js +115 -0
- package/dist/cjs/hijri/HijriDate.js +531 -0
- package/dist/cjs/hijri/StringDateParser.js +74 -0
- package/dist/cjs/hijri/index.js +17 -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/index.js +0 -6
- package/dist/cjs/index.js +11 -2
- package/dist/cjs/{superdate → panels}/EventPanel.js +16 -4
- package/dist/cjs/utils/dateUtil.js +3 -3
- package/dist/esm/components/DatePage.js +2 -3
- package/dist/esm/components/TimeSliders.js +5 -6
- package/dist/esm/display/DateDisplay.js +5 -1
- package/dist/esm/hijri/DateConverter.js +152 -0
- package/dist/esm/hijri/FormatDate.js +112 -0
- package/dist/esm/hijri/HijriDate.js +528 -0
- package/dist/esm/hijri/StringDateParser.js +74 -0
- package/dist/esm/hijri/index.js +17 -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/index.js +0 -6
- package/dist/esm/index.js +5 -1
- package/dist/esm/{superdate → panels}/EventPanel.js +17 -5
- package/dist/esm/utils/dateUtil.js +3 -3
- package/dist/types/display/DateDisplay.d.ts +2 -1
- 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 +5 -1
- package/dist/types/panels/EventPanel.d.ts +17 -0
- package/dist/types/types/index.d.ts +8 -35
- package/dist/types/utils/dateUtil.d.ts +1 -1
- package/package.json +8 -8
- package/src/components/DatePage.tsx +2 -3
- package/src/components/TimeSliders.tsx +5 -6
- package/src/display/DateDisplay.tsx +5 -1
- package/src/hijri/DateConverter.js +175 -0
- package/src/hijri/FormatDate.js +132 -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/index.ts +0 -3
- package/src/index.ts +6 -1
- package/src/{superdate → panels}/EventPanel.tsx +41 -6
- package/src/types/index.ts +8 -38
- package/src/utils/dateUtil.ts +4 -7
- package/dist/cjs/components/Date.module.css +0 -1
- 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 -169
- package/dist/esm/components/Date.module.css +0 -1
- 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 -168
- 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/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 -186
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
4
|
+
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
5
|
+
var DateConverter = require('./DateConverter.js');
|
|
6
|
+
var StringDateParser = require('./StringDateParser.js');
|
|
7
|
+
|
|
8
|
+
var defaultFormat = 'yyyy/mm/dd';
|
|
9
|
+
var defaultProps = {
|
|
10
|
+
month: 1,
|
|
11
|
+
date: 1,
|
|
12
|
+
hours: 0,
|
|
13
|
+
minutes: 0,
|
|
14
|
+
seconds: 0,
|
|
15
|
+
milliseconds: 0
|
|
16
|
+
};
|
|
17
|
+
var Initializer = /*#__PURE__*/function () {
|
|
18
|
+
function Initializer() {
|
|
19
|
+
_classCallCheck(this, Initializer);
|
|
20
|
+
}
|
|
21
|
+
return _createClass(Initializer, null, [{
|
|
22
|
+
key: "initDefault",
|
|
23
|
+
value: function initDefault() {
|
|
24
|
+
return DateConverter.GregToHijri(new Date());
|
|
25
|
+
}
|
|
26
|
+
}, {
|
|
27
|
+
key: "init_number",
|
|
28
|
+
value: function init_number(number) {
|
|
29
|
+
return DateConverter.GregToHijri(new Date(number));
|
|
30
|
+
}
|
|
31
|
+
}, {
|
|
32
|
+
key: "init_number_number",
|
|
33
|
+
value: function init_number_number(year, month) {
|
|
34
|
+
return this.init_number_number_number(year, month, 1);
|
|
35
|
+
}
|
|
36
|
+
}, {
|
|
37
|
+
key: "init_number_number_number",
|
|
38
|
+
value: function init_number_number_number() {
|
|
39
|
+
return this.initFromNumbers.apply(this, arguments);
|
|
40
|
+
}
|
|
41
|
+
}, {
|
|
42
|
+
key: "init_number_number_number_number",
|
|
43
|
+
value: function init_number_number_number_number() {
|
|
44
|
+
return this.initFromNumbers.apply(this, arguments);
|
|
45
|
+
}
|
|
46
|
+
}, {
|
|
47
|
+
key: "init_number_number_number_number_number",
|
|
48
|
+
value: function init_number_number_number_number_number() {
|
|
49
|
+
return this.initFromNumbers.apply(this, arguments);
|
|
50
|
+
}
|
|
51
|
+
}, {
|
|
52
|
+
key: "init_number_number_number_number_number_number",
|
|
53
|
+
value: function init_number_number_number_number_number_number() {
|
|
54
|
+
return this.initFromNumbers.apply(this, arguments);
|
|
55
|
+
}
|
|
56
|
+
}, {
|
|
57
|
+
key: "init_number_number_number_number_number_number_number",
|
|
58
|
+
value: function init_number_number_number_number_number_number_number() {
|
|
59
|
+
return this.initFromNumbers.apply(this, arguments);
|
|
60
|
+
}
|
|
61
|
+
}, {
|
|
62
|
+
key: "init_string",
|
|
63
|
+
value: function init_string() {
|
|
64
|
+
return this.initFromStrings.apply(this, arguments);
|
|
65
|
+
}
|
|
66
|
+
}, {
|
|
67
|
+
key: "init_string_string",
|
|
68
|
+
value: function init_string_string() {
|
|
69
|
+
return this.initFromStrings.apply(this, arguments);
|
|
70
|
+
}
|
|
71
|
+
}, {
|
|
72
|
+
key: "init_object",
|
|
73
|
+
value: function init_object(object) {
|
|
74
|
+
return Object.assign({}, defaultProps, object);
|
|
75
|
+
}
|
|
76
|
+
}, {
|
|
77
|
+
key: "initFromNumbers",
|
|
78
|
+
value: function initFromNumbers(year, month, date) {
|
|
79
|
+
var _arguments = arguments;
|
|
80
|
+
var hours = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
|
|
81
|
+
var minutes = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
|
|
82
|
+
var seconds = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;
|
|
83
|
+
var milliseconds = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 0;
|
|
84
|
+
Array.from(arguments).forEach(function (arg, index) {
|
|
85
|
+
_arguments[index] = parseInt(arg);
|
|
86
|
+
});
|
|
87
|
+
return {
|
|
88
|
+
year: year,
|
|
89
|
+
month: month,
|
|
90
|
+
date: date,
|
|
91
|
+
hours: hours,
|
|
92
|
+
minutes: minutes,
|
|
93
|
+
seconds: seconds,
|
|
94
|
+
milliseconds: milliseconds
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
//TODO
|
|
99
|
+
}, {
|
|
100
|
+
key: "initFromStrings",
|
|
101
|
+
value: function initFromStrings(dateString) {
|
|
102
|
+
var format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultFormat;
|
|
103
|
+
var props = {};
|
|
104
|
+
props.year = StringDateParser.extractYear(dateString, format);
|
|
105
|
+
props.month = StringDateParser.extractMonth(dateString, format);
|
|
106
|
+
props.date = StringDateParser.extractDate(dateString, format);
|
|
107
|
+
return Object.assign({}, defaultProps, props);
|
|
108
|
+
}
|
|
109
|
+
}]);
|
|
110
|
+
}();
|
|
111
|
+
Initializer.defaultFormat = defaultFormat;
|
|
112
|
+
|
|
113
|
+
module.exports = Initializer;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var ar = {
|
|
4
|
+
dayNames: ["ح", "ن", "ث", "ر", "خ", "ج", "س", "أحد", "اثن", "ثلا", "ارب", "خم", "جم", "سبت", "الأحد", "الإثنين", "الثلاثاء", "الإربعاء", "الخميس", "الجمعة", "السبت"],
|
|
5
|
+
monthNames: ["مح", "صف", "ربع١", "ربع٢", "جم١", "جم٢", "رجب", "شعب", "رمض", "شو", "ذو ق", "ذو ح", "محرّم", "صفر", "ربيع أول", "ربيع الآخر", "جمادى أولى", "جمادى الآخرة", "رجب", "شعبان", "رمضان", "شوال", "ذو القعدة", "ذو الحجّة"],
|
|
6
|
+
separator: "عند",
|
|
7
|
+
am: "ص",
|
|
8
|
+
pm: "م"
|
|
9
|
+
};
|
|
10
|
+
var en = {
|
|
11
|
+
dayNames: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
|
|
12
|
+
monthNames: ["Muha", "Saf", "Rab1", "Rab2", "Jumd1", "Jumd2", "Rajb", "Shbn", "Rmdn", "Shwl", "Qada", "Hija", "Muharram", "Safar", "Rabi'ul Awwal", "Rabi'ul Akhir", "Jumadal Ula", "Jumadal Akhira", "Rajab", "Sha'ban", "Ramadan", "Shawwal", "Dhul Qa'ada", "Dhul Hijja"],
|
|
13
|
+
separator: "at",
|
|
14
|
+
am: "am",
|
|
15
|
+
pm: "pm"
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
exports.ar = ar;
|
|
19
|
+
exports.en = en;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var HijriDate = require('./HijriDate.js');
|
|
6
|
+
var DateConverter = require('./DateConverter.js');
|
|
7
|
+
|
|
8
|
+
var toHijri = function toHijri(gregDate) {
|
|
9
|
+
var _GregToHijri = DateConverter.GregToHijri(gregDate),
|
|
10
|
+
year = _GregToHijri.year,
|
|
11
|
+
month = _GregToHijri.month,
|
|
12
|
+
date = _GregToHijri.date;
|
|
13
|
+
return new HijriDate.default(year, month, date, gregDate.getHours(), gregDate.getMinutes(), gregDate.getSeconds(), gregDate.getMilliseconds());
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
exports.default = HijriDate.default;
|
|
17
|
+
exports.toHijri = toHijri;
|
package/dist/cjs/i18n/index.js
CHANGED
|
@@ -3,8 +3,6 @@
|
|
|
3
3
|
var core = require('@react-fabric/core');
|
|
4
4
|
var ar = require('./ar.json.js');
|
|
5
5
|
var en = require('./en.json.js');
|
|
6
|
-
var ar$1 = require('./superdate/ar.json.js');
|
|
7
|
-
var en$1 = require('./superdate/en.json.js');
|
|
8
6
|
|
|
9
7
|
/*
|
|
10
8
|
* React Fabric
|
|
@@ -33,7 +31,3 @@ core.addTranslationBundle("date", {
|
|
|
33
31
|
en: en.default,
|
|
34
32
|
ar: ar.default
|
|
35
33
|
});
|
|
36
|
-
core.addTranslationBundle("superdate", {
|
|
37
|
-
en: en$1.default,
|
|
38
|
-
ar: ar$1.default
|
|
39
|
-
});
|
package/dist/cjs/index.js
CHANGED
|
@@ -2,19 +2,28 @@
|
|
|
2
2
|
|
|
3
3
|
require('./hijri/index.js');
|
|
4
4
|
require('./i18n/index.js');
|
|
5
|
+
var DateHeader = require('./components/DateHeader.js');
|
|
6
|
+
var DecadePage = require('./components/DecadePage.js');
|
|
7
|
+
var YearPage = require('./components/YearPage.js');
|
|
5
8
|
var DateDisplay = require('./display/DateDisplay.js');
|
|
6
9
|
var DatePanel = require('./panels/DatePanel.js');
|
|
10
|
+
var EventPanel = require('./panels/EventPanel.js');
|
|
7
11
|
var RangePanel = require('./panels/RangePanel.js');
|
|
8
|
-
var Superdate = require('./superdate/Superdate.js');
|
|
9
12
|
var dateUtil = require('./utils/dateUtil.js');
|
|
13
|
+
var index = require('./types/index.js');
|
|
10
14
|
|
|
11
15
|
|
|
12
16
|
|
|
17
|
+
exports.DateHeader = DateHeader.DateHeader;
|
|
18
|
+
exports.DecadePage = DecadePage.DecadePage;
|
|
19
|
+
exports.YearPage = YearPage.YearPage;
|
|
13
20
|
exports.DateDisplay = DateDisplay.DateDisplay;
|
|
14
21
|
exports.DatePanel = DatePanel.DatePanel;
|
|
22
|
+
exports.EventPanel = EventPanel.EventPanel;
|
|
15
23
|
exports.RangePanel = RangePanel.RangePanel;
|
|
16
|
-
exports.SuperDate = Superdate.SuperDate;
|
|
17
24
|
Object.defineProperty(exports, "DateUtil", {
|
|
18
25
|
enumerable: true,
|
|
19
26
|
get: function () { return dateUtil.DateUtil; }
|
|
20
27
|
});
|
|
28
|
+
exports.DatePart = index.DatePart;
|
|
29
|
+
exports.PageType = index.PageType;
|
|
@@ -19,8 +19,18 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
19
19
|
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; }
|
|
20
20
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).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; }
|
|
21
21
|
var makeList = function makeList(year) {
|
|
22
|
-
var
|
|
22
|
+
var recurring = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
23
|
+
var predefined = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
23
24
|
var list = _toConsumableArray(predefined);
|
|
25
|
+
recurring.forEach(function (evt) {
|
|
26
|
+
return list.push({
|
|
27
|
+
label: evt.label,
|
|
28
|
+
hijri: evt.hijri,
|
|
29
|
+
icon: evt.icon,
|
|
30
|
+
start: dateFns.setYear(dateUtil.DateUtil.parseDate(evt.start), year),
|
|
31
|
+
end: dateFns.setYear(dateUtil.DateUtil.parseDate(evt.end), year)
|
|
32
|
+
});
|
|
33
|
+
});
|
|
24
34
|
list.push({
|
|
25
35
|
label: "superdate:event.newYear",
|
|
26
36
|
start: dateFns.startOfDay(new Date("".concat(year - 1, "-12-31"))),
|
|
@@ -51,7 +61,9 @@ var EventPanel = function EventPanel(_ref) {
|
|
|
51
61
|
var isHijri = _ref.isHijri,
|
|
52
62
|
onChange = _ref.onChange,
|
|
53
63
|
_ref$events = _ref.events,
|
|
54
|
-
events = _ref$events === void 0 ? utilities.EMPTY_ARRAY : _ref$events
|
|
64
|
+
events = _ref$events === void 0 ? utilities.EMPTY_ARRAY : _ref$events,
|
|
65
|
+
_ref$recurringEvents = _ref.recurringEvents,
|
|
66
|
+
recurringEvents = _ref$recurringEvents === void 0 ? utilities.EMPTY_ARRAY : _ref$recurringEvents;
|
|
55
67
|
var _useTranslation = reactI18next.useTranslation(),
|
|
56
68
|
t = _useTranslation.t;
|
|
57
69
|
var _useState = react.useState({}),
|
|
@@ -70,14 +82,14 @@ var EventPanel = function EventPanel(_ref) {
|
|
|
70
82
|
if (action.type === "changePageDate") {
|
|
71
83
|
resetList = true;
|
|
72
84
|
state.pageDate = action.date;
|
|
73
|
-
if (action.changePage
|
|
85
|
+
if (action.changePage) {
|
|
74
86
|
state.page = Math.max(state.page - 1, index.PageType.MONTH);
|
|
75
87
|
}
|
|
76
88
|
}
|
|
77
89
|
if (resetList) {
|
|
78
90
|
var _predefined$year;
|
|
79
91
|
var year = state.pageDate.getFullYear();
|
|
80
|
-
state.events = makeList(year, (_predefined$year = predefined[year]) !== null && _predefined$year !== void 0 ? _predefined$year : []);
|
|
92
|
+
state.events = makeList(year, recurringEvents !== null && recurringEvents !== void 0 ? recurringEvents : [], (_predefined$year = predefined[year]) !== null && _predefined$year !== void 0 ? _predefined$year : []);
|
|
81
93
|
}
|
|
82
94
|
return _objectSpread({}, state);
|
|
83
95
|
}, {
|
|
@@ -81,7 +81,7 @@ exports.DateUtil = void 0;
|
|
|
81
81
|
return formatted;
|
|
82
82
|
};
|
|
83
83
|
var isRelative = _DateUtil.isRelative = function (date) {
|
|
84
|
-
return utilities.isString(date) && date.match(/^(\$\w+)([+-])(\d+)?$/) !== null;
|
|
84
|
+
return utilities.isString(date) && date.match(/^(\$\w+)([+-])?(\d+)?$/) !== null;
|
|
85
85
|
};
|
|
86
86
|
_DateUtil.isRelativeRange = function (date) {
|
|
87
87
|
return utilities.isString(date) && date.match(/^(\$\w+)([+-])(\d+)?\|(\$\w+)([+-])(\d+)?$/) !== null;
|
|
@@ -375,6 +375,7 @@ exports.DateUtil = void 0;
|
|
|
375
375
|
};
|
|
376
376
|
var _parse = function _parse(dt, rounded) {
|
|
377
377
|
var _dt$match2;
|
|
378
|
+
if (!isRelative(dt)) return new Date(dt);
|
|
378
379
|
var _ref3 = (_dt$match2 = dt.match(/^(\$\w+)([+-]\d+)?$/)) !== null && _dt$match2 !== void 0 ? _dt$match2 : [],
|
|
379
380
|
_ref4 = _slicedToArray(_ref3, 3),
|
|
380
381
|
part = _ref4[1],
|
|
@@ -432,5 +433,4 @@ exports.DateUtil = void 0;
|
|
|
432
433
|
}
|
|
433
434
|
return new Date(dt);
|
|
434
435
|
};
|
|
435
|
-
})(exports.DateUtil || (exports.DateUtil = {}));
|
|
436
|
-
window.DateUtil = exports.DateUtil;
|
|
436
|
+
})(exports.DateUtil || (exports.DateUtil = {}));
|
|
@@ -9,7 +9,6 @@ import { DateUtil } from '../utils/dateUtil.js';
|
|
|
9
9
|
import { DateCell } from './DateCell.js';
|
|
10
10
|
import classNames from 'classnames';
|
|
11
11
|
import { PageType } from '../types/index.js';
|
|
12
|
-
import classes from './Date.module.css';
|
|
13
12
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
14
13
|
|
|
15
14
|
var _excluded = ["pageDate", "isHijri"];
|
|
@@ -29,11 +28,11 @@ var DatePage = function DatePage(_ref) {
|
|
|
29
28
|
return /*#__PURE__*/jsxs("div", {
|
|
30
29
|
className: classNames("grid grid-cols-8 area-content", props.page !== PageType.DATE && "invisible"),
|
|
31
30
|
children: [/*#__PURE__*/jsx("div", {
|
|
32
|
-
className: classNames(
|
|
31
|
+
className: classNames("fabric-dateHeader", "px-1 text-center bg-tint-50 h-7")
|
|
33
32
|
}), cols.map(function (col) {
|
|
34
33
|
var dt = DateUtil.addDays(startDate, col, isHijri);
|
|
35
34
|
return /*#__PURE__*/jsx("div", {
|
|
36
|
-
className: classNames(
|
|
35
|
+
className: classNames("fabric-dateHeader", "font-medium text-sm p-1 mx-px text-center text-muted bg-tint-50 h-7"),
|
|
37
36
|
children: DateUtil.format(dt, "eeeeee", i18next.language, isHijri)
|
|
38
37
|
}, dt.toISOString());
|
|
39
38
|
}), rows.map(function (row) {
|
|
@@ -4,7 +4,6 @@ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
|
4
4
|
import { useDebounce } from '@react-fabric/core';
|
|
5
5
|
import classNames from 'classnames';
|
|
6
6
|
import { useRef, useState, useEffect, useCallback } from 'react';
|
|
7
|
-
import classes from './Date.module.css';
|
|
8
7
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
9
8
|
|
|
10
9
|
var TimeSlider = function TimeSlider(_ref) {
|
|
@@ -58,16 +57,16 @@ var TimeSlider = function TimeSlider(_ref) {
|
|
|
58
57
|
children: [/*#__PURE__*/jsxs("div", {
|
|
59
58
|
className: "flex",
|
|
60
59
|
children: [/*#__PURE__*/jsx("div", {
|
|
61
|
-
className: classNames(
|
|
60
|
+
className: classNames("fabric-dateHeader", "flex-1 font-medium text-muted text-sm p-1 mx-px text-center bg-tint-50"),
|
|
62
61
|
children: "H"
|
|
63
62
|
}), /*#__PURE__*/jsx("div", {
|
|
64
|
-
className: classNames(
|
|
63
|
+
className: classNames("fabric-dateHeader", "flex-1 font-medium text-muted text-sm p-1 mx-px text-center bg-tint-50"),
|
|
65
64
|
children: "M"
|
|
66
65
|
})]
|
|
67
66
|
}), /*#__PURE__*/jsxs("div", {
|
|
68
|
-
className: "flex flex-1 flex-nowrap overflow-hidden relative",
|
|
67
|
+
className: "flex flex-1 flex-nowrap items-stretch overflow-hidden relative",
|
|
69
68
|
children: [/*#__PURE__*/jsxs("div", {
|
|
70
|
-
className: classNames("flex-1 overflow-auto scroll-hide snap-y snap-mandatory",
|
|
69
|
+
className: classNames("flex-1 overflow-auto scroll-hide snap-y snap-mandatory", "fabric-date-timeSlider"),
|
|
71
70
|
onScroll: calculateTime,
|
|
72
71
|
ref: hourRef,
|
|
73
72
|
children: [/*#__PURE__*/jsx("div", {
|
|
@@ -92,7 +91,7 @@ var TimeSlider = function TimeSlider(_ref) {
|
|
|
92
91
|
className: "w-full"
|
|
93
92
|
})]
|
|
94
93
|
}), /*#__PURE__*/jsxs("div", {
|
|
95
|
-
className: classNames("flex-1 overflow-auto scroll-hide snap-y snap-mandatory",
|
|
94
|
+
className: classNames("flex-1 overflow-auto scroll-hide snap-y snap-mandatory", "fabric-date-timeSlider"),
|
|
96
95
|
onScroll: calculateTime,
|
|
97
96
|
ref: minuteRef,
|
|
98
97
|
children: [/*#__PURE__*/jsx("div", {
|
|
@@ -6,7 +6,7 @@ import { useGlobals, Tooltip, Dropdown } from '@react-fabric/core';
|
|
|
6
6
|
import { DateUtil } from '../utils/dateUtil.js';
|
|
7
7
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
8
8
|
|
|
9
|
-
var _excluded = ["date", "className", "format", "children"];
|
|
9
|
+
var _excluded = ["date", "className", "format", "children", "showAlternateDate"];
|
|
10
10
|
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
11
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).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; }
|
|
12
12
|
var DateDisplay = function DateDisplay(_ref) {
|
|
@@ -15,11 +15,13 @@ var DateDisplay = function DateDisplay(_ref) {
|
|
|
15
15
|
_ref$format = _ref.format,
|
|
16
16
|
format = _ref$format === void 0 ? "eee, PPpp" : _ref$format,
|
|
17
17
|
children = _ref.children,
|
|
18
|
+
showAlternateDate = _ref.showAlternateDate,
|
|
18
19
|
aria = _objectWithoutProperties(_ref, _excluded);
|
|
19
20
|
var _useGlobals = useGlobals(),
|
|
20
21
|
currentCalendar = _useGlobals.currentCalendar,
|
|
21
22
|
currentLocale = _useGlobals.currentLocale;
|
|
22
23
|
var dtLabel = /*#__PURE__*/jsx(Tooltip, {
|
|
24
|
+
disabled: !showAlternateDate,
|
|
23
25
|
content: DateUtil.format(date, format, currentLocale, currentCalendar !== "hijri"),
|
|
24
26
|
children: /*#__PURE__*/jsx("span", _objectSpread(_objectSpread({
|
|
25
27
|
className: className
|
|
@@ -28,6 +30,8 @@ var DateDisplay = function DateDisplay(_ref) {
|
|
|
28
30
|
}))
|
|
29
31
|
});
|
|
30
32
|
return children ? /*#__PURE__*/jsxs(Dropdown, {
|
|
33
|
+
showArrow: true,
|
|
34
|
+
closeOnClick: true,
|
|
31
35
|
children: [dtLabel, children]
|
|
32
36
|
}) : dtLabel;
|
|
33
37
|
};
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
function intPart(floatNum) {
|
|
4
|
+
if (floatNum < -0.0000001) {
|
|
5
|
+
return Math.ceil(floatNum - 0.0000001);
|
|
6
|
+
}
|
|
7
|
+
return Math.floor(floatNum + 0.0000001);
|
|
8
|
+
}
|
|
9
|
+
var delta = 1;
|
|
10
|
+
function GregToIsl(arg) {
|
|
11
|
+
var d = parseInt(arg.CDay.value);
|
|
12
|
+
var m = parseInt(arg.CMonth.value);
|
|
13
|
+
var y = parseInt(arg.CYear.value);
|
|
14
|
+
var jd,
|
|
15
|
+
l,
|
|
16
|
+
jd1,
|
|
17
|
+
n,
|
|
18
|
+
j,
|
|
19
|
+
delta = 1;
|
|
20
|
+
if (y > 1582 || y == 1582 && m > 10 || y == 1582 && m == 10 && d > 14) {
|
|
21
|
+
//added delta=1 on jd to comply isna rulling 2007
|
|
22
|
+
jd = intPart(1461 * (y + 4800 + intPart((m - 14) / 12)) / 4) + intPart(367 * (m - 2 - 12 * intPart((m - 14) / 12)) / 12) - intPart(3 * intPart((y + 4900 + intPart((m - 14) / 12)) / 100) / 4) + d - 32075 + delta;
|
|
23
|
+
} else {
|
|
24
|
+
//added +1 on jd to comply isna rulling
|
|
25
|
+
jd = 367 * y - intPart(7 * (y + 5001 + intPart((m - 9) / 7)) / 4) + intPart(275 * m / 9) + d + 1729777 + delta;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
//added -1 on jd1 to comply isna rulling
|
|
29
|
+
jd1 = jd - delta;
|
|
30
|
+
l = jd - 1948440 + 10632;
|
|
31
|
+
n = intPart((l - 1) / 10631);
|
|
32
|
+
l = l - 10631 * n + 354;
|
|
33
|
+
j = intPart((10985 - l) / 5316) * intPart(50 * l / 17719) + intPart(l / 5670) * intPart(43 * l / 15238);
|
|
34
|
+
l = l - intPart((30 - j) / 15) * intPart(17719 * j / 50) - intPart(j / 16) * intPart(15238 * j / 43) + 29;
|
|
35
|
+
m = intPart(24 * l / 709);
|
|
36
|
+
d = l - intPart(709 * m / 24);
|
|
37
|
+
y = 30 * n + j - 30;
|
|
38
|
+
return {
|
|
39
|
+
d: d,
|
|
40
|
+
m: m,
|
|
41
|
+
y: y,
|
|
42
|
+
dateOfWeek: jd1 % 7,
|
|
43
|
+
dayName: weekDay(jd1 % 7)
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
function IslToGreg(arg) {
|
|
47
|
+
var d = parseInt(arg.HDay.value);
|
|
48
|
+
var m = parseInt(arg.HMonth.value);
|
|
49
|
+
var y = parseInt(arg.HYear.value);
|
|
50
|
+
//added - delta=1 on jd to comply isna rulling
|
|
51
|
+
var jd = intPart((11 * y + 3) / 30) + 354 * y + 30 * m - intPart((m - 1) / 2) + d + 1948440 - 385 - delta;
|
|
52
|
+
var l, n, i, j, k;
|
|
53
|
+
if (jd > 2299160) {
|
|
54
|
+
l = jd + 68569;
|
|
55
|
+
n = intPart(4 * l / 146097);
|
|
56
|
+
l = l - intPart((146097 * n + 3) / 4);
|
|
57
|
+
i = intPart(4000 * (l + 1) / 1461001);
|
|
58
|
+
l = l - intPart(1461 * i / 4) + 31;
|
|
59
|
+
j = intPart(80 * l / 2447);
|
|
60
|
+
d = l - intPart(2447 * j / 80);
|
|
61
|
+
l = intPart(j / 11);
|
|
62
|
+
m = j + 2 - 12 * l;
|
|
63
|
+
y = 100 * (n - 49) + i + l;
|
|
64
|
+
} else {
|
|
65
|
+
j = jd + 1402;
|
|
66
|
+
k = intPart((j - 1) / 1461);
|
|
67
|
+
l = j - 1461 * k;
|
|
68
|
+
n = intPart((l - 1) / 365) - intPart(l / 1461);
|
|
69
|
+
i = l - 365 * n + 30;
|
|
70
|
+
j = intPart(80 * i / 2447);
|
|
71
|
+
d = i - intPart(2447 * j / 80);
|
|
72
|
+
i = intPart(j / 11);
|
|
73
|
+
m = j + 2 - 12 * i;
|
|
74
|
+
y = 4 * k + n + i - 4716;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
//arg.CDay.value=d
|
|
78
|
+
//arg.CMonth.value=m
|
|
79
|
+
//arg.CYear.value=y
|
|
80
|
+
|
|
81
|
+
return {
|
|
82
|
+
d: d,
|
|
83
|
+
m: m,
|
|
84
|
+
y: y,
|
|
85
|
+
dateOfWeek: jd % 7,
|
|
86
|
+
dayName: weekDay(jd % 7)
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
function weekDay(wdn) {
|
|
90
|
+
if (wdn == 0) {
|
|
91
|
+
return "Mon";
|
|
92
|
+
}
|
|
93
|
+
if (wdn == 1) {
|
|
94
|
+
return "Tue";
|
|
95
|
+
}
|
|
96
|
+
if (wdn == 2) {
|
|
97
|
+
return "Wed";
|
|
98
|
+
}
|
|
99
|
+
if (wdn == 3) {
|
|
100
|
+
return "Thu";
|
|
101
|
+
}
|
|
102
|
+
if (wdn == 4) {
|
|
103
|
+
return "Fri";
|
|
104
|
+
}
|
|
105
|
+
if (wdn == 5) {
|
|
106
|
+
return "Sat";
|
|
107
|
+
}
|
|
108
|
+
if (wdn == 6) {
|
|
109
|
+
return "Sun";
|
|
110
|
+
}
|
|
111
|
+
return "";
|
|
112
|
+
}
|
|
113
|
+
function GregToHijri(gregDate) {
|
|
114
|
+
var hijriDate = GregToIsl({
|
|
115
|
+
CDay: {
|
|
116
|
+
value: gregDate.getDate()
|
|
117
|
+
},
|
|
118
|
+
CYear: {
|
|
119
|
+
value: gregDate.getFullYear()
|
|
120
|
+
},
|
|
121
|
+
CMonth: {
|
|
122
|
+
value: gregDate.getMonth() + 1
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
return {
|
|
126
|
+
year: hijriDate.y,
|
|
127
|
+
month: hijriDate.m,
|
|
128
|
+
date: hijriDate.d,
|
|
129
|
+
hours: gregDate.getHours(),
|
|
130
|
+
minutes: gregDate.getMinutes(),
|
|
131
|
+
seconds: gregDate.getSeconds(),
|
|
132
|
+
milliseconds: gregDate.getMilliseconds(),
|
|
133
|
+
day: hijriDate.dateOfWeek,
|
|
134
|
+
dayName: hijriDate.dayName
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
function HijriToGreg(hijriDate) {
|
|
138
|
+
var gregDate = IslToGreg({
|
|
139
|
+
HDay: {
|
|
140
|
+
value: hijriDate._date || hijriDate.date
|
|
141
|
+
},
|
|
142
|
+
HYear: {
|
|
143
|
+
value: hijriDate._year || hijriDate.year
|
|
144
|
+
},
|
|
145
|
+
HMonth: {
|
|
146
|
+
value: hijriDate._month || hijriDate.month
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
return new Date(gregDate.y, gregDate.m - 1, gregDate.d, hijriDate.getHours(), hijriDate.getMinutes(), hijriDate.getSeconds(), hijriDate.getMilliseconds());
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
export { GregToHijri, HijriToGreg, weekDay };
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
var dateFormat = function () {
|
|
4
|
+
var token = /P{1,4}|p{1,4}|d{1,2}|e{3,6}|M{1,4}|yy(?:yy)?|([Hhms])\1?|[a]{1,4}|[LloSZ]|('at')|"[^"]*"|'[^']*'/g,
|
|
5
|
+
pad = function pad(val, len) {
|
|
6
|
+
val = String(val);
|
|
7
|
+
len = len || 2;
|
|
8
|
+
while (val.length < len) val = "0" + val;
|
|
9
|
+
return val;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
// Regexes and supporting functions are cached through closure
|
|
13
|
+
return function (date, mask) {
|
|
14
|
+
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
|
|
15
|
+
utc: false
|
|
16
|
+
};
|
|
17
|
+
var _require$default = require("./HijriDate")["default"],
|
|
18
|
+
locales = _require$default.locales,
|
|
19
|
+
defaultLocale = _require$default.defaultLocale;
|
|
20
|
+
options.locale = options.locale || defaultLocale;
|
|
21
|
+
if (!locales[options.locale]) {
|
|
22
|
+
throw new Error("Locale ".concat(options.locale, " is not supported yet .\n Please, try to extend \"HijriDate.locales\" :\n i.e: HijriDate.locales.").concat(options.locale, " = {dayNames:[..14 items..], monthNames:[..24 items..]}\n "));
|
|
23
|
+
}
|
|
24
|
+
// You can't provide utc if you skip other args (use the "UTC:" mask prefix)
|
|
25
|
+
if (arguments.length == 1 && Object.prototype.toString.call(date) == "[object String]" && !/\d/.test(date)) {
|
|
26
|
+
mask = date;
|
|
27
|
+
date = undefined;
|
|
28
|
+
}
|
|
29
|
+
mask = String(masks[mask] || mask || masks["default"]);
|
|
30
|
+
|
|
31
|
+
// Allow setting the utc argument via the mask
|
|
32
|
+
if (mask.slice(0, 4) == "UTC:") {
|
|
33
|
+
mask = mask.slice(4);
|
|
34
|
+
options.utc = true;
|
|
35
|
+
}
|
|
36
|
+
var _ = options.utc ? "getUTC" : "get",
|
|
37
|
+
d = date[_ + "Date"](),
|
|
38
|
+
D = date[_ + "Day"](),
|
|
39
|
+
M = date[_ + "Month"](),
|
|
40
|
+
mIndex = date[_ + "MonthIndex"](),
|
|
41
|
+
y = date[_ + "FullYear"](),
|
|
42
|
+
H = date[_ + "Hours"](),
|
|
43
|
+
m = date[_ + "Minutes"](),
|
|
44
|
+
s = date[_ + "Seconds"](),
|
|
45
|
+
L = date[_ + "Milliseconds"](),
|
|
46
|
+
o = options.utc ? 0 : date.getTimezoneOffset(),
|
|
47
|
+
flags = {
|
|
48
|
+
d: d,
|
|
49
|
+
dd: pad(d),
|
|
50
|
+
ddd: locales[options.locale].dayNames[D === 7 ? 0 : D + 1],
|
|
51
|
+
dddd: locales[options.locale].dayNames[(D === 7 ? 0 : D + 1) + 7],
|
|
52
|
+
ee: locales[options.locale].dayNames[D],
|
|
53
|
+
eee: locales[options.locale].dayNames[D + 7],
|
|
54
|
+
eeee: locales[options.locale].dayNames[D + 14],
|
|
55
|
+
eeeeee: locales[options.locale].dayNames[D],
|
|
56
|
+
M: M,
|
|
57
|
+
MM: pad(M),
|
|
58
|
+
MMM: locales[options.locale].monthNames[mIndex],
|
|
59
|
+
MMMM: locales[options.locale].monthNames[mIndex + 12],
|
|
60
|
+
yy: String(y).slice(2),
|
|
61
|
+
yyyy: y,
|
|
62
|
+
h: H % 12 || 12,
|
|
63
|
+
hh: pad(H % 12 || 12),
|
|
64
|
+
H: H,
|
|
65
|
+
HH: pad(H),
|
|
66
|
+
m: m,
|
|
67
|
+
mm: pad(m),
|
|
68
|
+
s: s,
|
|
69
|
+
ss: pad(s),
|
|
70
|
+
l: pad(L, 3),
|
|
71
|
+
L: pad(L > 99 ? Math.round(L / 10) : L),
|
|
72
|
+
a: H < 12 ? locales[options.locale].am : locales[options.locale].pm,
|
|
73
|
+
aa: H < 12 ? locales[options.locale].am : locales[options.locale].pm,
|
|
74
|
+
aaa: H < 12 ? locales[options.locale].am : locales[options.locale].pm,
|
|
75
|
+
aaaa: H < 12 ? locales[options.locale].am : locales[options.locale].pm,
|
|
76
|
+
aaaaa: H < 12 ? locales[options.locale].am : locales[options.locale].pm,
|
|
77
|
+
"'at'": locales[options.locale].separator,
|
|
78
|
+
t: H < 12 ? "a" : "p",
|
|
79
|
+
tt: H < 12 ? "am" : "pm",
|
|
80
|
+
T: H < 12 ? "A" : "P",
|
|
81
|
+
TT: H < 12 ? "AM" : "PM",
|
|
82
|
+
// Z: options.utc ? "UTC" : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""),
|
|
83
|
+
o: (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),
|
|
84
|
+
S: ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10]
|
|
85
|
+
};
|
|
86
|
+
return mask.replace(token, function ($0) {
|
|
87
|
+
if ($0 === "P") return "".concat(flags.d, "/").concat(flags.M, "/").concat(flags.yyyy, " ");
|
|
88
|
+
if ($0.startsWith("PP")) return "".concat(flags.MMM, " ").concat(flags.dd, ", ").concat(flags.yyyy, " ");
|
|
89
|
+
if ($0 === "p") return "".concat(flags.h, ":").concat(flags.m, " ").concat(flags.a);
|
|
90
|
+
if ($0.startsWith("pp")) return "".concat(flags.hh, ":").concat(flags.mm, ":").concat(flags.ss, " ").concat(flags.a);
|
|
91
|
+
return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1);
|
|
92
|
+
});
|
|
93
|
+
};
|
|
94
|
+
}();
|
|
95
|
+
|
|
96
|
+
// Some common format strings
|
|
97
|
+
var masks = {
|
|
98
|
+
"default": "ddd MMM dd yyyy HH:mm:ss",
|
|
99
|
+
shortDate: "M/d/yy",
|
|
100
|
+
mediumDate: "MMM d, yyyy",
|
|
101
|
+
longDate: "MMMM d, yyyy",
|
|
102
|
+
fullDate: "dddd, MMMM d, yyyy",
|
|
103
|
+
shortTime: "h:mm TT",
|
|
104
|
+
mediumTime: "h:mm:ss TT",
|
|
105
|
+
longTime: "h:mm:ss TT Z",
|
|
106
|
+
isoDate: "yyyy-MM-dd",
|
|
107
|
+
isoTime: "HH:mm:ss",
|
|
108
|
+
isoDateTime: "yyyy-MM-dd'T'HH:mm:ss",
|
|
109
|
+
isoUtcDateTime: "UTC:yyyy-MM-dd'T'HH:mm:ss'Z'"
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
export { dateFormat as default, masks };
|