@react-fabric/date 1.0.0-beta.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.
Files changed (105) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +10 -0
  3. package/dist/cjs/components/Date.module.css +1 -0
  4. package/dist/cjs/components/DateCell.js +98 -0
  5. package/dist/cjs/components/DateHeader.js +142 -0
  6. package/dist/cjs/components/DatePage.js +59 -0
  7. package/dist/cjs/components/DecadePage.js +34 -0
  8. package/dist/cjs/components/MonthPage.js +33 -0
  9. package/dist/cjs/components/TimeSliders.js +131 -0
  10. package/dist/cjs/components/YearPage.js +34 -0
  11. package/dist/cjs/display/DateDisplay.js +35 -0
  12. package/dist/cjs/hijri/index.js +1029 -0
  13. package/dist/cjs/i18n/ar.json.js +25 -0
  14. package/dist/cjs/i18n/en.json.js +21 -0
  15. package/dist/cjs/i18n/index.js +39 -0
  16. package/dist/cjs/i18n/superdate/ar.json.js +86 -0
  17. package/dist/cjs/i18n/superdate/en.json.js +93 -0
  18. package/dist/cjs/index.js +20 -0
  19. package/dist/cjs/panels/BasePanel.js +73 -0
  20. package/dist/cjs/panels/DatePanel.js +205 -0
  21. package/dist/cjs/panels/RangePanel.js +340 -0
  22. package/dist/cjs/superdate/EventPanel.js +173 -0
  23. package/dist/cjs/superdate/QuickSelect.js +134 -0
  24. package/dist/cjs/superdate/RelativeInput.js +79 -0
  25. package/dist/cjs/superdate/RelativePanel.js +91 -0
  26. package/dist/cjs/superdate/SuperDate.module.css +1 -0
  27. package/dist/cjs/superdate/Superdate.js +169 -0
  28. package/dist/cjs/types/index.js +61 -0
  29. package/dist/cjs/utils/dateUtil.js +436 -0
  30. package/dist/esm/components/Date.module.css +1 -0
  31. package/dist/esm/components/DateCell.js +98 -0
  32. package/dist/esm/components/DateHeader.js +142 -0
  33. package/dist/esm/components/DatePage.js +59 -0
  34. package/dist/esm/components/DecadePage.js +34 -0
  35. package/dist/esm/components/MonthPage.js +33 -0
  36. package/dist/esm/components/TimeSliders.js +131 -0
  37. package/dist/esm/components/YearPage.js +34 -0
  38. package/dist/esm/display/DateDisplay.js +35 -0
  39. package/dist/esm/hijri/index.js +1029 -0
  40. package/dist/esm/i18n/ar.json.js +21 -0
  41. package/dist/esm/i18n/en.json.js +18 -0
  42. package/dist/esm/i18n/index.js +39 -0
  43. package/dist/esm/i18n/superdate/ar.json.js +79 -0
  44. package/dist/esm/i18n/superdate/en.json.js +85 -0
  45. package/dist/esm/index.js +9 -0
  46. package/dist/esm/panels/BasePanel.js +73 -0
  47. package/dist/esm/panels/DatePanel.js +205 -0
  48. package/dist/esm/panels/RangePanel.js +340 -0
  49. package/dist/esm/superdate/EventPanel.js +173 -0
  50. package/dist/esm/superdate/QuickSelect.js +134 -0
  51. package/dist/esm/superdate/RelativeInput.js +79 -0
  52. package/dist/esm/superdate/RelativePanel.js +91 -0
  53. package/dist/esm/superdate/SuperDate.module.css +1 -0
  54. package/dist/esm/superdate/Superdate.js +168 -0
  55. package/dist/esm/types/index.js +60 -0
  56. package/dist/esm/utils/dateUtil.js +438 -0
  57. package/dist/types/components/DateCell.d.ts +15 -0
  58. package/dist/types/components/DateHeader.d.ts +14 -0
  59. package/dist/types/components/DatePage.d.ts +6 -0
  60. package/dist/types/components/DecadePage.d.ts +6 -0
  61. package/dist/types/components/MonthPage.d.ts +6 -0
  62. package/dist/types/components/TimeSliders.d.ts +10 -0
  63. package/dist/types/components/YearPage.d.ts +6 -0
  64. package/dist/types/display/DateDisplay.d.ts +15 -0
  65. package/dist/types/hijri/index.d.ts +2 -0
  66. package/dist/types/i18n/index.d.ts +1 -0
  67. package/dist/types/index.d.ts +7 -0
  68. package/dist/types/panels/BasePanel.d.ts +25 -0
  69. package/dist/types/panels/DatePanel.d.ts +2 -0
  70. package/dist/types/panels/RangePanel.d.ts +2 -0
  71. package/dist/types/superdate/EventPanel.d.ts +4 -0
  72. package/dist/types/superdate/QuickSelect.d.ts +1 -0
  73. package/dist/types/superdate/RelativeInput.d.ts +1 -0
  74. package/dist/types/superdate/RelativePanel.d.ts +1 -0
  75. package/dist/types/superdate/Superdate.d.ts +17 -0
  76. package/dist/types/types/index.d.ts +70 -0
  77. package/dist/types/utils/dateUtil.d.ts +30 -0
  78. package/package.json +58 -0
  79. package/src/components/Date.module.css +75 -0
  80. package/src/components/DateCell.tsx +181 -0
  81. package/src/components/DateHeader.tsx +223 -0
  82. package/src/components/DatePage.tsx +107 -0
  83. package/src/components/DecadePage.tsx +53 -0
  84. package/src/components/MonthPage.tsx +52 -0
  85. package/src/components/TimeSliders.tsx +196 -0
  86. package/src/components/YearPage.tsx +53 -0
  87. package/src/display/DateDisplay.tsx +88 -0
  88. package/src/hijri/index.js +1540 -0
  89. package/src/i18n/ar.json +14 -0
  90. package/src/i18n/en.json +13 -0
  91. package/src/i18n/index.ts +31 -0
  92. package/src/i18n/superdate/ar.json +70 -0
  93. package/src/i18n/superdate/en.json +75 -0
  94. package/src/index.ts +32 -0
  95. package/src/panels/BasePanel.tsx +130 -0
  96. package/src/panels/DatePanel.tsx +235 -0
  97. package/src/panels/RangePanel.tsx +400 -0
  98. package/src/superdate/EventPanel.tsx +200 -0
  99. package/src/superdate/QuickSelect.tsx +121 -0
  100. package/src/superdate/RelativeInput.tsx +64 -0
  101. package/src/superdate/RelativePanel.tsx +103 -0
  102. package/src/superdate/SuperDate.module.css +30 -0
  103. package/src/superdate/Superdate.tsx +186 -0
  104. package/src/types/index.ts +121 -0
  105. package/src/utils/dateUtil.ts +551 -0
