{"version":3,"file":"find-available-column.cjs","names":["isAllDayEvent","isEventsOverlap"],"sources":["../../../../src/components/WeekView/get-week-view-events/find-available-column.ts"],"sourcesContent":["import { DateStringValue, ScheduleEventData } from '../../../types';\nimport { isAllDayEvent, isEventsOverlap } from '../../../utils';\n\ninterface FindAvailableColumnInput {\n  columns: Map<string, ScheduleEventData[]>;\n  event: ScheduleEventData;\n  allDay: boolean;\n  allWeekDays: DateStringValue[];\n}\n\nfunction columnHasConflict({\n  columns,\n  columnIndex,\n  event,\n  allDay,\n  allWeekDays,\n}: FindAvailableColumnInput & { columnIndex: number }): boolean {\n  const columnKey = `col-${columnIndex}`;\n  if (!columns.has(columnKey)) {\n    return false;\n  }\n\n  const columnEvents = columns.get(columnKey)!;\n\n  return columnEvents.some((e) => {\n    const eAllDay = allWeekDays.some((day) => isAllDayEvent({ event: e, date: day }));\n    const hasTimeConflict = isEventsOverlap(e, event);\n\n    if (allDay && eAllDay) {\n      return hasTimeConflict;\n    }\n\n    if (allDay || eAllDay) {\n      return false;\n    }\n\n    return hasTimeConflict;\n  });\n}\n\nexport function findAvailableColumn(input: FindAvailableColumnInput): number {\n  let column = 0;\n\n  while (columnHasConflict({ ...input, columnIndex: column })) {\n    column++;\n  }\n\n  return column;\n}\n"],"mappings":";;;;AAUA,SAAS,kBAAkB,EACzB,SACA,aACA,OACA,QACA,eAC8D;CAC9D,MAAM,YAAY,OAAO;CACzB,IAAI,CAAC,QAAQ,IAAI,SAAS,GACxB,OAAO;CAKT,OAFqB,QAAQ,IAAI,SAEf,CAAC,CAAC,MAAM,MAAM;EAC9B,MAAM,UAAU,YAAY,MAAM,QAAQA,yBAAAA,cAAc;GAAE,OAAO;GAAG,MAAM;EAAI,CAAC,CAAC;EAChF,MAAM,kBAAkBC,0BAAAA,gBAAgB,GAAG,KAAK;EAEhD,IAAI,UAAU,SACZ,OAAO;EAGT,IAAI,UAAU,SACZ,OAAO;EAGT,OAAO;CACT,CAAC;AACH;AAEA,SAAgB,oBAAoB,OAAyC;CAC3E,IAAI,SAAS;CAEb,OAAO,kBAAkB;EAAE,GAAG;EAAO,aAAa;CAAO,CAAC,GACxD;CAGF,OAAO;AACT"}