{"version":3,"file":"get-mobile-month-view-events.mjs","names":[],"sources":["../../../src/components/MobileMonthView/get-mobile-month-view-events.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport { AnyDateValue, DateStringValue, ScheduleEventData } from '../../types';\nimport { isMultidayEvent, validateEvent } from '../../utils';\n\nexport type GroupedEvents = Record<DateStringValue, ScheduleEventData[]>;\n\nfunction groupEventByDate(event: ScheduleEventData, groupedEvents: GroupedEvents) {\n  if (isMultidayEvent(event)) {\n    const startDate = dayjs(event.start).startOf('day');\n    const endDate = dayjs(event.end).startOf('day');\n\n    for (\n      let date = startDate;\n      date.isBefore(endDate) || date.isSame(endDate);\n      date = date.add(1, 'day')\n    ) {\n      const dateKey = date.format('YYYY-MM-DD');\n      if (!groupedEvents[dateKey]) {\n        groupedEvents[dateKey] = [];\n      }\n      groupedEvents[dateKey].push(event);\n    }\n\n    return;\n  }\n\n  const eventDate = dayjs(event.start).format('YYYY-MM-DD');\n  if (!groupedEvents[eventDate]) {\n    groupedEvents[eventDate] = [];\n  }\n  groupedEvents[eventDate].push(event);\n}\n\ninterface GetMobileMonthViewEventsInput {\n  date: AnyDateValue;\n  events: ScheduleEventData[] | undefined;\n}\n\nexport function getMobileMonthViewEvents({ date, events }: GetMobileMonthViewEventsInput) {\n  const groupedEvents: GroupedEvents = {};\n\n  if (events === undefined) {\n    return groupedEvents;\n  }\n\n  const ids = new Set<string | number>();\n\n  for (const event of events) {\n    if (event.display === 'background') {\n      continue;\n    }\n\n    if (dayjs(event.start).isSame(dayjs(date), 'month')) {\n      groupEventByDate(validateEvent(event), groupedEvents);\n\n      if (!ids.has(event.id)) {\n        ids.add(event.id);\n      } else {\n        throw new Error(\n          `[@mantine/schedule] MobileMonthView: Duplicated event ids found: ${event.id}`\n        );\n      }\n    }\n  }\n\n  return groupedEvents;\n}\n"],"mappings":";;;;;AAMA,SAAS,iBAAiB,OAA0B,eAA8B;CAChF,IAAI,gBAAgB,KAAK,GAAG;EAC1B,MAAM,YAAY,MAAM,MAAM,KAAK,CAAC,CAAC,QAAQ,KAAK;EAClD,MAAM,UAAU,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,KAAK;EAE9C,KACE,IAAI,OAAO,WACX,KAAK,SAAS,OAAO,KAAK,KAAK,OAAO,OAAO,GAC7C,OAAO,KAAK,IAAI,GAAG,KAAK,GACxB;GACA,MAAM,UAAU,KAAK,OAAO,YAAY;GACxC,IAAI,CAAC,cAAc,UACjB,cAAc,WAAW,CAAC;GAE5B,cAAc,QAAQ,CAAC,KAAK,KAAK;EACnC;EAEA;CACF;CAEA,MAAM,YAAY,MAAM,MAAM,KAAK,CAAC,CAAC,OAAO,YAAY;CACxD,IAAI,CAAC,cAAc,YACjB,cAAc,aAAa,CAAC;CAE9B,cAAc,UAAU,CAAC,KAAK,KAAK;AACrC;AAOA,SAAgB,yBAAyB,EAAE,MAAM,UAAyC;CACxF,MAAM,gBAA+B,CAAC;CAEtC,IAAI,WAAW,KAAA,GACb,OAAO;CAGT,MAAM,sBAAM,IAAI,IAAqB;CAErC,KAAK,MAAM,SAAS,QAAQ;EAC1B,IAAI,MAAM,YAAY,cACpB;EAGF,IAAI,MAAM,MAAM,KAAK,CAAC,CAAC,OAAO,MAAM,IAAI,GAAG,OAAO,GAAG;GACnD,iBAAiB,cAAc,KAAK,GAAG,aAAa;GAEpD,IAAI,CAAC,IAAI,IAAI,MAAM,EAAE,GACnB,IAAI,IAAI,MAAM,EAAE;QAEhB,MAAM,IAAI,MACR,oEAAoE,MAAM,IAC5E;EAEJ;CACF;CAEA,OAAO;AACT"}