{"version":3,"file":"get-month-view-events.mjs","names":[],"sources":["../../../../src/components/MonthView/get-month-view-events/get-month-view-events.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport { AnyDateValue, DayOfWeek, ScheduleEventData } from '../../../types';\nimport { getMonthRange, validateEvent } from '../../../utils';\nimport { getMonthPositionedEvents, GroupedMonthEvents } from './get-month-positioned-events';\n\ninterface UseMonthViewEventsInput {\n  /** Date (month start) at which events are positioned */\n  date: AnyDateValue;\n\n  /** List of all events that belong to the given month, extra events must be filtered out before passing to the function */\n  events: ScheduleEventData[] | undefined;\n\n  /** First day of the week, 0 - Sunday, 1 - Monday, etc., used to calculate events positions */\n  firstDayOfWeek?: DayOfWeek;\n\n  /** If true, events for outside days are included */\n  withOutsideDays?: boolean;\n\n  /** If true, month will show events for consistent number of weeks (6) */\n  consistentWeeks?: boolean;\n}\n\nexport function getMonthViewEvents({\n  date,\n  events,\n  firstDayOfWeek = 1,\n  withOutsideDays,\n  consistentWeeks,\n}: UseMonthViewEventsInput): GroupedMonthEvents {\n  if (events === undefined) {\n    return { groupedByDay: {}, groupedByWeek: {}, backgroundByWeek: {} };\n  }\n\n  const ids = new Set<string | number>();\n  const filteredEvents: ScheduleEventData[] = [];\n\n  const range = getMonthRange({ month: date, withOutsideDays, consistentWeeks, firstDayOfWeek });\n\n  for (const event of events) {\n    if (\n      dayjs(event.end).isAfter(range.start, 'day') ||\n      dayjs(event.start).isBefore(range.end, 'day')\n    ) {\n      filteredEvents.push(validateEvent(event));\n\n      if (!ids.has(event.id)) {\n        ids.add(event.id);\n      } else {\n        throw new Error(`[@mantine/schedule] MonthView: Duplicated event ids found: ${event.id}`);\n      }\n    }\n  }\n\n  return getMonthPositionedEvents({\n    date,\n    events: filteredEvents,\n    firstDayOfWeek,\n    range,\n  });\n}\n"],"mappings":";;;;;;AAsBA,SAAgB,mBAAmB,EACjC,MACA,QACA,iBAAiB,GACjB,iBACA,mBAC8C;CAC9C,IAAI,WAAW,KAAA,GACb,OAAO;EAAE,cAAc,CAAC;EAAG,eAAe,CAAC;EAAG,kBAAkB,CAAC;CAAE;CAGrE,MAAM,sBAAM,IAAI,IAAqB;CACrC,MAAM,iBAAsC,CAAC;CAE7C,MAAM,QAAQ,cAAc;EAAE,OAAO;EAAM;EAAiB;EAAiB;CAAe,CAAC;CAE7F,KAAK,MAAM,SAAS,QAClB,IACE,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,MAAM,OAAO,KAAK,KAC3C,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,MAAM,KAAK,KAAK,GAC5C;EACA,eAAe,KAAK,cAAc,KAAK,CAAC;EAExC,IAAI,CAAC,IAAI,IAAI,MAAM,EAAE,GACnB,IAAI,IAAI,MAAM,EAAE;OAEhB,MAAM,IAAI,MAAM,8DAA8D,MAAM,IAAI;CAE5F;CAGF,OAAO,yBAAyB;EAC9B;EACA,QAAQ;EACR;EACA;CACF,CAAC;AACH"}