UNPKG

roko-date-picker

Version:
67 lines (66 loc) 2.52 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.weekDayList = exports.getYearsOfCurrentDecade = exports.getMonthsOfCurrentYear = exports.getWeeksOfCurrentMonth = void 0; exports.getItemLayout = getItemLayout; const date_fns_1 = require("date-fns"); const addDays_1 = __importDefault(require("date-fns/addDays")); const eachDayOfInterval_1 = __importDefault(require("date-fns/eachDayOfInterval")); const eachWeekOfInterval_1 = __importDefault(require("date-fns/eachWeekOfInterval")); const endOfMonth_1 = __importDefault(require("date-fns/endOfMonth")); const startOfMonth_1 = __importDefault(require("date-fns/startOfMonth")); const getWeeksOfCurrentMonth = (date) => { return (0, eachWeekOfInterval_1.default)({ start: (0, startOfMonth_1.default)(date), end: (0, endOfMonth_1.default)(date), }, { weekStartsOn: 1, }).reduce((acc, cur) => { const allDays = (0, eachDayOfInterval_1.default)({ start: cur, end: (0, addDays_1.default)(cur, 6), }); acc.push(allDays); return acc; }, []); }; exports.getWeeksOfCurrentMonth = getWeeksOfCurrentMonth; const getMonthsOfCurrentYear = (date) => { const year = date.getFullYear(); const months = []; for (let month = 0; month < 12; month++) { const monthDate = new Date(year, month); months.push(monthDate); } return months; }; exports.getMonthsOfCurrentYear = getMonthsOfCurrentYear; const getYearsOfCurrentDecade = (date) => { const currentYear = date.getFullYear(); const years = []; for (let year = currentYear - 11; year <= currentYear; year++) { const yearDate = new Date(year, 0); // Using 0 for the month to get January of each year years.push(yearDate); } return years; }; exports.getYearsOfCurrentDecade = getYearsOfCurrentDecade; const weekDayList = () => { const weekStart = (0, date_fns_1.startOfWeek)(new Date(), { weekStartsOn: 1 }); // Monday const days = []; for (let i = 0; i < 7; i++) { days.push((0, addDays_1.default)(weekStart, i)); } return days; }; exports.weekDayList = weekDayList; function getItemLayout(_data, index, cellLayout) { const itemLayout = { length: cellLayout.height, offset: cellLayout.height * index, index, }; return itemLayout; }