UNPKG

nums2persian

Version:
483 lines (482 loc) 15.7 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.onChangeInputDateBoxShamsiHandleValue = exports.normalizeDateString = exports.ReturnNameMonth = exports.ReturnCurrentDateValue = exports.ReturnNext10Year = exports.ReturnPrevious10Year = exports.ReturnNext4Year = exports.ReturnPrevious4Year = exports.ReturnNextYear = exports.ReturnPreviousYear = exports.ReturnNextSeason = exports.ReturnPreviousSeason = exports.ReturnNextMonth = exports.ReturnPreviousMonth = exports.ReturnNextWeek = exports.ReturnPreviousWeek = exports.ReturnNextDay = exports.ReturnPreviousDay = exports.isValid = exports.ReturnToday = exports.ReturnFirstPeriod = exports.ReturnLastPeriod = exports.ReturnFirstDayOfMonth = exports.ReturnPersianDate = exports.ReturnMiladyDate = exports.dayOfWeekShamsi = void 0; const jalali_moment_1 = __importDefault(require("jalali-moment")); const jalaliFormat = 'jYYYY/jMM/jDD'; const dayOfWeekShamsi = (dayOfWeekMiladi) => { return dayOfWeekMiladi === 6 ? 0 : dayOfWeekMiladi === 0 ? 1 : dayOfWeekMiladi === 1 ? 2 : dayOfWeekMiladi === 2 ? 3 : dayOfWeekMiladi === 3 ? 4 : dayOfWeekMiladi === 4 ? 5 : dayOfWeekMiladi === 5 ? 6 : 7; }; exports.dayOfWeekShamsi = dayOfWeekShamsi; const ReturnMiladyDate = (date, format = 'jYYYY/jMM/jDD') => { const m = jalali_moment_1.default(date, format); if (m.isValid()) { return m.format('YYYY/DD/MM'); } else { return ''; } }; exports.ReturnMiladyDate = ReturnMiladyDate; const ReturnPersianDate = (date, format = 'YYYY/MM/DD') => { const m = jalali_moment_1.default(date, format); if (m.isValid()) { return m.format('jYYYY/jMM/jDD'); } else { return ''; } }; exports.ReturnPersianDate = ReturnPersianDate; /** * give year and month after that * @return `Fitst day on month` jalali date format `YYYY/MM/DD` */ const ReturnFirstDayOfMonth = (year, month) => { return jalali_moment_1.default(`${year}/${month}/1`, 'jYYYY/jM/jD').format(jalaliFormat); }; exports.ReturnFirstDayOfMonth = ReturnFirstDayOfMonth; /** * give year and month after that * @return `Fitst day on month` jalali date format `YYYY/MM/DD` */ const ReturnLastPeriod = (year) => { return jalali_moment_1.default(`${year}/12/30`, 'jYYYY/jM/jD').format(jalaliFormat); }; exports.ReturnLastPeriod = ReturnLastPeriod; /** * give year and month after that * @return `Fitst day on month` jalali date format `YYYY/MM/DD` */ const ReturnFirstPeriod = (year) => { return jalali_moment_1.default(`${year}/1/1`, 'jYYYY/jM/jD').format(jalaliFormat); }; exports.ReturnFirstPeriod = ReturnFirstPeriod; /** * @return `today` jalali date format `YYYY/MM/DD` */ const ReturnToday = () => { const m = jalali_moment_1.default(); return m.format(jalaliFormat); }; exports.ReturnToday = ReturnToday; /** * give date as parametr and validate it * @param date "jalali date format 'YYYY/MM/DD'" * @return if date data is correct return true else return false */ const isValid = (date) => { const m = jalali_moment_1.default(date, jalaliFormat); return m.isValid(); }; exports.isValid = isValid; /** * @return `Previous Day By Current Day` jalali date format `YYYY/MM/DD` */ const ReturnPreviousDay = (value) => { const m = jalali_moment_1.default(value, jalaliFormat); if (m.isValid()) { return m.subtract(1, 'day').format(jalaliFormat); } else { return jalali_moment_1.default().subtract(1, 'day').format(jalaliFormat); } }; exports.ReturnPreviousDay = ReturnPreviousDay; /** * @return `Next Day By Current Day` jalali date format `YYYY/MM/DD` */ const ReturnNextDay = (value) => { const m = jalali_moment_1.default(value, jalaliFormat); if (m.isValid()) { return m.add(1, 'day').format(jalaliFormat); } else { return jalali_moment_1.default().add(1, 'day').format(jalaliFormat); } }; exports.ReturnNextDay = ReturnNextDay; /** * @return `Previous Week By Current Day` jalali date format `YYYY/MM/DD` */ const ReturnPreviousWeek = (value) => { const m = jalali_moment_1.default(value, jalaliFormat); if (m.isValid()) { return m.subtract(7, 'day').format(jalaliFormat); } else { return jalali_moment_1.default().subtract(7, 'day').format(jalaliFormat); } }; exports.ReturnPreviousWeek = ReturnPreviousWeek; /** * @return `Next Week By Current Day` jalali date format `YYYY/MM/DD` */ const ReturnNextWeek = (value) => { const m = jalali_moment_1.default(value, jalaliFormat); if (m.isValid()) { return m.add(7, 'day').format(jalaliFormat); } else { return jalali_moment_1.default().add(7, 'day').format(jalaliFormat); } }; exports.ReturnNextWeek = ReturnNextWeek; /** * @return `Previous Month By Current Day` jalali date format `YYYY/MM/DD` */ const ReturnPreviousMonth = (value) => { const m = jalali_moment_1.default(value, jalaliFormat); if (m.isValid()) { return m.subtract(1, 'month').format(jalaliFormat); } else { return jalali_moment_1.default().subtract(1, 'month').format(jalaliFormat); } }; exports.ReturnPreviousMonth = ReturnPreviousMonth; /** * @return `Next Month By Current Day` jalali date format `YYYY/MM/DD` */ const ReturnNextMonth = (value) => { const m = jalali_moment_1.default(value, jalaliFormat); if (m.isValid()) { return m.add(1, 'month').format(jalaliFormat); } else { return jalali_moment_1.default().add(1, 'month').format(jalaliFormat); } }; exports.ReturnNextMonth = ReturnNextMonth; /** * @return `Previous Season By Current Day` jalali date format `YYYY/MM/DD` */ const ReturnPreviousSeason = (value) => { const m = jalali_moment_1.default(value, jalaliFormat); if (m.isValid()) { return m.subtract(3, 'month').format(jalaliFormat); } else { return jalali_moment_1.default().subtract(3, 'month').format(jalaliFormat); } }; exports.ReturnPreviousSeason = ReturnPreviousSeason; /** * @return `Next Season By Current Day` jalali date format `YYYY/MM/DD` */ const ReturnNextSeason = (value) => { const m = jalali_moment_1.default(value, jalaliFormat); if (m.isValid()) { return m.add(3, 'month').format(jalaliFormat); } else { return jalali_moment_1.default().add(3, 'month').format(jalaliFormat); } }; exports.ReturnNextSeason = ReturnNextSeason; /** * @return `Previous Year By Current Day` jalali date format `YYYY/MM/DD` */ const ReturnPreviousYear = (value) => { const m = jalali_moment_1.default(value, jalaliFormat); if (m.isValid()) { return m.subtract(1, 'year').format(jalaliFormat); } else { return jalali_moment_1.default().subtract(1, 'year').format(jalaliFormat); } }; exports.ReturnPreviousYear = ReturnPreviousYear; /** * @return `Next Year By Current Day` jalali date format `YYYY/MM/DD` */ const ReturnNextYear = (value) => { const m = jalali_moment_1.default(value, jalaliFormat); if (m.isValid()) { return m.add(1, 'year').format(jalaliFormat); } else { return jalali_moment_1.default().add(1, 'year').format(jalaliFormat); } }; exports.ReturnNextYear = ReturnNextYear; /** * @return `Previous Year By Current Day` jalali date format `YYYY/MM/DD` */ const ReturnPrevious4Year = (value) => { const m = jalali_moment_1.default(value, jalaliFormat); if (m.isValid()) { return m.subtract(4, 'year').format(jalaliFormat); } else { return jalali_moment_1.default().subtract(4, 'year').format(jalaliFormat); } }; exports.ReturnPrevious4Year = ReturnPrevious4Year; /** * @return `Next Year By Current Day` jalali date format `YYYY/MM/DD` */ const ReturnNext4Year = (value) => { const m = jalali_moment_1.default(value, jalaliFormat); if (m.isValid()) { return m.add(4, 'year').format(jalaliFormat); } else { return jalali_moment_1.default().add(4, 'year').format(jalaliFormat); } }; exports.ReturnNext4Year = ReturnNext4Year; /** * @return `Previous 10 Year By Current Day` jalali date format `YYYY/MM/DD` */ const ReturnPrevious10Year = (value) => { const m = jalali_moment_1.default(value, jalaliFormat); if (m.isValid()) { return m.subtract(10, 'year').format(jalaliFormat); } else { return jalali_moment_1.default().subtract(10, 'year').format(jalaliFormat); } }; exports.ReturnPrevious10Year = ReturnPrevious10Year; /** * @return `Next 10 Year By Current Day` jalali date format `YYYY/MM/DD` */ const ReturnNext10Year = (value) => { const m = jalali_moment_1.default(value, jalaliFormat); if (m.isValid()) { return m.add(10, 'year').format(jalaliFormat); } else { return jalali_moment_1.default().add(10, 'year').format(jalaliFormat); } }; exports.ReturnNext10Year = ReturnNext10Year; /** * @return `[year, month, day]` after split date * if value is the correcte date, this method return data of value * else this method return current date data */ const ReturnCurrentDateValue = (value) => { const m = jalali_moment_1.default(value, jalaliFormat); if (m.isValid()) { return value.split('/').map((i) => +i); } else { return jalali_moment_1.default() .format(jalaliFormat) .split('/') .map((i) => +i); } }; exports.ReturnCurrentDateValue = ReturnCurrentDateValue; const ReturnNameMonth = (month) => { switch (month) { case 1: return 'فروردین'; case '1': return 'فروردین'; case '01': return 'فروردین'; case 2: return 'اردیبهشت'; case '2': return 'اردیبهشت'; case '02': return 'اردیبهشت'; case 3: return 'خرداد'; case '3': return 'خرداد'; case '03': return 'خرداد'; case 4: return 'تیر'; case '4': return 'تیر'; case '04': return 'تیر'; case 5: return 'مرداد'; case '5': return 'مرداد'; case '05': return 'مرداد'; case 6: return 'شهریور'; case '6': return 'شهریور'; case '06': return 'شهریور'; case 7: return 'مهر'; case '7': return 'مهر'; case '07': return 'مهر'; case 8: return 'آبان'; case '8': return 'آبان'; case '08': return 'آبان'; case 9: return 'آذر'; case '9': return 'آذر'; case '09': return 'آذر'; case 10: return 'دی'; case '10': return 'دی'; case 11: return 'بهمن'; case '11': return 'بهمن'; case 12: return 'اسفند'; case '12': return 'اسفند'; default: return 'نامشخص'; } }; exports.ReturnNameMonth = ReturnNameMonth; /** * * @param e value that it can contain ۱ or 1 * @returns {string} that evry ۱ convert to 1 ۲, ۲ convert to 2 and so on and other chars are filter */ const normalizeDateString = (e) => { const match = e.match(/^[1-4]\d{3}\/((0[1-6]\/((3[0-1])|([1-2][0-9])|(0[1-9])))|((1[0-2]|(0[7-9]))\/(30|31|([1-2][0-9])|(0[1-9]))))$/g) || []; const result = match.map((e) => castChars(e).toString()); return result.join(''); }; exports.normalizeDateString = normalizeDateString; const onChangeInputDateBoxShamsiHandleValue = (e, value) => { e = e.split('').map(i => castChars(i)).join(''); if (e.length === 1) { const match = e.match(/[1-4]/g) || value.split(''); return match.join(''); } else if (e.length === 2) { const match = e.match(/[1-4][0-4]/g) || value.split(''); return match.join(''); } else if (e.length === 3) { const match = e.match(/[1-4][0-4]\d/g) || value.split(''); return match.join(''); } else if (e.length === 4) { const match = e.match(/[1-4][0-4]\d\d/g) || value.split(''); return match.join(''); } else if (e.length === 5) { const match = e.match(/[1-4][0-4]\d\d(\/|-)/g) || value.split(''); return match.join(''); } else if (e.length === 6) { const match = e.match(/[1-4][0-4]\d\d\/[0-1]/g) || value.split(''); return match.join(''); } else if (e.length === 7) { const sixth = +(e.substring(5, 6)); if (sixth === 1) { const match = e.match(/[1-4][0-4]\d\d\/[1][0-2]/g) || value.split(''); return match.join(''); } else { const match = e.match(/[1-4][0-4]\d\d\/[0][1-9]/g) || value.split(''); return match.join(''); } } else if (e.length === 8) { const match = e.match(/[1-4][0-4]\d\d\/[0-1][0-9]\//g) || value.split(''); return match.join(''); } else if (e.length === 9) { const match = e.match(/[1-4][0-4]\d\d\/[0-1][0-9]\/[0-3]/g) || value.split(''); return match.join(''); } else if (e.length === 10) { const eighth = +(e.substring(8, 9)); if (eighth === 0) { const match = e.match(/[1-4][0-4]\d\d\/[0-1][0-9]\/[0][1-9]/g) || value.split(''); return match.join(''); } else if (eighth === 1) { const match = e.match(/[1-4][0-4]\d\d\/[0-1][0-9]\/[1][0-9]/g) || value.split(''); return match.join(''); } else if (eighth === 2) { const match = e.match(/[1-4][0-4]\d\d\/[0-1][0-9]\/[2][0-9]/g) || value.split(''); return match.join(''); } else if (eighth === 3) { const sixth = +(e.substring(6, 7)); if ([1, 2, 3, 4, 5, 6].includes(sixth)) { const match = e.match(/[1-4][0-4]\d\d\/[0-1][0-9]\/[3][0-1]/g) || value.split(''); return match.join(''); } else { const match = e.match(/[1-4][0-4]\d\d\/[0-1][0-9]\/[3][0]/g) || value.split(''); return match.join(''); } } } return e; }; exports.onChangeInputDateBoxShamsiHandleValue = onChangeInputDateBoxShamsiHandleValue; const castChars = (e) => { switch (e) { case '1': case '۱': return '1'; case '2': case '۲': return '2'; case '3': case '۳': return '3'; case '4': case '۴': return '4'; case '5': case '۵': return '5'; case '6': case '۶': return '6'; case '7': case '۷': return '7'; case '8': case '۸': return '8'; case '9': case '۹': return '9'; case '0': case '۰': return '0'; default: return '/'; } };