{"version":3,"file":"get-month-days.cjs","names":["getEndOfWeek","getStartOfWeek"],"sources":["../../../src/utils/get-month-days/get-month-days.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport { AnyDateValue, DateStringValue, DayOfWeek } from '../../types';\nimport { getEndOfWeek } from '../get-end-of-week/get-end-of-week';\nimport { getStartOfWeek } from '../get-start-of-week/get-start-of-week';\n\ninterface GetMonthDaysInput {\n  month: AnyDateValue;\n  firstDayOfWeek: DayOfWeek | undefined;\n  consistentWeeks: boolean | undefined;\n}\n\nexport function getMonthDays({\n  month,\n  firstDayOfWeek = 1,\n  consistentWeeks,\n}: GetMonthDaysInput): DateStringValue[][] {\n  const day = dayjs(month).subtract(dayjs(month).date() - 1, 'day');\n  const start = dayjs(day.format('YYYY-MM-DD'));\n  const startOfMonth = start.format('YYYY-MM-DD');\n  const endOfMonth = start.add(+start.daysInMonth() - 1, 'day').format('YYYY-MM-DD');\n  const endDate = getEndOfWeek(endOfMonth, firstDayOfWeek);\n  const weeks: DateStringValue[][] = [];\n\n  let date = dayjs(getStartOfWeek({ date: startOfMonth, firstDayOfWeek }));\n\n  while (dayjs(date).isBefore(endDate, 'day')) {\n    const days: DateStringValue[] = [];\n\n    for (let i = 0; i < 7; i += 1) {\n      days.push(date.format('YYYY-MM-DD 00:00:00'));\n      date = date.add(1, 'day');\n    }\n\n    weeks.push(days);\n  }\n\n  if (consistentWeeks && weeks.length < 6) {\n    const lastWeek = weeks[weeks.length - 1];\n    const lastDay = lastWeek[lastWeek.length - 1];\n    let nextDay = dayjs(lastDay).add(1, 'day');\n\n    while (weeks.length < 6) {\n      const days: DateStringValue[] = [];\n\n      for (let i = 0; i < 7; i += 1) {\n        days.push(nextDay.format('YYYY-MM-DD 00:00:00'));\n        nextDay = nextDay.add(1, 'day');\n      }\n\n      weeks.push(days);\n    }\n  }\n\n  return weeks;\n}\n"],"mappings":";;;;;;;AAWA,SAAgB,aAAa,EAC3B,OACA,iBAAiB,GACjB,mBACyC;CAEzC,MAAM,SAAA,GAAA,MAAA,QAAA,EAAA,GAAA,MAAA,QAAA,CADY,KAAK,CAAC,CAAC,UAAA,GAAA,MAAA,QAAA,CAAe,KAAK,CAAC,CAAC,KAAK,IAAI,GAAG,KACrC,CAAC,CAAC,OAAO,YAAY,CAAC;CAC5C,MAAM,eAAe,MAAM,OAAO,YAAY;CAE9C,MAAM,UAAUA,wBAAAA,aADG,MAAM,IAAI,CAAC,MAAM,YAAY,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,YAC/B,GAAG,cAAc;CACvD,MAAM,QAA6B,CAAC;CAEpC,IAAI,QAAA,GAAA,MAAA,QAAA,CAAaC,0BAAAA,eAAe;EAAE,MAAM;EAAc;CAAe,CAAC,CAAC;CAEvE,QAAA,GAAA,MAAA,QAAA,CAAa,IAAI,CAAC,CAAC,SAAS,SAAS,KAAK,GAAG;EAC3C,MAAM,OAA0B,CAAC;EAEjC,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG;GAC7B,KAAK,KAAK,KAAK,OAAO,qBAAqB,CAAC;GAC5C,OAAO,KAAK,IAAI,GAAG,KAAK;EAC1B;EAEA,MAAM,KAAK,IAAI;CACjB;CAEA,IAAI,mBAAmB,MAAM,SAAS,GAAG;EACvC,MAAM,WAAW,MAAM,MAAM,SAAS;EACtC,MAAM,UAAU,SAAS,SAAS,SAAS;EAC3C,IAAI,WAAA,GAAA,MAAA,QAAA,CAAgB,OAAO,CAAC,CAAC,IAAI,GAAG,KAAK;EAEzC,OAAO,MAAM,SAAS,GAAG;GACvB,MAAM,OAA0B,CAAC;GAEjC,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG;IAC7B,KAAK,KAAK,QAAQ,OAAO,qBAAqB,CAAC;IAC/C,UAAU,QAAQ,IAAI,GAAG,KAAK;GAChC;GAEA,MAAM,KAAK,IAAI;EACjB;CACF;CAEA,OAAO;AACT"}