Skip to content

Latest commit

 

History

History
557 lines (409 loc) · 16.4 KB

File metadata and controls

557 lines (409 loc) · 16.4 KB

jewish-dates-core

This package is core functionality of react-jewish-datepicker

If you want to create a jewish date picker in vue.js or angular, this is the core dependency.

Installation

yarn add jewish-dates-core

Or with npm

npm i jewish-dates-core --save

Functions

isValidDate

Returns whether a date is a Date object

getHebWeekdays

Returns an array of week days in hebrew

getEngWeekdays

Returns an array of week days in english

getWeekdays

Returns an array of week days

getHebJewishMonths

Returns an array of jewish months in hebrew

getEngJewishMonths

Returns an array of jewish months in english

getJewishMonths

Returns an array of jewish months according to year and language

getJewishYears

Takes a number of a jewish year and returns array of 200 years around it

getPrevMonth

Takes a BasicJewishMonthInfo object and returns the equivalent of prev month

getNextMonth

Takes a BasicJewishMonthInfo object and returns the equivalent of next month

getGregDate

Converts BasicJewishDate object to gregorian date

getJewishMonthInfo

Takes a gregorian date and returns BasicJewishMonthInfo object

formatJewishDate

Takes a BasicJewishDate object and returns a string of the date in english

formatJewishDateHebrew

Takes a BasicJewishDate object and returns a string of the date in hebrew

getJewishDate

Takes a gregorian date and returns a BasicJewishDate object

IsJewishDatesEqual

Compares jewish dates returning true if the dates match and false if not

getJewishDay

Takes a dayjs date and returns a JewishDay object

getJewishMonth

Takes a gregorian date and returns a JewishMonth object

getHolidays

Returns an array of jewish holiday dates corresponding with the isIsrael param

dontSelectHolidays

Returns a function which can be passed to the `canSelect` prop, in order to prevent holidays selection

dontSelectShabat

A function to be passed to the "canSelect" prop, in order to prevent shabat selection

dontSelectShabatAndHolidays

Returns a function to be passed to the "canSelect" prop. combines "dontSelectHolidays" and "dontSelectShabat" in order to prevent both - shabat and holidays selection

dontSelectOutOfRange

Takes min date and max date and returns a function to be passed to the "canSelect" prop, in order to prevent selection out of the supplied range

addDates

Adds days to a given date

subtractDates

Subtracts days to a given date

isValidDate(date: Date | BasicJewishDate) ⇒ boolean

Returns whether a date is a Date object.

Param Type
date Date | BasicJewishDate

example:

const basicJewishDate: BasicJewishDate = {
  day: 13,
  monthName: "Elul",
  year: 5788,
};

isValidDate(basicJewishDate); // ==> false
isValidDate(new Date()); // ==> true

getHebWeekdays() ⇒ string[]

Returns an array of week days in hebrew.

example:

getHebWeekdays(); // ==> ["א", "ב", "ג", "ד", "ה", "ו", "ש"]

getEngWeekdays() ⇒ string[]

Returns an array of week days in english.

example:

getEngWeekdays(); // ==> ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]

getWeekdays(isHebrew: boolean) ⇒ string[]

Returns an array of week days corresponding with the isHebrew param.

Param Type
isHebrew boolean

example:

getWeekdays(true); // ==> ["א", "ב", "ג", "ד", "ה", "ו", "ש"]
getWeekdays(false); // ==> ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]

getHebJewishMonthById(monthId: string) ⇒ string

Takes a jewish month name in english and returns the name in hebrew.

Param Type
monthId string

example:

getHebJewishMonthById("Tishri"); // ==> 'תשרי'

getHebJewishMonths() ⇒ IdText[]

Returns an array of jewish months in hebrew.

example:

getHebJewishMonths(); // ==> [{id: "Tishri", text: "תשרי"}, {id: "Cheshvan", text: "חשון"} ...]

getEngJewishMonths() ⇒ IdText[]

Returns an array of jewish months in english.

example:

getEngJewishMonths(); // ==> [{id: "Tishri", text: "Tishri"}, {id: "Cheshvan", text: "Cheshvan"} ...]

getJewishMonths(year: number, [isHebrew?: boolean]) ⇒ IdText[]

Returns an array of jewish months according to year (regular/leap) and language.

Param Type Default
year number n/a
isHebrew boolean false

example:

