"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildMonthRows = buildMonthRows; function formatDateKey(y, m, d) { return `${y}-${String(m).padStart(2, "0")}-${String(d).padStart(2, "0")}`; } /** * 当月日历网格(周一至周日),含首尾空白格。 */ function buildMonthRows(year, month, plansByDate) { const firstDay = new Date(year, month - 1, 1); const daysInMonth = new Date(year, month, 0).getDate(); const startOffset = (firstDay.getDay() + 6) % 7; const today = new Date(); const todayKey = formatDateKey(today.getFullYear(), today.getMonth() + 1, today.getDate()); const cells = []; for (let i = 0; i < startOffset; i++) { cells.push({ day: null, dateKey: null, isToday: false, plans: [], }); } for (let d = 1; d <= daysInMonth; d++) { const key = formatDateKey(year, month, d); cells.push({ day: d, dateKey: key, isToday: key === todayKey, plans: plansByDate[key] ?? [], }); } while (cells.length % 7 !== 0) { cells.push({ day: null, dateKey: null, isToday: false, plans: [], }); } const rows = []; for (let i = 0; i < cells.length; i += 7) { rows.push(cells.slice(i, i + 7)); } return rows; } //# sourceMappingURL=calendarMonth.js.map