UNPKG

react-native-lunar-calendars

Version:

React Native Calendar Components with Lunar Calendar Support - Fork of react-native-calendars with Vietnamese lunar calendar functionality

98 lines (97 loc) 3.5 kB
"use strict"; var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.sameMonth = sameMonth; exports.sameDate = sameDate; exports.monthName = monthName; exports.isGTE = isGTE; exports.isLTE = isLTE; exports.fromTo = fromTo; exports.month = month; exports.weekDayNames = weekDayNames; exports.page = page; var xdate_1 = __importDefault(require("xdate")); function sameMonth(a, b) { return a instanceof xdate_1.default && b instanceof xdate_1.default && a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth(); } function sameDate(a, b) { return a instanceof xdate_1.default && b instanceof xdate_1.default && a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate(); } function monthName(month) { var _a; var locales = xdate_1.default.locales[xdate_1.default.defaultLocale]; return ((_a = locales === null || locales === void 0 ? void 0 : locales.monthNames) === null || _a === void 0 ? void 0 : _a[month]) || ''; } function isGTE(a, b) { return b.diffDays(a) > -1; } function isLTE(a, b) { return a.diffDays(b) > -1; } function fromTo(a, b) { var days = []; var from = +a, to = +b; for (; from <= to; from = new xdate_1.default(from, true).addDays(1).getTime()) { days.push(new xdate_1.default(from, true)); } return days; } function month(xd) { var year = xd.getFullYear(), month = xd.getMonth(); var days = new Date(year, month + 1, 0).getDate(); var firstDay = new xdate_1.default(year, month, 1, 0, 0, 0); var lastDay = new xdate_1.default(year, month, days, 0, 0, 0); return fromTo(firstDay, lastDay); } function weekDayNames(firstDayOfWeek) { if (firstDayOfWeek === void 0) { firstDayOfWeek = 0; } var locales = xdate_1.default.locales[xdate_1.default.defaultLocale]; var weekDaysNames = locales === null || locales === void 0 ? void 0 : locales.dayNamesShort; if (!weekDaysNames) { return []; } var dayShift = firstDayOfWeek % 7; if (dayShift) { weekDaysNames = __spreadArray(__spreadArray([], weekDaysNames.slice(dayShift), true), weekDaysNames.slice(0, dayShift), true); } return weekDaysNames; } function page(xd, firstDayOfWeek) { var days = month(xd); var before = [], after = []; var fdow = ((7 + firstDayOfWeek) % 7) || 7; var ldow = (fdow + 6) % 7; firstDayOfWeek = firstDayOfWeek || 0; var from = days[0].clone(); if (from.getDay() !== fdow) { from.addDays(-(from.getDay() + 7 - fdow) % 7); } var to = days[days.length - 1].clone(); var day = to.getDay(); if (day !== ldow) { to.addDays((ldow + 7 - day) % 7); } if (isLTE(from, days[0])) { before = fromTo(from, days[0]); } if (isGTE(to, days[days.length - 1])) { after = fromTo(days[days.length - 1], to); } return before.concat(days.slice(1, days.length - 1), after); }