getJewishMonths(5781, true); // ==> [... {id: "AdarI", text: "אדר"}, {id: "Nisan", text: "ניסן"} ...] regular year months in henrew
getJewishMonths(5782); // ==> [... {id: "AdarI", text: "AdarI"}, {id: "AdarII", text: "AdarII"} ...] leap year months in english

getJewishYears(year: number) ⇒ number[]

Takes a number of a jewish year and returns array of 200 years around it.

Param Type
year number

example:

getJewishYears(5781); // ==> [5681, 5682, ... 5781, ... 5880, 5881]
getJewishYears(5781).length; // ==> 201

getPrevMonth(basicJewishMonthInfo: BasicJewishMonthInfo) ⇒ BasicJewishMonthInfo

Takes a BasicJewishMonthInfo object and returns the equivalent of prev month.

Param Type
basicJewishMonthInfo BasicJewishMonthInfo

example:

const tishriInfo: BasicJewishMonthInfo = {
  isHebrew: false,
  month: "Tishri",
  year: 5782,
};

getPrevMonth(tishriInfo); // ==> {isHebrew: false, month: 'Elul', year: 5781}

getNextMonth(basicJewishMonthInfo: BasicJewishMonthInfo) ⇒ BasicJewishMonthInfo

Takes a BasicJewishMonthInfo object and returns the equivalent of next month.

Param Type
basicJewishMonthInfo BasicJewishMonthInfo

example:

const elulInfo: BasicJewishMonthInfo = {
  isHebrew: true,
  month: "Elul",
  year: 5781,
};

getNextMonth(elulInfo); // ==> {isHebrew: true, month: 'Tishri', year: 5782}

getGregDate(props: BasicJewishDate) ⇒ Date

Converts BasicJewishDate object to gregorian date.

Param Type
props BasicJewishDate

example:

const basicJewishDate: BasicJewishDate = {
  day: 13,
  monthName: "Elul",
  year: 5781,
};

getGregDate(basicJewishDate); // ==> Sat Aug 21 2021 00:00:00 GMT+0300 (שעון ישראל (קיץ))

getJewishMonthInfo(date: Date) ⇒ JewishMonthInfo

Takes a gregorian date and returns BasicJewishMonthInfo object.

Param Type
date Date

example:

getJewishMonthInfo(new Date(2022, 0, 27)); /* ==> { jewishDate: {year: 5782, month: 5, day: 25, monthName: 'Shevat'},
                                                    jewishMonth: 5,
                                                    startOfJewishMonth: Dayjs(new Date(2022, 0, 3)),
                                                    sundayStartOfTheMonth: Dayjs(new Date(2022, 0, 2))} */

formatJewishDate(jewishDate: JewishDate) ⇒ string

Takes a BasicJewishDate object and returns a string of the date in english.

Param Type
jewishDate JewishDate

example:

const jewishDate: JewishDate = {
  day: 13,
  monthName: "Elul",
  year: 5781,
  month: 13,
};

formatJewishDate(jewishDate); // ==> "13 Elul 5781"

formatJewishDateHebrew(jewishDate: JewishDate) ⇒ string

Takes a BasicJewishDate object and returns a string of the date in hebrew.

Param Type
jewishDate JewishDate

example:

const jewishDate: JewishDate = {
  day: 13,
  monthName: "Elul",
  year: 5781,
  month: 13,
};

formatJewishDateHebrew(jewishDate); // ==> "י״ג אלול התשפ״א"

getJewishDate(date: Date) ⇒ JewishDate

Takes a gregorian date and returns a BasicJewishDate object.

Param Type
date Date

example:

getJewishDate(new Date(2021, 7, 21)); // ==> {day: 13, monthName: "Elul", year: 5781, month: 13}

IsJewishDatesEqual(jewishDate1: JewishDate, jewishDate2: JewishDate) ⇒ boolean

Compares jewish dates returning true if the dates match and false if not.

Param Type
jewishDate1 JewishDate
jewishDate2 JewishDate

example:

const jewishDate1: JewishDate = {
  day: 13,
  monthName: "Elul",
  year: 5781,
  month: 13,
};
const jewishDate2: JewishDate = {
  day: 14,
  monthName: "Shevat",
  year: 5781,
  month: 5,
};

IsJewishDatesEqual(jewishDate1, jewishDate2); // ==> false
IsJewishDatesEqual(jewishDate2, jewishDate2); // ==> true

getJewishDay(dayjsDate: Dayjs) ⇒ JewishDay

Takes a gregorian date and returns a JewishMonth object.

Param Type
dayjsDate Dayjs

example:

const date = Dayjs(new Date(2022, 0, 27));