@@ -0,0 +1,438 @@
1
+ 'use client';
2
+
3
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
4
+ import { startOfDay, startOfWeek, startOfMonth, startOfYear, startOfDecade, addYears, endOfDay, endOfWeek, endOfMonth, endOfYear, endOfDecade, addDays, addWeeks, addMonths, isSameMonth, isSameYear, isBefore, isAfter, startOfMinute, startOfQuarter, endOfQuarter, addQuarters, startOfHour, endOfHour, addHours, endOfMinute, addMinutes, format } from 'date-fns';
5
+ import { PageType, DatePart } from '../types/index.js';
6
+ import { isNil, isString } from '@react-fabric/utilities';
7
+ import { arSA, enUS, de, es, fr, hi, it, ja, ko, pt, ru, zhCN } from 'date-fns/locale';
8
+ import i18next from 'i18next';
9
+
10
+ var Locales = {
11
+ ar: arSA,
12
+ en: enUS,
13
+ de: de,
14
+ es: es,
15
+ fr: fr,
16
+ hi: hi,
17
+ it: it,
18
+ ja: ja,
19
+ ko: ko,
20
+ pt: pt,
21
+ ru: ru,
22
+ zh: zhCN
23
+ };
24
+
25
+ // eslint-disable-next-line @typescript-eslint/no-namespace
26
+ var DateUtil;
27
+ (function (_DateUtil) {
28
+ var translateNumber = function translateNumber(d) {
29
+ return d.replace(/0/g, "٠").replace(/1/g, "١").replace(/2/g, "٢").replace(/3/g, "٣").replace(/4/g, "٤").replace(/5/g, "٥").replace(/6/g, "٦").replace(/7/g, "٧").replace(/8/g, "٨").replace(/9/g, "٩");
30
+ };
31
+ var formatGregorian = function formatGregorian(dt) {
32
+ var _Locales$loc;
33
+ var fmt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
34
+ var loc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "en";
35
+ var ret = format(dt, fmt, {
36
+ locale: (_Locales$loc = Locales[loc]) !== null && _Locales$loc !== void 0 ? _Locales$loc : Locales.en
37
+ });
38
+ return loc && loc === "ar" ? translateNumber(ret) : ret;
39
+ };
40
+ var formatHijri = function formatHijri(dt) {
41
+ var fmt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
42
+ var loc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "en";
43
+ var hdate = dt.toHijri();
44
+ var ret = hdate.format(fmt, {
45
+ locale: loc
46
+ });
47
+ return loc && loc === "ar" ? translateNumber(ret) : ret;
48
+ };
49
+ var addHijriDays = function addHijriDays(dt, d) {
50
+ var hdate = dt.toHijri().ignoreTime();
51
+ if (d < 0) {
52
+ return hdate.subtractDays(d);
53
+ } else {
54
+ return hdate.addDays(d);
55
+ }
56
+ };
57
+ var addHijriMonth = function addHijriMonth(dt, d) {
58
+ var hdate = dt.toHijri().ignoreTime();
59
+ if (hdate.month + d > 12) {
60
+ hdate.year += 1;
61
+ hdate.month = 1;
62
+ } else if (hdate.month + d < 1) {
63
+ hdate.year -= 1;
64
+ hdate.month = 12;
65
+ } else {
66
+ hdate.month += d;
67
+ }
68
+ return hdate;
69
+ };
70
+ var format$1 = _DateUtil.format = function (date) {
71
+ var fmt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "dd MMM yyyy";
72
+ var locale = arguments.length > 2 ? arguments[2] : undefined;
73
+ var isHijri = arguments.length > 3 ? arguments[3] : undefined;
74
+ var formatted = "";
75
+ if (!isNil(date)) {
76
+ var dt = isRelative(date) ? parseDate(date) : new Date(date);
77
+ if (dt != null) {
78
+ formatted = isHijri ? formatHijri(dt, fmt, locale) : formatGregorian(dt, fmt, locale);
79
+ }
80
+ }
81
+ return formatted;
82
+ };
83
+ var isRelative = _DateUtil.isRelative = function (date) {
84
+ return isString(date) && date.match(/^(\$\w+)([+-])(\d+)?$/) !== null;
85
+ };
86
+ _DateUtil.isRelativeRange = function (date) {
87
+ return isString(date) && date.match(/^(\$\w+)([+-])(\d+)?\|(\$\w+)([+-])(\d+)?$/) !== null;
88
+ };
89
+ var startOfDay$1 = _DateUtil.startOfDay = function (date) {
90
+ var isHijri = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
91
+ if (!date) return new Date();
92
+ if (isHijri) {
93
+ var hdate = date.toHijri().ignoreTime();
94
+ return hdate.toGregorian();
95
+ } else {
96
+ return startOfDay(date);
97
+ }
98
+ };
99
+ var startOfWeek$1 = _DateUtil.startOfWeek = function (date) {
100
+ var isHijri = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
101
+ if (isHijri) {
102
+ var hdate = date.toHijri().ignoreTime();
103
+ hdate.subtractDays(hdate.day);
104
+ return hdate.toGregorian();
105
+ } else {
106
+ return startOfWeek(date);
107
+ }
108
+ };
109
+ var startOfMonth$1 = _DateUtil.startOfMonth = function (date) {
110
+ var isHijri = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
111
+ if (isHijri) {
112
+ var hdate = date.toHijri().ignoreTime();
113
+ hdate.date = 1;
114
+ return hdate.toGregorian();
115
+ } else {
116
+ return startOfMonth(date);
117
+ }
118
+ };
119
+ var startOfYear$1 = _DateUtil.startOfYear = function (date) {
120
+ var isHijri = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
121
+ if (isHijri) {
122
+ var hdate = date.toHijri().ignoreTime();
123
+ hdate.date = 1;
124
+ hdate.month = 1;
125
+ return hdate.toGregorian();
126
+ } else {
127
+ return startOfYear(date);
128
+ }
129
+ };
130
+ var startOfDecade$1 = _DateUtil.startOfDecade = function (date) {
131
+ var isHijri = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
132
+ if (isHijri) {
133
+ var hdate = date.toHijri().ignoreTime();
134
+ hdate.date = 1;
135
+ hdate.month = 1;
136
+ hdate.year -= hdate.year % 10;
137
+ return hdate.toGregorian();
138
+ } else {
139
+ return startOfDecade(date);
140
+ }
141
+ };
142
+ _DateUtil.startOfCentury = function (date) {
143
+ var isHijri = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
144
+ if (isHijri) {
145
+ var hdate = date.toHijri().ignoreTime();
146
+ hdate.date = 1;
147
+ hdate.month = 1;
148
+ hdate.year -= hdate.year % 100;
149
+ return hdate.toGregorian();
150
+ } else {
151
+ return addYears(startOfYear(date), -1 * (date.getFullYear() % 100));
152
+ }
153
+ };
154
+ var endOfDay$1 = _DateUtil.endOfDay = function (date) {
155
+ var isHijri = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
156
+ if (!date) return new Date();
157
+ if (isHijri) {
158
+ var hdate = date.toHijri().ignoreTime();
159
+ return endOfDay(hdate.toGregorian());
160
+ } else {
161
+ return endOfDay(date);
162
+ }
163
+ };
164
+ var endOfWeek$1 = _DateUtil.endOfWeek = function (date) {
165
+ var isHijri = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
166
+ if (isHijri) {
167
+ var hdate = date.toHijri().ignoreTime();
168
+ hdate.addDays(6 - hdate.day);
169
+ return endOfDay(hdate.toGregorian());
170
+ } else {
171
+ return endOfWeek(date);
172
+ }
173
+ };
174
+ var endOfMonth$1 = _DateUtil.endOfMonth = function (date) {
175
+ var isHijri = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
176
+ if (isHijri) {
177
+ var hdate = addHijriMonth(date, 1);
178
+ hdate.date = 1;
179
+ hdate.subtractDay();
180
+ return endOfDay(hdate.toGregorian());
181
+ } else {
182
+ return endOfMonth(date);
183
+ }
184
+ };
185
+ var endOfYear$1 = _DateUtil.endOfYear = function (date) {
186
+ var isHijri = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
187
+ if (isHijri) {
188
+ var hdate = date.toHijri().ignoreTime();
189
+ hdate.year += 1;
190
+ hdate.month = 1;
191
+ hdate.date = 1;
192
+ hdate.subtractDay();
193
+ return endOfDay(hdate.toGregorian());
194
+ } else {
195
+ return endOfYear(date);
196
+ }
197
+ };
198
+ var endOfDecade$1 = _DateUtil.endOfDecade = function (date) {
199
+ var isHijri = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
200
+ if (isHijri) {
201
+ var hdate = date.toHijri().ignoreTime();
202
+ hdate.year += 10 - hdate.year % 10;
203
+ hdate.month = 1;
204
+ hdate.date = 1;
205
+ hdate.subtractDay();
206
+ return endOfDay(hdate.toGregorian());
207
+ } else {
208
+ return endOfDecade(date);
209
+ }
210
+ };
211
+ _DateUtil.endOfCentury = function (date) {
212
+ var isHijri = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
213
+ if (isHijri) {
214
+ var hdate = date.toHijri().ignoreTime();
215
+ hdate.year += 100 - hdate.year % 100;
216
+ hdate.month = 1;
217
+ hdate.date = 1;
218
+ hdate.subtractDay();
219
+ return endOfDay(hdate.toGregorian());
220
+ } else {
221
+ return addYears(endOfYear(date), 100 - date.getFullYear() % 100);
222
+ }
223
+ };
224
+ var addDays$1 = _DateUtil.addDays = function (date, d) {
225
+ var isHijri = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
226
+ if (isHijri) {
227
+ return addHijriDays(date, d).toGregorian();
228
+ } else {
229
+ return addDays(date, d);
230
+ }
231
+ };
232
+ var addWeeks$1 = _DateUtil.addWeeks = function (date, d) {
233
+ var isHijri = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
234
+ if (isHijri) {
235
+ return addHijriDays(date, d * 7).toGregorian();
236
+ } else {
237
+ return addWeeks(date, d);
238
+ }
239
+ };
240
+ var addMonths$1 = _DateUtil.addMonths = function (date, d) {
241
+ var isHijri = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
242
+ if (isHijri) {
243
+ return addHijriMonth(date, d).toGregorian();
244
+ } else {
245
+ return addMonths(date, d);
246
+ }
247
+ };
248
+ var addYears$1 = _DateUtil.addYears = function (date, d) {
249
+ var isHijri = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
250
+ if (isHijri) {
251
+ var hdate = date.toHijri().ignoreTime();
252
+ hdate.year += d;
253
+ return hdate.toGregorian();
254
+ } else {
255
+ return addYears(date, d);
256
+ }
257
+ };
258
+ _DateUtil.getWeek = function (date, locale) {
259
+ var isHijri = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
260
+ var ret = "";
261
+ if (isHijri) {
262
+ var start = startOfYear$1(date, isHijri);
263
+ ret = format$1(new Date(date.getTime() - start.getTime()), "ww");
264
+ } else {
265
+ ret = format$1(date, "ww");
266
+ }
267
+ if (locale === "ar") {
268
+ return translateNumber(ret);
269
+ }
270
+ return ret;
271
+ };
272
+ var isSameMonth$1 = _DateUtil.isSameMonth = function (date, compare) {
273
+ var isHijri = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
274
+ if (isHijri) {
275
+ var hdate = date.toHijri().ignoreTime();
276
+ var hcompare = compare.toHijri().ignoreTime();
277
+ return hdate.month === hcompare.month;
278
+ } else {
279
+ return isSameMonth(date, compare);
280
+ }
281
+ };
282
+ var isSameYear$1 = _DateUtil.isSameYear = function (date, compare) {
283
+ var isHijri = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
284
+ if (isHijri) {
285
+ var hdate = date.toHijri().ignoreTime();
286
+ var hcompare = compare.toHijri().ignoreTime();
287
+ return hdate.year === hcompare.year;
288
+ } else {
289
+ return isSameYear(date, compare);
290
+ }
291
+ };
292
+ _DateUtil.isDisabled = function (date, page, min, max) {
293
+ var methods = [startOfDay, endOfDay];
294
+ if (page === PageType.MONTH) {
295
+ methods = [startOfMonth, endOfMonth];
296
+ } else if (page === PageType.YEAR) {
297
+ methods = [startOfYear, endOfYear];
298
+ } else if (page === PageType.DECADE) {
299
+ methods = [startOfDecade, endOfDecade];
300
+ }
301
+ var _methods = methods,
302
+ _methods2 = _slicedToArray(_methods, 2),
303
+ start = _methods2[0],
304
+ end = _methods2[1];
305
+ return !(min == null) && isBefore(start(date), start(min)) || !(max == null) && isAfter(end(date), end(max));
306
+ };
307
+ var parseDate = _DateUtil.parseDate = function (datelike) {
308
+ return _parse(datelike);
309
+ };
310
+ var parseRange = _DateUtil.parseRange = function (datelike) {
311
+ var _datelike$split = datelike.split("|"),
312
+ _datelike$split2 = _slicedToArray(_datelike$split, 2),
313
+ start = _datelike$split2[0],
314
+ end = _datelike$split2[1];
315
+ var parseStart = _parse(start, !end ? "start" : undefined);
316
+ var parseEnd = _parse(end !== null && end !== void 0 ? end : start, !end ? "end" : undefined);
317
+ return isBefore(parseStart, parseEnd) ? [parseStart, parseEnd] : [parseEnd, parseStart];
318
+ };
319
+ _DateUtil.relativeTooltip = function (datelike) {
320
+ var isHijri = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
321
+ if (!datelike) return "";
322
+ var _parseRange = parseRange(datelike),
323
+ _parseRange2 = _slicedToArray(_parseRange, 2),
324
+ start = _parseRange2[0],
325
+ end = _parseRange2[1];
326
+ return end ? [format$1(start, "MMM dd yyyy, HH:mm:ss aaa", i18next.language, isHijri), format$1(end, "MMM dd yyyy, HH:mm:ss aaa", i18next.language, isHijri)].join(" ".concat(i18next.t("superdate:separator", "→"), " ")) : format$1(start, "MMM dd yyyy, HH:mm:ss aaa", i18next.language, isHijri);
327
+ };
328
+ _DateUtil.relativeLabel = function (datelike) {
329
+ var isHijri = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
330
+ if (!datelike) return "";
331
+ var _datelike$split3 = datelike.split("|"),
332
+ _datelike$split4 = _slicedToArray(_datelike$split3, 2),
333
+ start = _datelike$split4[0],
334
+ end = _datelike$split4[1];
335
+ var labels = [_parseLabel(start), _parseLabel(end)];
336
+ if (start && end && !start.match(/^\$\w+/) && !end.match(/^\$\w+/)) {
337
+ var parseStart = _parse(start);
338
+ var parseEnd = _parse(end);
339
+ if (isSameYear$1(parseStart, parseEnd)) {
340
+ labels = [format$1(parseStart, isSameMonth$1(parseStart, parseEnd) ? "dd" : "dd MMM", i18next.language, isHijri), format$1(parseEnd, "dd MMM yyyy", i18next.language, isHijri)];
341
+ } else {
342
+ labels = [format$1(parseStart, "dd MMM yyyy", i18next.language, isHijri), format$1(parseEnd, "dd MMM yyyy", i18next.language, isHijri)];
343
+ }
344
+ } else if (start && !start.match(/^\$\w+/)) {
345
+ var _parseStart = _parse(start);
346
+ labels = [format$1(_parseStart, "dd MMM yyyy", i18next.language, isHijri)];
347
+ }
348
+ return end ? labels.join(" ".concat(i18next.t("superdate:separator", "→"), " ")) : labels[0];
349
+ };
350
+ var _parseLabel = function _parseLabel(dt) {
351
+ var _dt$match;
352
+ if (!dt) return "";
353
+ var _ref = (_dt$match = dt.match(/^(\$\w+)([+-])?(\d+)?$/)) !== null && _dt$match !== void 0 ? _dt$match : [],
354
+ _ref2 = _slicedToArray(_ref, 4),
355
+ part = _ref2[1],
356
+ _ref2$ = _ref2[2],
357
+ op = _ref2$ === void 0 ? "+" : _ref2$,
358
+ _ref2$2 = _ref2[3],
359
+ diff = _ref2$2 === void 0 ? 0 : _ref2$2;
360
+ if (part) {
361
+ var t = function t(k, o) {
362
+ return i18next.t("superdate:".concat(k), o);
363
+ };
364
+ if (part === DatePart.NOW) {
365
+ return t("label.".concat(DatePart.NOW));
366
+ }
367
+ if (diff === 0) {
368
+ return t("now.".concat(part));
369
+ } else {
370
+ return t("".concat(op === "+" ? "next" : "prev", ".").concat(part), {
371
+ count: parseInt(diff, 10)
372
+ });
373
+ }
374
+ }
375
+ };
376
+ var _parse = function _parse(dt, rounded) {
377
+ var _dt$match2;
378
+ var _ref3 = (_dt$match2 = dt.match(/^(\$\w+)([+-]\d+)?$/)) !== null && _dt$match2 !== void 0 ? _dt$match2 : [],
379
+ _ref4 = _slicedToArray(_ref3, 3),
380
+ part = _ref4[1],
381
+ _ref4$ = _ref4[2],
382
+ diff = _ref4$ === void 0 ? "0" : _ref4$;
383
+ if (part) {
384
+ var date = startOfMinute(new Date());
385
+ switch (part) {
386
+ case DatePart.NOW:
387
+ if (rounded) {
388
+ date = (rounded === "start" ? startOfDay$1 : endOfDay$1)(date);
389
+ }
390
+ return date;
391
+ case DatePart.MINUTE:
392
+ if (rounded) {
393
+ date = (rounded === "start" ? startOfMinute : endOfMinute)(date);
394
+ }
395
+ return addMinutes(date, parseInt(diff, 10));
396
+ case DatePart.HOUR:
397
+ if (rounded) {
398
+ date = (rounded === "start" ? startOfHour : endOfHour)(date);
399
+ }
400
+ return addHours(date, parseInt(diff, 10));
401
+ case DatePart.DAY:
402
+ if (rounded) {
403
+ date = (rounded === "start" ? startOfDay$1 : endOfDay$1)(date);
404
+ }
405
+ return addDays$1(date, parseInt(diff, 10));
406
+ case DatePart.WEEK:
407
+ if (rounded) {
408
+ date = (rounded === "start" ? startOfWeek$1 : endOfWeek$1)(date);
409
+ }
410
+ return addWeeks$1(date, parseInt(diff, 10));
411
+ case DatePart.MONTH:
412
+ if (rounded) {
413
+ date = (rounded === "start" ? startOfMonth$1 : endOfMonth$1)(date);
414
+ }
415
+ return addMonths$1(date, parseInt(diff, 10));
416
+ case DatePart.QUARTER:
417
+ if (rounded) {
418
+ date = (rounded === "start" ? startOfQuarter : endOfQuarter)(date);
419
+ }
420
+ return addQuarters(date, parseInt(diff, 10));
421
+ case DatePart.YEAR:
422
+ if (rounded) {
423
+ date = (rounded === "start" ? startOfYear$1 : endOfYear$1)(date);
424
+ }
425
+ return addYears$1(date, parseInt(diff, 10));
426
+ case DatePart.DECADE:
427
+ if (rounded) {
428
+ date = (rounded === "start" ? startOfDecade$1 : endOfDecade$1)(date);
429
+ }
430
+ return addYears$1(date, parseInt(diff, 10) * 10);
431
+ }
432
+ }
433
+ return new Date(dt);
434
+ };
435
+ })(DateUtil || (DateUtil = {})); // @ts-expect-error ignore
436
+ window.DateUtil = DateUtil;
437
+
438
+ export { DateUtil };
@@ -0,0 +1,15 @@
1
+ import { PageType } from "../types";
2
+ export interface DateCellProps {
3
+ date: Date;
4
+ page: PageType;
5
+ selected?: Date | [Date, Date];
6
+ hilight?: [Date, Date];
7
+ isHijri?: boolean;
8
+ isMuted?: boolean;
9
+ className?: string;
10
+ selectDate?: (date: Date) => void;
11
+ changePageDate?: (date: Date) => void;
12
+ mouseOver?: (date: Date) => void;
13
+ dateDisabled?: (date: Date) => boolean;
14
+ }
15
+ export declare const DateCell: ({ date, isMuted, ...props }: DateCellProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,14 @@
1
+ import { type DateLike, PageType } from "../types";
2
+ interface Props {
3
+ min?: DateLike;
4
+ max?: DateLike;
5
+ pageDate: Date;
6
+ page: PageType;
7
+ isHijri?: boolean;
8
+ hidePrevious?: boolean;
9
+ hideNext?: boolean;
10
+ changePage: (page: PageType) => void;
11
+ changePageDate: (date: Date) => void;
12
+ }
13
+ export declare const DateHeader: (props: Props) => import("react/jsx-runtime").JSX.Element;
14
+ export {};
@@ -0,0 +1,6 @@
1
+ import { type DateCellProps } from "./DateCell";
2
+ interface Props extends Omit<DateCellProps, "date"> {
3
+ pageDate: Date;
4
+ }
5
+ export declare const DatePage: ({ pageDate, isHijri, ...props }: Props) => import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,6 @@
1
+ import { type DateCellProps } from "./DateCell";
2
+ interface Props extends Omit<DateCellProps, "date"> {
3
+ pageDate: Date;
4
+ }
5
+ export declare const DecadePage: ({ pageDate, isHijri, ...props }: Props) => import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,6 @@
1
+ import { type DateCellProps } from "./DateCell";
2
+ interface Props extends Omit<DateCellProps, "date"> {
3
+ pageDate: Date;
4
+ }
5
+ export declare const MonthPage: ({ pageDate, isHijri, ...props }: Props) => import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,10 @@
1
+ interface Props {
2
+ hour: number;
3
+ minute: number;
4
+ onTimeChange: (time: {
5
+ hour: number;
6
+ minute: number;
7
+ }) => void;
8
+ }
9
+ export declare const TimeSlider: ({ hour, minute, onTimeChange }: Props) => import("react/jsx-runtime").JSX.Element;
10
+ export {};
@@ -0,0 +1,6 @@
1
+ import { type DateCellProps } from "./DateCell";
2
+ interface Props extends Omit<DateCellProps, "date"> {
3
+ pageDate: Date;
4
+ }
5
+ export declare const YearPage: ({ pageDate, isHijri, ...props }: Props) => import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,15 @@
1
+ import { type MenuItemProps } from "@react-fabric/core/dist/types/components/menu/types";
2
+ import { type AriaProps, type ChildrenProp, type CssProp, type TestProps } from "@react-fabric/core/dist/types/types";
3
+ import { type ElementType } from "react";
4
+ import { type DateLike } from "../types";
5
+ export interface Props extends CssProp, AriaProps, TestProps, Partial<ChildrenProp<ElementType<MenuItemProps>>> {
6
+ /**
7
+ * date like value
8
+ */
9
+ date?: DateLike;
10
+ /**
11
+ * date format
12
+ */
13
+ format?: string;
14
+ }
15
+ export declare const DateDisplay: ({ date, className, format, children, ...aria }: Props) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ declare const _exports: any;
2
+ export = _exports;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ import "./hijri";
2
+ import "./i18n";
3
+ export { DateDisplay } from "./display/DateDisplay";
4
+ export { DatePanel } from "./panels/DatePanel";
5
+ export { RangePanel } from "./panels/RangePanel";
6
+ export { SuperDate } from "./superdate/Superdate";
7
+ export { DateUtil } from "./utils/dateUtil";
@@ -0,0 +1,25 @@
1
+ import { PageType, type DateLike } from "../types";
2
+ export interface PanelProps {
3
+ page: PageType;
4
+ pageDate: Date;
5
+ selected?: Date | [Date, Date];
6
+ hilight?: [Date, Date];
7
+ hour: number;
8
+ minute: number;
9
+ min?: DateLike;
10
+ max?: DateLike;
11
+ isHijri: boolean;
12
+ withTime?: boolean;
13
+ hidePrevious?: boolean;
14
+ hideNext?: boolean;
15
+ changePage: (page: PageType) => void;
16
+ changePageDate: (date: Date, pageChange?: boolean) => void;
17
+ changeTime: (time: {
18
+ hour: number;
19
+ minute: number;
20
+ }) => void;
21
+ mouseOver?: (date: Date) => void;
22
+ selectDate: (date: Date) => void;
23
+ isDateDisabled: (date: Date) => boolean;
24
+ }
25
+ export declare const BasePanel: ({ min, max, isHijri, withTime, hideNext, hidePrevious, changePage, changePageDate, changeTime, selectDate, isDateDisabled, ...state }: PanelProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { type DateProps } from "../types";
2
+ export declare const DatePanel: ({ className, max, min, dateDisabled, onChange, showHijriToggle, value, withTime, ...rest }: DateProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { type RangeProps } from "../types";
2
+ export declare const RangePanel: ({ className, max, min, dateDisabled, onChange, showHijriToggle, value, withTime, showApply, ...rest }: RangeProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ import { type SuperDateProps } from "../types";
2
+ export declare const EventPanel: ({ isHijri, onChange, events, }: {
3
+ isHijri: boolean;
4
+ } & Partial<SuperDateProps>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare const QuickSelect: ({ presets, value, onChange, }: KeyValue) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare const RelativeInput: ({ label, prefix, showApply }: KeyValue) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare const RelativePanel: ({ value, onChange }: KeyValue) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,17 @@
1
+ import { type SuperDateProps } from "../types";
2
+ export declare const SuperDateTabs: ({ events, value, presets, onChange, }: SuperDateProps) => import("react/jsx-runtime").JSX.Element;
3
+ /**
4
+ * Superdate panel provides ability to select relative and absolute dates
5
+ *
6
+ * Relative dates parts
7
+ * `$now`,
8
+ * `$minute`,
9
+ * `$hour`,
10
+ * `$day`,
11
+ * `$week`,
12
+ * `$month`,
13
+ * `$quarter`,
14
+ * `$year`,
15
+ * `$decade`
16
+ */
17
+ export declare const SuperDate: ({ as, color, variant, onChange, value, ...props }: SuperDateProps) => import("react/jsx-runtime").JSX.Element;