nums2persian
Version:
Numbers to Persian!
483 lines (482 loc) • 15.7 kB
JavaScript
"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 '/';
}
};