react-day-picker 9.13.2 → 10.0.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cjs/DayPicker.js +85 -83
- package/dist/cjs/UI.d.ts +0 -230
- package/dist/cjs/classes/DateLib.d.ts +0 -21
- package/dist/cjs/classes/DateLib.js +3 -13
- package/dist/cjs/components/Dropdown.d.ts +0 -11
- package/dist/cjs/components/Dropdown.js +3 -1
- package/dist/cjs/components/NextMonthButton.js +1 -3
- package/dist/cjs/components/PreviousMonthButton.js +1 -3
- package/dist/cjs/components/custom-components.d.ts +0 -1
- package/dist/cjs/components/custom-components.js +0 -1
- package/dist/cjs/formatters/formatCaption.d.ts +0 -6
- package/dist/cjs/formatters/formatCaption.js +0 -7
- package/dist/cjs/formatters/formatYearDropdown.d.ts +0 -6
- package/dist/cjs/formatters/formatYearDropdown.js +0 -7
- package/dist/cjs/helpers/getFormatters.d.ts +0 -2
- package/dist/cjs/helpers/getFormatters.js +0 -7
- package/dist/cjs/helpers/getInitialMonth.d.ts +1 -1
- package/dist/cjs/helpers/getNavMonth.d.ts +1 -1
- package/dist/cjs/helpers/getNavMonth.js +1 -21
- package/dist/cjs/hijri/index.d.ts +28 -0
- package/dist/cjs/hijri/index.js +92 -0
- package/dist/cjs/hijri/lib/addMonths.d.ts +1 -0
- package/dist/cjs/hijri/lib/addMonths.js +9 -0
- package/dist/cjs/hijri/lib/addYears.d.ts +1 -0
- package/dist/cjs/hijri/lib/addYears.js +9 -0
- package/dist/cjs/hijri/lib/differenceInCalendarMonths.d.ts +1 -0
- package/dist/cjs/hijri/lib/differenceInCalendarMonths.js +10 -0
- package/dist/cjs/hijri/lib/eachMonthOfInterval.d.ts +2 -0
- package/dist/cjs/hijri/lib/eachMonthOfInterval.js +29 -0
- package/dist/cjs/hijri/lib/eachYearOfInterval.d.ts +2 -0
- package/dist/cjs/hijri/lib/eachYearOfInterval.js +19 -0
- package/dist/cjs/hijri/lib/endOfMonth.d.ts +1 -0
- package/dist/cjs/hijri/lib/endOfMonth.js +14 -0
- package/dist/cjs/hijri/lib/endOfYear.d.ts +1 -0
- package/dist/cjs/hijri/lib/endOfYear.js +14 -0
- package/dist/cjs/hijri/lib/fallbackLocaleData.d.ts +5 -0
- package/dist/cjs/hijri/lib/fallbackLocaleData.js +111 -0
- package/dist/cjs/hijri/lib/format.d.ts +3 -0
- package/dist/cjs/hijri/lib/format.js +149 -0
- package/dist/cjs/hijri/lib/getMonth.d.ts +1 -0
- package/dist/cjs/hijri/lib/getMonth.js +7 -0
- package/dist/cjs/hijri/lib/getYear.d.ts +1 -0
- package/dist/cjs/hijri/lib/getYear.js +7 -0
- package/dist/cjs/hijri/lib/index.d.ts +17 -0
- package/dist/cjs/hijri/lib/index.js +33 -0
- package/dist/cjs/hijri/lib/isSameMonth.d.ts +1 -0
- package/dist/cjs/hijri/lib/isSameMonth.js +10 -0
- package/dist/cjs/hijri/lib/isSameYear.d.ts +1 -0
- package/dist/cjs/hijri/lib/isSameYear.js +9 -0
- package/dist/cjs/hijri/lib/newDate.d.ts +1 -0
- package/dist/cjs/hijri/lib/newDate.js +7 -0
- package/dist/cjs/hijri/lib/setMonth.d.ts +1 -0
- package/dist/cjs/hijri/lib/setMonth.js +27 -0
- package/dist/cjs/hijri/lib/setYear.d.ts +1 -0
- package/dist/cjs/hijri/lib/setYear.js +15 -0
- package/dist/cjs/hijri/lib/startOfMonth.d.ts +1 -0
- package/dist/cjs/hijri/lib/startOfMonth.js +12 -0
- package/dist/cjs/hijri/lib/startOfYear.d.ts +1 -0
- package/dist/cjs/hijri/lib/startOfYear.js +12 -0
- package/dist/cjs/hijri/utils/conversion.d.ts +5 -0
- package/dist/cjs/hijri/utils/conversion.js +40 -0
- package/dist/cjs/hijri/utils/daysInMonth.d.ts +1 -0
- package/dist/cjs/hijri/utils/daysInMonth.js +24 -0
- package/dist/cjs/hijri/utils/range.d.ts +21 -0
- package/dist/cjs/hijri/utils/range.js +104 -0
- package/dist/cjs/hijri/utils/types.d.ts +5 -0
- package/dist/cjs/hijri/utils/types.js +2 -0
- package/dist/cjs/labels/labelDayButton.d.ts +0 -5
- package/dist/cjs/labels/labelDayButton.js +0 -6
- package/dist/cjs/labels/labelGrid.d.ts +0 -5
- package/dist/cjs/labels/labelGrid.js +0 -6
- package/dist/cjs/selection/useRange.js +22 -4
- package/dist/cjs/types/index.d.ts +0 -1
- package/dist/cjs/types/index.js +0 -1
- package/dist/cjs/types/props.d.ts +30 -100
- package/dist/cjs/types/shared.d.ts +1 -45
- package/dist/cjs/useCalendar.d.ts +1 -1
- package/dist/cjs/utils/dateMatchModifiers.d.ts +0 -5
- package/dist/cjs/utils/dateMatchModifiers.js +0 -6
- package/dist/cjs/utils/rangeIncludesDate.d.ts +0 -5
- package/dist/cjs/utils/rangeIncludesDate.js +0 -7
- package/dist/esm/DayPicker.js +85 -83
- package/dist/esm/UI.d.ts +0 -230
- package/dist/esm/classes/DateLib.d.ts +0 -21
- package/dist/esm/classes/DateLib.js +2 -12
- package/dist/esm/components/Dropdown.d.ts +0 -11
- package/dist/esm/components/Dropdown.js +3 -1
- package/dist/esm/components/NextMonthButton.js +1 -3
- package/dist/esm/components/PreviousMonthButton.js +1 -3
- package/dist/esm/components/custom-components.d.ts +0 -1
- package/dist/esm/components/custom-components.js +0 -1
- package/dist/esm/formatters/formatCaption.d.ts +0 -6
- package/dist/esm/formatters/formatCaption.js +0 -6
- package/dist/esm/formatters/formatYearDropdown.d.ts +0 -6
- package/dist/esm/formatters/formatYearDropdown.js +0 -6
- package/dist/esm/helpers/getFormatters.d.ts +0 -2
- package/dist/esm/helpers/getFormatters.js +0 -7
- package/dist/esm/helpers/getInitialMonth.d.ts +1 -1
- package/dist/esm/helpers/getNavMonth.d.ts +1 -1
- package/dist/esm/helpers/getNavMonth.js +1 -21
- package/dist/esm/hijri/index.d.ts +28 -0
- package/dist/esm/hijri/index.js +49 -0
- package/dist/esm/hijri/lib/addMonths.d.ts +1 -0
- package/dist/esm/hijri/lib/addMonths.js +6 -0
- package/dist/esm/hijri/lib/addYears.d.ts +1 -0
- package/dist/esm/hijri/lib/addYears.js +6 -0
- package/dist/esm/hijri/lib/differenceInCalendarMonths.d.ts +1 -0
- package/dist/esm/hijri/lib/differenceInCalendarMonths.js +7 -0
- package/dist/esm/hijri/lib/eachMonthOfInterval.d.ts +2 -0
- package/dist/esm/hijri/lib/eachMonthOfInterval.js +26 -0
- package/dist/esm/hijri/lib/eachYearOfInterval.d.ts +2 -0
- package/dist/esm/hijri/lib/eachYearOfInterval.js +16 -0
- package/dist/esm/hijri/lib/endOfMonth.d.ts +1 -0
- package/dist/esm/hijri/lib/endOfMonth.js +11 -0
- package/dist/esm/hijri/lib/endOfYear.d.ts +1 -0
- package/dist/esm/hijri/lib/endOfYear.js +11 -0
- package/dist/esm/hijri/lib/fallbackLocaleData.d.ts +5 -0
- package/dist/esm/hijri/lib/fallbackLocaleData.js +105 -0
- package/dist/esm/hijri/lib/format.d.ts +3 -0
- package/dist/esm/hijri/lib/format.js +146 -0
- package/dist/esm/hijri/lib/getMonth.d.ts +1 -0
- package/dist/esm/hijri/lib/getMonth.js +4 -0
- package/dist/esm/hijri/lib/getYear.d.ts +1 -0
- package/dist/esm/hijri/lib/getYear.js +4 -0
- package/dist/esm/hijri/lib/index.d.ts +17 -0
- package/dist/esm/hijri/lib/index.js +17 -0
- package/dist/esm/hijri/lib/isSameMonth.d.ts +1 -0
- package/dist/esm/hijri/lib/isSameMonth.js +7 -0
- package/dist/esm/hijri/lib/isSameYear.d.ts +1 -0
- package/dist/esm/hijri/lib/isSameYear.js +6 -0
- package/dist/esm/hijri/lib/newDate.d.ts +1 -0
- package/dist/esm/hijri/lib/newDate.js +4 -0
- package/dist/esm/hijri/lib/setMonth.d.ts +1 -0
- package/dist/esm/hijri/lib/setMonth.js +24 -0
- package/dist/esm/hijri/lib/setYear.d.ts +1 -0
- package/dist/esm/hijri/lib/setYear.js +12 -0
- package/dist/esm/hijri/lib/startOfMonth.d.ts +1 -0
- package/dist/esm/hijri/lib/startOfMonth.js +9 -0
- package/dist/esm/hijri/lib/startOfYear.d.ts +1 -0
- package/dist/esm/hijri/lib/startOfYear.js +9 -0
- package/dist/esm/hijri/utils/conversion.d.ts +5 -0
- package/dist/esm/hijri/utils/conversion.js +36 -0
- package/dist/esm/hijri/utils/daysInMonth.d.ts +1 -0
- package/dist/esm/hijri/utils/daysInMonth.js +21 -0
- package/dist/esm/hijri/utils/range.d.ts +21 -0
- package/dist/esm/hijri/utils/range.js +96 -0
- package/dist/esm/hijri/utils/types.d.ts +5 -0
- package/dist/esm/hijri/utils/types.js +1 -0
- package/dist/esm/labels/labelDayButton.d.ts +0 -5
- package/dist/esm/labels/labelDayButton.js +0 -5
- package/dist/esm/labels/labelGrid.d.ts +0 -5
- package/dist/esm/labels/labelGrid.js +0 -5
- package/dist/esm/selection/useRange.js +22 -4
- package/dist/esm/types/index.d.ts +0 -1
- package/dist/esm/types/index.js +0 -1
- package/dist/esm/types/props.d.ts +30 -100
- package/dist/esm/types/shared.d.ts +1 -45
- package/dist/esm/useCalendar.d.ts +1 -1
- package/dist/esm/utils/dateMatchModifiers.d.ts +0 -5
- package/dist/esm/utils/dateMatchModifiers.js +0 -5
- package/dist/esm/utils/rangeIncludesDate.d.ts +0 -5
- package/dist/esm/utils/rangeIncludesDate.js +0 -5
- package/hijri.d.ts +1 -0
- package/hijri.js +2 -0
- package/package.json +24 -23
- package/dist/cjs/components/Button.d.ts +0 -9
- package/dist/cjs/components/Button.js +0 -16
- package/dist/cjs/jalali.d.ts +0 -2
- package/dist/cjs/jalali.js +0 -18
- package/dist/cjs/types/deprecated.d.ts +0 -180
- package/dist/cjs/types/deprecated.js +0 -26
- package/dist/esm/components/Button.d.ts +0 -9
- package/dist/esm/components/Button.js +0 -10
- package/dist/esm/jalali.d.ts +0 -2
- package/dist/esm/jalali.js +0 -2
- package/dist/esm/types/deprecated.d.ts +0 -180
- package/dist/esm/types/deprecated.js +0 -23
- package/jalali.d.ts +0 -1
- package/jalali.js +0 -3
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.formatMonthCaption = void 0;
|
|
4
3
|
exports.formatCaption = formatCaption;
|
|
5
4
|
const DateLib_js_1 = require("../classes/DateLib.js");
|
|
6
5
|
/**
|
|
@@ -19,9 +18,3 @@ function formatCaption(month, options, dateLib) {
|
|
|
19
18
|
const lib = dateLib ?? new DateLib_js_1.DateLib(options);
|
|
20
19
|
return lib.formatMonthYear(month);
|
|
21
20
|
}
|
|
22
|
-
/**
|
|
23
|
-
* @private
|
|
24
|
-
* @deprecated Use {@link formatCaption} instead.
|
|
25
|
-
* @group Formatters
|
|
26
|
-
*/
|
|
27
|
-
exports.formatMonthCaption = formatCaption;
|
|
@@ -10,9 +10,3 @@ import { type DateLib } from "../classes/DateLib.js";
|
|
|
10
10
|
* @see https://daypicker.dev/docs/translation#custom-formatters
|
|
11
11
|
*/
|
|
12
12
|
export declare function formatYearDropdown(year: Date, dateLib?: DateLib): string;
|
|
13
|
-
/**
|
|
14
|
-
* @private
|
|
15
|
-
* @deprecated Use `formatYearDropdown` instead.
|
|
16
|
-
* @group Formatters
|
|
17
|
-
*/
|
|
18
|
-
export declare const formatYearCaption: typeof formatYearDropdown;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.formatYearCaption = void 0;
|
|
4
3
|
exports.formatYearDropdown = formatYearDropdown;
|
|
5
4
|
const DateLib_js_1 = require("../classes/DateLib.js");
|
|
6
5
|
/**
|
|
@@ -16,9 +15,3 @@ const DateLib_js_1 = require("../classes/DateLib.js");
|
|
|
16
15
|
function formatYearDropdown(year, dateLib = DateLib_js_1.defaultDateLib) {
|
|
17
16
|
return dateLib.format(year, "yyyy");
|
|
18
17
|
}
|
|
19
|
-
/**
|
|
20
|
-
* @private
|
|
21
|
-
* @deprecated Use `formatYearDropdown` instead.
|
|
22
|
-
* @group Formatters
|
|
23
|
-
*/
|
|
24
|
-
exports.formatYearCaption = formatYearDropdown;
|
|
@@ -11,10 +11,8 @@ export declare function getFormatters(customFormatters: DayPickerProps["formatte
|
|
|
11
11
|
formatCaption: typeof defaultFormatters.formatCaption;
|
|
12
12
|
formatDay: typeof defaultFormatters.formatDay;
|
|
13
13
|
formatMonthDropdown: typeof defaultFormatters.formatMonthDropdown;
|
|
14
|
-
formatMonthCaption: typeof defaultFormatters.formatMonthCaption;
|
|
15
14
|
formatWeekNumber: typeof defaultFormatters.formatWeekNumber;
|
|
16
15
|
formatWeekNumberHeader: typeof defaultFormatters.formatWeekNumberHeader;
|
|
17
16
|
formatWeekdayName: typeof defaultFormatters.formatWeekdayName;
|
|
18
17
|
formatYearDropdown: typeof defaultFormatters.formatYearDropdown;
|
|
19
|
-
formatYearCaption: typeof defaultFormatters.formatYearCaption;
|
|
20
18
|
};
|
|
@@ -43,13 +43,6 @@ const defaultFormatters = __importStar(require("../formatters/index.js"));
|
|
|
43
43
|
* @returns The merged formatters object.
|
|
44
44
|
*/
|
|
45
45
|
function getFormatters(customFormatters) {
|
|
46
|
-
if (customFormatters?.formatMonthCaption && !customFormatters.formatCaption) {
|
|
47
|
-
customFormatters.formatCaption = customFormatters.formatMonthCaption;
|
|
48
|
-
}
|
|
49
|
-
if (customFormatters?.formatYearCaption &&
|
|
50
|
-
!customFormatters.formatYearDropdown) {
|
|
51
|
-
customFormatters.formatYearDropdown = customFormatters.formatYearCaption;
|
|
52
|
-
}
|
|
53
46
|
return {
|
|
54
47
|
...defaultFormatters,
|
|
55
48
|
...customFormatters,
|
|
@@ -11,4 +11,4 @@ import type { DayPickerProps } from "../types/props.js";
|
|
|
11
11
|
* @param dateLib The date library to use for date manipulation.
|
|
12
12
|
* @returns The initial month to display.
|
|
13
13
|
*/
|
|
14
|
-
export declare function getInitialMonth(props: Pick<DayPickerProps, "
|
|
14
|
+
export declare function getInitialMonth(props: Pick<DayPickerProps, "month" | "defaultMonth" | "today" | "numberOfMonths" | "timeZone">, navStart: Date | undefined, navEnd: Date | undefined, dateLib: DateLib): Date;
|
|
@@ -7,4 +7,4 @@ import type { DayPickerProps } from "../types/index.js";
|
|
|
7
7
|
* @param dateLib The date library to use for date manipulation.
|
|
8
8
|
* @returns A tuple containing the start and end months for navigation.
|
|
9
9
|
*/
|
|
10
|
-
export declare function getNavMonths(props: Pick<DayPickerProps, "captionLayout" | "endMonth" | "startMonth" | "today" | "timeZone"
|
|
10
|
+
export declare function getNavMonths(props: Pick<DayPickerProps, "captionLayout" | "endMonth" | "startMonth" | "today" | "timeZone">, dateLib: DateLib): [start: Date | undefined, end: Date | undefined];
|
|
@@ -10,38 +10,18 @@ exports.getNavMonths = getNavMonths;
|
|
|
10
10
|
*/
|
|
11
11
|
function getNavMonths(props, dateLib) {
|
|
12
12
|
let { startMonth, endMonth } = props;
|
|
13
|
-
const { startOfYear, startOfDay, startOfMonth, endOfMonth, addYears, endOfYear,
|
|
14
|
-
// Handle deprecated code
|
|
15
|
-
const { fromYear, toYear, fromMonth, toMonth } = props;
|
|
16
|
-
if (!startMonth && fromMonth) {
|
|
17
|
-
startMonth = fromMonth;
|
|
18
|
-
}
|
|
19
|
-
if (!startMonth && fromYear) {
|
|
20
|
-
startMonth = dateLib.newDate(fromYear, 0, 1);
|
|
21
|
-
}
|
|
22
|
-
if (!endMonth && toMonth) {
|
|
23
|
-
endMonth = toMonth;
|
|
24
|
-
}
|
|
25
|
-
if (!endMonth && toYear) {
|
|
26
|
-
endMonth = newDate(toYear, 11, 31);
|
|
27
|
-
}
|
|
13
|
+
const { startOfYear, startOfDay, startOfMonth, endOfMonth, addYears, endOfYear, today, } = dateLib;
|
|
28
14
|
const hasYearDropdown = props.captionLayout === "dropdown" ||
|
|
29
15
|
props.captionLayout === "dropdown-years";
|
|
30
16
|
if (startMonth) {
|
|
31
17
|
startMonth = startOfMonth(startMonth);
|
|
32
18
|
}
|
|
33
|
-
else if (fromYear) {
|
|
34
|
-
startMonth = newDate(fromYear, 0, 1);
|
|
35
|
-
}
|
|
36
19
|
else if (!startMonth && hasYearDropdown) {
|
|
37
20
|
startMonth = startOfYear(addYears(props.today ?? today(), -100));
|
|
38
21
|
}
|
|
39
22
|
if (endMonth) {
|
|
40
23
|
endMonth = endOfMonth(endMonth);
|
|
41
24
|
}
|
|
42
|
-
else if (toYear) {
|
|
43
|
-
endMonth = newDate(toYear, 11, 31);
|
|
44
|
-
}
|
|
45
25
|
else if (!endMonth && hasYearDropdown) {
|
|
46
26
|
endMonth = endOfYear(props.today ?? today());
|
|
47
27
|
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Locale } from "date-fns";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { DateLib, type DateLibOptions } from "../index.js";
|
|
4
|
+
import type { DayPickerProps } from "../types/props.js";
|
|
5
|
+
/**
|
|
6
|
+
* Render the Hijri (Umm al-Qura) calendar.
|
|
7
|
+
*
|
|
8
|
+
* Defaults:
|
|
9
|
+
*
|
|
10
|
+
* - `locale`: `ar-SA`
|
|
11
|
+
* - `dir`: `rtl`
|
|
12
|
+
* - `numerals`: `arab`
|
|
13
|
+
* - `startMonth`: `1924-08-01`
|
|
14
|
+
* - `endMonth`: `2077-11-16`
|
|
15
|
+
*
|
|
16
|
+
* Out-of-range date props are clamped to the supported Umm al-Qura conversion
|
|
17
|
+
* range, preventing runtime conversion errors.
|
|
18
|
+
*/
|
|
19
|
+
export declare function DayPicker(props: DayPickerProps & {
|
|
20
|
+
locale?: Locale;
|
|
21
|
+
dir?: DayPickerProps["dir"];
|
|
22
|
+
numerals?: DayPickerProps["numerals"];
|
|
23
|
+
dateLib?: DayPickerProps["dateLib"];
|
|
24
|
+
}): React.JSX.Element;
|
|
25
|
+
/** Returns the date library used in the Hijri calendar. */
|
|
26
|
+
export declare const getDateLib: (options?: DateLibOptions) => DateLib;
|
|
27
|
+
export { arSA } from "../locale/ar-SA.js";
|
|
28
|
+
export { enUS } from "../locale/en-US.js";
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.enUS = exports.arSA = exports.getDateLib = void 0;
|
|
40
|
+
exports.DayPicker = DayPicker;
|
|
41
|
+
const react_1 = __importDefault(require("react"));
|
|
42
|
+
const index_js_1 = require("../index.js");
|
|
43
|
+
const ar_SA_js_1 = require("../locale/ar-SA.js");
|
|
44
|
+
const hijriDateLib = __importStar(require("./lib/index.js"));
|
|
45
|
+
const range_js_1 = require("./utils/range.js");
|
|
46
|
+
function clampDateProp(date) {
|
|
47
|
+
if (!date) {
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
return (0, range_js_1.clampGregorianDate)(date);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Render the Hijri (Umm al-Qura) calendar.
|
|
54
|
+
*
|
|
55
|
+
* Defaults:
|
|
56
|
+
*
|
|
57
|
+
* - `locale`: `ar-SA`
|
|
58
|
+
* - `dir`: `rtl`
|
|
59
|
+
* - `numerals`: `arab`
|
|
60
|
+
* - `startMonth`: `1924-08-01`
|
|
61
|
+
* - `endMonth`: `2077-11-16`
|
|
62
|
+
*
|
|
63
|
+
* Out-of-range date props are clamped to the supported Umm al-Qura conversion
|
|
64
|
+
* range, preventing runtime conversion errors.
|
|
65
|
+
*/
|
|
66
|
+
function DayPicker(props) {
|
|
67
|
+
const { dateLib: dateLibProp, ...dayPickerProps } = props;
|
|
68
|
+
const hasStartBound = props.startMonth !== undefined;
|
|
69
|
+
const hasEndBound = props.endMonth !== undefined;
|
|
70
|
+
const clampedProps = {
|
|
71
|
+
...dayPickerProps,
|
|
72
|
+
month: clampDateProp(props.month),
|
|
73
|
+
defaultMonth: clampDateProp(props.defaultMonth),
|
|
74
|
+
today: clampDateProp(props.today),
|
|
75
|
+
startMonth: hasStartBound
|
|
76
|
+
? clampDateProp(props.startMonth)
|
|
77
|
+
: new Date(range_js_1.GREGORIAN_MIN_DATE),
|
|
78
|
+
endMonth: hasEndBound
|
|
79
|
+
? clampDateProp(props.endMonth)
|
|
80
|
+
: new Date(range_js_1.GREGORIAN_MAX_DATE),
|
|
81
|
+
};
|
|
82
|
+
return (react_1.default.createElement(index_js_1.DayPicker, { ...clampedProps, locale: props.locale ?? ar_SA_js_1.arSA, numerals: props.numerals ?? "arab", dir: props.dir ?? "rtl", dateLib: { ...hijriDateLib, ...dateLibProp } }));
|
|
83
|
+
}
|
|
84
|
+
/** Returns the date library used in the Hijri calendar. */
|
|
85
|
+
const getDateLib = (options) => {
|
|
86
|
+
return new index_js_1.DateLib(options, hijriDateLib);
|
|
87
|
+
};
|
|
88
|
+
exports.getDateLib = getDateLib;
|
|
89
|
+
var ar_SA_js_2 = require("../locale/ar-SA.js");
|
|
90
|
+
Object.defineProperty(exports, "arSA", { enumerable: true, get: function () { return ar_SA_js_2.arSA; } });
|
|
91
|
+
var en_US_js_1 = require("../locale/en-US.js");
|
|
92
|
+
Object.defineProperty(exports, "enUS", { enumerable: true, get: function () { return en_US_js_1.enUS; } });
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function addMonths(date: Date, amount: number): Date;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addMonths = addMonths;
|
|
4
|
+
const conversion_js_1 = require("../utils/conversion.js");
|
|
5
|
+
const setMonth_js_1 = require("./setMonth.js");
|
|
6
|
+
function addMonths(date, amount) {
|
|
7
|
+
const hijri = (0, conversion_js_1.toHijriDate)(date);
|
|
8
|
+
return (0, setMonth_js_1.setMonth)(date, hijri.monthIndex + amount);
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function addYears(date: Date, amount: number): Date;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addYears = addYears;
|
|
4
|
+
const conversion_js_1 = require("../utils/conversion.js");
|
|
5
|
+
const setYear_js_1 = require("./setYear.js");
|
|
6
|
+
function addYears(date, amount) {
|
|
7
|
+
const hijri = (0, conversion_js_1.toHijriDate)(date);
|
|
8
|
+
return (0, setYear_js_1.setYear)(date, hijri.year + amount);
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function differenceInCalendarMonths(dateLeft: Date, dateRight: Date): number;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.differenceInCalendarMonths = differenceInCalendarMonths;
|
|
4
|
+
const conversion_js_1 = require("../utils/conversion.js");
|
|
5
|
+
function differenceInCalendarMonths(dateLeft, dateRight) {
|
|
6
|
+
const hijriLeft = (0, conversion_js_1.toHijriDate)(dateLeft);
|
|
7
|
+
const hijriRight = (0, conversion_js_1.toHijriDate)(dateRight);
|
|
8
|
+
return ((hijriLeft.year - hijriRight.year) * 12 +
|
|
9
|
+
(hijriLeft.monthIndex - hijriRight.monthIndex));
|
|
10
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.eachMonthOfInterval = eachMonthOfInterval;
|
|
4
|
+
const date_fns_1 = require("date-fns");
|
|
5
|
+
const conversion_js_1 = require("../utils/conversion.js");
|
|
6
|
+
function eachMonthOfInterval(interval) {
|
|
7
|
+
const start = (0, date_fns_1.toDate)(interval.start);
|
|
8
|
+
const end = (0, date_fns_1.toDate)(interval.end);
|
|
9
|
+
if (end.getTime() < start.getTime()) {
|
|
10
|
+
throw new RangeError("Invalid interval");
|
|
11
|
+
}
|
|
12
|
+
const startDate = (0, conversion_js_1.toHijriDate)(start);
|
|
13
|
+
const endDate = (0, conversion_js_1.toHijriDate)(end);
|
|
14
|
+
const months = [];
|
|
15
|
+
let currentYear = startDate.year;
|
|
16
|
+
let currentMonth = startDate.monthIndex;
|
|
17
|
+
const endYear = endDate.year;
|
|
18
|
+
const endMonth = endDate.monthIndex;
|
|
19
|
+
while (currentYear < endYear ||
|
|
20
|
+
(currentYear === endYear && currentMonth <= endMonth)) {
|
|
21
|
+
months.push((0, conversion_js_1.toGregorianDate)({ year: currentYear, monthIndex: currentMonth, day: 1 }));
|
|
22
|
+
currentMonth += 1;
|
|
23
|
+
if (currentMonth > 11) {
|
|
24
|
+
currentMonth = 0;
|
|
25
|
+
currentYear += 1;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return months;
|
|
29
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.eachYearOfInterval = eachYearOfInterval;
|
|
4
|
+
const date_fns_1 = require("date-fns");
|
|
5
|
+
const conversion_js_1 = require("../utils/conversion.js");
|
|
6
|
+
function eachYearOfInterval(interval) {
|
|
7
|
+
const start = (0, date_fns_1.toDate)(interval.start);
|
|
8
|
+
const end = (0, date_fns_1.toDate)(interval.end);
|
|
9
|
+
if (end.getTime() < start.getTime()) {
|
|
10
|
+
return [];
|
|
11
|
+
}
|
|
12
|
+
const startYear = (0, conversion_js_1.toHijriDate)(start).year;
|
|
13
|
+
const endYear = (0, conversion_js_1.toHijriDate)(end).year;
|
|
14
|
+
const years = [];
|
|
15
|
+
for (let year = startYear; year <= endYear; year += 1) {
|
|
16
|
+
years.push((0, conversion_js_1.toGregorianDate)({ year, monthIndex: 0, day: 1 }));
|
|
17
|
+
}
|
|
18
|
+
return years;
|
|
19
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function endOfMonth(date: Date): Date;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.endOfMonth = endOfMonth;
|
|
4
|
+
const conversion_js_1 = require("../utils/conversion.js");
|
|
5
|
+
const daysInMonth_js_1 = require("../utils/daysInMonth.js");
|
|
6
|
+
function endOfMonth(date) {
|
|
7
|
+
const hijri = (0, conversion_js_1.toHijriDate)(date);
|
|
8
|
+
const day = (0, daysInMonth_js_1.getDaysInMonth)(hijri.year, hijri.monthIndex);
|
|
9
|
+
return (0, conversion_js_1.toGregorianDate)({
|
|
10
|
+
year: hijri.year,
|
|
11
|
+
monthIndex: hijri.monthIndex,
|
|
12
|
+
day,
|
|
13
|
+
});
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function endOfYear(date: Date): Date;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.endOfYear = endOfYear;
|
|
4
|
+
const conversion_js_1 = require("../utils/conversion.js");
|
|
5
|
+
const daysInMonth_js_1 = require("../utils/daysInMonth.js");
|
|
6
|
+
function endOfYear(date) {
|
|
7
|
+
const hijri = (0, conversion_js_1.toHijriDate)(date);
|
|
8
|
+
const day = (0, daysInMonth_js_1.getDaysInMonth)(hijri.year, 11);
|
|
9
|
+
return (0, conversion_js_1.toGregorianDate)({
|
|
10
|
+
year: hijri.year,
|
|
11
|
+
monthIndex: 11,
|
|
12
|
+
day,
|
|
13
|
+
});
|
|
14
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export type FallbackLocaleCode = "ar" | "en";
|
|
2
|
+
export type IntlNameWidth = "long" | "short" | "narrow";
|
|
3
|
+
export declare const getFallbackLocaleCode: (localeCode: string) => FallbackLocaleCode;
|
|
4
|
+
export declare const getFallbackMonthName: (date: Date, localeCode: string, width: IntlNameWidth) => string;
|
|
5
|
+
export declare const getFallbackWeekdayName: (date: Date, localeCode: string, width: IntlNameWidth) => string;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getFallbackWeekdayName = exports.getFallbackMonthName = exports.getFallbackLocaleCode = void 0;
|
|
4
|
+
const conversion_js_1 = require("../utils/conversion.js");
|
|
5
|
+
const fallbackMonthNames = {
|
|
6
|
+
en: {
|
|
7
|
+
long: [
|
|
8
|
+
"Muharram",
|
|
9
|
+
"Safar",
|
|
10
|
+
"Rabi I",
|
|
11
|
+
"Rabi II",
|
|
12
|
+
"Jumada I",
|
|
13
|
+
"Jumada II",
|
|
14
|
+
"Rajab",
|
|
15
|
+
"Shaban",
|
|
16
|
+
"Ramadan",
|
|
17
|
+
"Shawwal",
|
|
18
|
+
"Dhu al-Qadah",
|
|
19
|
+
"Dhu al-Hijjah",
|
|
20
|
+
],
|
|
21
|
+
short: [
|
|
22
|
+
"Muh",
|
|
23
|
+
"Saf",
|
|
24
|
+
"Rab-I",
|
|
25
|
+
"Rab-II",
|
|
26
|
+
"Jum-I",
|
|
27
|
+
"Jum-II",
|
|
28
|
+
"Raj",
|
|
29
|
+
"Sha",
|
|
30
|
+
"Ram",
|
|
31
|
+
"Shw",
|
|
32
|
+
"Dhu-Q",
|
|
33
|
+
"Dhu-H",
|
|
34
|
+
],
|
|
35
|
+
narrow: ["M", "S", "R", "R", "J", "J", "R", "S", "R", "S", "D", "D"],
|
|
36
|
+
},
|
|
37
|
+
ar: {
|
|
38
|
+
long: [
|
|
39
|
+
"محرم",
|
|
40
|
+
"صفر",
|
|
41
|
+
"ربيع الأول",
|
|
42
|
+
"ربيع الآخر",
|
|
43
|
+
"جمادى الأولى",
|
|
44
|
+
"جمادى الآخرة",
|
|
45
|
+
"رجب",
|
|
46
|
+
"شعبان",
|
|
47
|
+
"رمضان",
|
|
48
|
+
"شوال",
|
|
49
|
+
"ذو القعدة",
|
|
50
|
+
"ذو الحجة",
|
|
51
|
+
],
|
|
52
|
+
short: [
|
|
53
|
+
"محرم",
|
|
54
|
+
"صفر",
|
|
55
|
+
"ربيع ١",
|
|
56
|
+
"ربيع ٢",
|
|
57
|
+
"جمادى ١",
|
|
58
|
+
"جمادى ٢",
|
|
59
|
+
"رجب",
|
|
60
|
+
"شعبان",
|
|
61
|
+
"رمضان",
|
|
62
|
+
"شوال",
|
|
63
|
+
"ذو القعدة",
|
|
64
|
+
"ذو الحجة",
|
|
65
|
+
],
|
|
66
|
+
narrow: ["م", "ص", "ر", "ر", "ج", "ج", "ر", "ش", "ر", "ش", "ذ", "ذ"],
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
const fallbackWeekdayNames = {
|
|
70
|
+
en: {
|
|
71
|
+
long: [
|
|
72
|
+
"Sunday",
|
|
73
|
+
"Monday",
|
|
74
|
+
"Tuesday",
|
|
75
|
+
"Wednesday",
|
|
76
|
+
"Thursday",
|
|
77
|
+
"Friday",
|
|
78
|
+
"Saturday",
|
|
79
|
+
],
|
|
80
|
+
short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
|
|
81
|
+
narrow: ["S", "M", "T", "W", "T", "F", "S"],
|
|
82
|
+
},
|
|
83
|
+
ar: {
|
|
84
|
+
long: [
|
|
85
|
+
"الأحد",
|
|
86
|
+
"الاثنين",
|
|
87
|
+
"الثلاثاء",
|
|
88
|
+
"الأربعاء",
|
|
89
|
+
"الخميس",
|
|
90
|
+
"الجمعة",
|
|
91
|
+
"السبت",
|
|
92
|
+
],
|
|
93
|
+
short: ["أحد", "اثن", "ثلا", "أرب", "خمي", "جمع", "سبت"],
|
|
94
|
+
narrow: ["ح", "ن", "ث", "ر", "خ", "ج", "س"],
|
|
95
|
+
},
|
|
96
|
+
};
|
|
97
|
+
const getFallbackLocaleCode = (localeCode) => {
|
|
98
|
+
return localeCode.toLowerCase().startsWith("ar") ? "ar" : "en";
|
|
99
|
+
};
|
|
100
|
+
exports.getFallbackLocaleCode = getFallbackLocaleCode;
|
|
101
|
+
const getFallbackMonthName = (date, localeCode, width) => {
|
|
102
|
+
const hijri = (0, conversion_js_1.toHijriDate)(date);
|
|
103
|
+
const locale = (0, exports.getFallbackLocaleCode)(localeCode);
|
|
104
|
+
return fallbackMonthNames[locale][width][hijri.monthIndex];
|
|
105
|
+
};
|
|
106
|
+
exports.getFallbackMonthName = getFallbackMonthName;
|
|
107
|
+
const getFallbackWeekdayName = (date, localeCode, width) => {
|
|
108
|
+
const locale = (0, exports.getFallbackLocaleCode)(localeCode);
|
|
109
|
+
return fallbackWeekdayNames[locale][width][date.getDay()];
|
|
110
|
+
};
|
|
111
|
+
exports.getFallbackWeekdayName = getFallbackWeekdayName;
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.format = format;
|
|
4
|
+
const conversion_js_1 = require("../utils/conversion.js");
|
|
5
|
+
const range_js_1 = require("../utils/range.js");
|
|
6
|
+
const fallbackLocaleData_js_1 = require("./fallbackLocaleData.js");
|
|
7
|
+
const DEFAULT_LOCALE_CODE = "ar-SA";
|
|
8
|
+
const BASE_NUMBERING_SYSTEM = "latn";
|
|
9
|
+
const UMM_AL_QURA_CALENDAR = "islamic-umalqura";
|
|
10
|
+
const getLocaleCode = (options) => {
|
|
11
|
+
return options?.locale?.code ?? DEFAULT_LOCALE_CODE;
|
|
12
|
+
};
|
|
13
|
+
const formatWithUmmAlQura = (date, localeCode, options) => {
|
|
14
|
+
try {
|
|
15
|
+
return new Intl.DateTimeFormat(localeCode, {
|
|
16
|
+
...options,
|
|
17
|
+
calendar: UMM_AL_QURA_CALENDAR,
|
|
18
|
+
numberingSystem: BASE_NUMBERING_SYSTEM,
|
|
19
|
+
}).format(date);
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const formatNumber = (value) => {
|
|
26
|
+
return value.toString();
|
|
27
|
+
};
|
|
28
|
+
const formatPaddedNumber = (value) => {
|
|
29
|
+
return formatNumber(value).padStart(2, "0");
|
|
30
|
+
};
|
|
31
|
+
const formatMonthName = (date, localeCode, width) => {
|
|
32
|
+
const formatted = formatWithUmmAlQura(date, localeCode, {
|
|
33
|
+
month: width,
|
|
34
|
+
});
|
|
35
|
+
return formatted ?? (0, fallbackLocaleData_js_1.getFallbackMonthName)(date, localeCode, width);
|
|
36
|
+
};
|
|
37
|
+
const formatWeekdayName = (date, localeCode, width) => {
|
|
38
|
+
const formatted = formatWithUmmAlQura(date, localeCode, {
|
|
39
|
+
weekday: width,
|
|
40
|
+
});
|
|
41
|
+
return formatted ?? (0, fallbackLocaleData_js_1.getFallbackWeekdayName)(date, localeCode, width);
|
|
42
|
+
};
|
|
43
|
+
const formatDateStyle = (date, localeCode, style) => {
|
|
44
|
+
const formatted = formatWithUmmAlQura(date, localeCode, {
|
|
45
|
+
dateStyle: style,
|
|
46
|
+
});
|
|
47
|
+
if (formatted) {
|
|
48
|
+
return formatted;
|
|
49
|
+
}
|
|
50
|
+
const hijri = (0, conversion_js_1.toHijriDate)(date);
|
|
51
|
+
const monthName = (0, fallbackLocaleData_js_1.getFallbackMonthName)(date, localeCode, "long");
|
|
52
|
+
switch (style) {
|
|
53
|
+
case "full":
|
|
54
|
+
return `${(0, fallbackLocaleData_js_1.getFallbackWeekdayName)(date, localeCode, "long")}, ${monthName} ${hijri.day}, ${hijri.year}`;
|
|
55
|
+
case "long":
|
|
56
|
+
return `${monthName} ${hijri.day}, ${hijri.year}`;
|
|
57
|
+
case "medium":
|
|
58
|
+
return `${formatPaddedNumber(hijri.day)} ${monthName} ${hijri.year}`;
|
|
59
|
+
case "short":
|
|
60
|
+
return `${hijri.monthIndex + 1}/${hijri.day}/${hijri.year}`;
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
const buildTimeFormat = (date, localeCode, formatStr) => {
|
|
64
|
+
const hour12 = formatStr.includes("a");
|
|
65
|
+
const formatted = formatWithUmmAlQura(date, localeCode, {
|
|
66
|
+
hour: "numeric",
|
|
67
|
+
minute: "numeric",
|
|
68
|
+
hour12,
|
|
69
|
+
});
|
|
70
|
+
if (formatted) {
|
|
71
|
+
return formatted;
|
|
72
|
+
}
|
|
73
|
+
try {
|
|
74
|
+
return new Intl.DateTimeFormat(localeCode, {
|
|
75
|
+
hour: "numeric",
|
|
76
|
+
minute: "numeric",
|
|
77
|
+
hour12,
|
|
78
|
+
numberingSystem: BASE_NUMBERING_SYSTEM,
|
|
79
|
+
}).format(date);
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
const minutes = formatPaddedNumber(date.getMinutes());
|
|
83
|
+
if (hour12) {
|
|
84
|
+
const hour = date.getHours() % 12 || 12;
|
|
85
|
+
const period = date.getHours() >= 12 ? "PM" : "AM";
|
|
86
|
+
return `${hour}:${minutes} ${period}`;
|
|
87
|
+
}
|
|
88
|
+
return `${formatNumber(date.getHours())}:${minutes}`;
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
/** Hijri calendar formatting override. */
|
|
92
|
+
function format(date, formatStr, options) {
|
|
93
|
+
const extendedOptions = options;
|
|
94
|
+
const localeCode = getLocaleCode(extendedOptions);
|
|
95
|
+
const hijri = (0, conversion_js_1.toHijriDate)(date);
|
|
96
|
+
const gregorian = (0, range_js_1.getGregorianDateParts)(date);
|
|
97
|
+
const isOutOfRange = (0, range_js_1.clampGregorianDate)(date) !== date;
|
|
98
|
+
const numericDate = isOutOfRange
|
|
99
|
+
? {
|
|
100
|
+
year: gregorian.year,
|
|
101
|
+
monthIndex: gregorian.month - 1,
|
|
102
|
+
day: gregorian.day,
|
|
103
|
+
}
|
|
104
|
+
: hijri;
|
|
105
|
+
switch (formatStr) {
|
|
106
|
+
case "LLLL y":
|
|
107
|
+
case "LLLL yyyy":
|
|
108
|
+
return `${formatMonthName(date, localeCode, "long")} ${formatNumber(numericDate.year)}`;
|
|
109
|
+
case "LLLL":
|
|
110
|
+
return formatMonthName(date, localeCode, "long");
|
|
111
|
+
case "LLL":
|
|
112
|
+
return formatMonthName(date, localeCode, "short");
|
|
113
|
+
case "PPP":
|
|
114
|
+
return formatDateStyle(date, localeCode, "long");
|
|
115
|
+
case "PPPP":
|
|
116
|
+
return formatDateStyle(date, localeCode, "full");
|
|
117
|
+
case "PP":
|
|
118
|
+
return formatDateStyle(date, localeCode, "medium");
|
|
119
|
+
case "P":
|
|
120
|
+
return formatDateStyle(date, localeCode, "short");
|
|
121
|
+
case "cccc":
|
|
122
|
+
return formatWeekdayName(date, localeCode, "long");
|
|
123
|
+
case "ccc":
|
|
124
|
+
return formatWeekdayName(date, localeCode, "short");
|
|
125
|
+
case "ccccc":
|
|
126
|
+
case "cccccc":
|
|
127
|
+
return formatWeekdayName(date, localeCode, "narrow");
|
|
128
|
+
case "yyyy":
|
|
129
|
+
case "y":
|
|
130
|
+
return formatNumber(numericDate.year);
|
|
131
|
+
case "yyyy-MM":
|
|
132
|
+
return `${formatNumber(numericDate.year)}-${formatPaddedNumber(numericDate.monthIndex + 1)}`;
|
|
133
|
+
case "yyyy-MM-dd":
|
|
134
|
+
return `${formatNumber(numericDate.year)}-${formatPaddedNumber(numericDate.monthIndex + 1)}-${formatPaddedNumber(numericDate.day)}`;
|
|
135
|
+
case "MM":
|
|
136
|
+
return formatPaddedNumber(numericDate.monthIndex + 1);
|
|
137
|
+
case "M":
|
|
138
|
+
return formatNumber(numericDate.monthIndex + 1);
|
|
139
|
+
case "dd":
|
|
140
|
+
return formatPaddedNumber(numericDate.day);
|
|
141
|
+
case "d":
|
|
142
|
+
return formatNumber(numericDate.day);
|
|
143
|
+
default:
|
|
144
|
+
if (/[Hh]/.test(formatStr) && /m/.test(formatStr)) {
|
|
145
|
+
return buildTimeFormat(date, localeCode, formatStr);
|
|
146
|
+
}
|
|
147
|
+
return formatDateStyle(date, localeCode, "medium");
|
|
148
|
+
}
|
|
149
|
+
}
|