getJewishDay(date); /* ==> { date: 2022-01-26T22:00:00.000Z,
                             day: 25,
                             dayjsDate: d {'$L': 'en', '$d': 2022-01-26T22:00:00.000Z, '$y': 2022, '$M': 0, '$D': 27, '$W': 4, '$H': 0, '$m': 0, '$s': 0, '$ms': 0},
                             isCurrentMonth: false,
                             jewishDate: { year: 5782, month: 5, day: 25, monthName: 'Shevat' },
                             jewishDateStr: '25 Shevat 5782',
                             jewishDateStrHebrew: 'כ״ה שבט התשפ״ב'} */

getJewishMonth(date: Date) ⇒ JewishMonth

Takes a gregorian date and returns a JewishMonth object.

Param Type
date Date

example:

getJewishMonth(new Date(2022, 0, 27)); /* ==> selectedDay: { day: 25, jewishDateStr: '25 Shevat 5782', ...},
                                              jewishMonth: 5,
                                              jewishYear: 5782,
                                              jewishMonthString: 'Shevat',
                                              days: [{day: 29, jewishDateStr: '29 Tevet 5782', ...}, { day: 1, jewishDateStr: '1 Shevat 5782', ...}, ...] */

getHolidays(isIsrael: boolean) ⇒ string[]

Returns an array of jewish holiday dates corresponding with the isIsrael param.

Param Type
isIsrael boolean

example:

getHolidays(true); // ==> ['1 Tishri', '2 Tishri', '10 Tishri', '15 Tishri', '22 Tishri', '15 Nisan', '21 Nisan', '6 Sivan']
getHolidays(false); // ==> ['1 Tishri', '2 Tishri', '10 Tishri', '15 Tishri', '22 Tishri', '15 Nisan', '21 Nisan', '6 Sivan', '16 Tishri', '23 Tishri', '16 Nisan', '22 Nisan', '7 Sivan']

dontSelectHolidays([isIsrael: boolean]) ⇒ (day: BasicJewishDay) => boolean

Returns a function which can be passed to the canSelect prop, in order to prevent holidays (corresponding with isIsrael param) selection. The returned function takes a BasicJewishDay object, and returns false if it's an holiday and true otherwise.

Param Type Default
isIsrael boolean false

example: full example here

dontSelectShabat(day: BasicJewishDay) ⇒ boolean

A function to be passed to the canSelect prop, in order to prevent shabat selection. Takes a BasicJewishDay object, and returns false if it's an shabat and true otherwise.

Param Type
day BasicJewishDay

example: full example here

dontSelectShabatAndHolidays([isIsrael: boolean]) ⇒ (day: BasicJewishDay) => boolean

Returns a function to be passed to the "canSelect" prop. combines dontSelectHolidays and dontSelectShabat in order to prevent both - shabat and holidays selection. The returned function takes a BasicJewishDay object, and returns false if it's an shabat or holiday and true otherwise.

Param Type Default
isIsrael boolean false

example: full example here

dontSelectOutOfRange(minDate: Date | null, maxDate: Date | null) ⇒ (day: BasicJewishDay) => boolean

Takes min date and max date and returns a function to be passed to the "canSelect" prop, in order to prevent selection out of the supplied range. The returned function takes a BasicJewishDay object, and returns true if it's within range (min date and max date included) and false otherwise.

You can pass a date only for one of the params and null to the other. In this case, the selectable range will be up to max date or from min date.

Param Type
minDate Date | null
maxDate Date | null

example: full example here

addDates(date: BasicJewishDate | Date, numDays: number) ⇒ Date

Takes a BasicJewishDate object or a Date, adds a date interval (numDays) to the date and then returns the new date.

Param Type
date BasicJewishDate | Date
numDays number

example:

const date = new Date(2022, 3, 17);

addDates(date, 3)) // => Wed Apr 20 2022 00:00:00 GMT+0300 (שעון ישראל (קיץ))

subtractDates(date: BasicJewishDate | Date, numDays: number) ⇒ Date

Takes a BasicJewishDate object or a Date, subtracts a date interval (numDays) from the date and then returns the new date.

Param Type
date BasicJewishDate | Date
numDays number

example:

const basicJewishDate: BasicJewishDate = {
  day: 13,
  monthName: "Elul",
  year: 5781,
};

subtractDates(basicJewishDate, 4)) // => Tue Aug 17 2021 00:00:00 GMT+0300 (שעון ישראל (קיץ))

License: MIT.