{"version":3,"file":"find-available-row.cjs","names":[],"sources":["../../../../src/components/MonthView/get-month-view-events/find-available-row.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport { MonthPositionedEventData } from '../../../types';\n\ninterface FindAvailableRowInput {\n  existingEvents: MonthPositionedEventData[];\n  startDayIndex: number;\n  daysSpanned: number;\n  weekStart: dayjs.Dayjs;\n}\n\nexport function findAvailableRow({\n  existingEvents,\n  startDayIndex,\n  daysSpanned,\n  weekStart,\n}: FindAvailableRowInput): number {\n  let row = 0;\n\n  for (const existing of existingEvents) {\n    const existingStart = dayjs(existing.start).startOf('day');\n    const existingDisplayStart =\n      existingStart.isBefore(weekStart) || existingStart.isSame(weekStart, 'day')\n        ? weekStart\n        : existingStart;\n    const existingDayIndex = existingDisplayStart.diff(weekStart, 'day');\n    const existingWidth = existing.position?.width || 0;\n    const existingDaysSpanned = (existingWidth / 100) * 7;\n\n    if (\n      existingDayIndex + existingDaysSpanned > startDayIndex &&\n      existingDayIndex < startDayIndex + daysSpanned\n    ) {\n      row = Math.max(row, (existing.position?.row || 0) + 1);\n    }\n  }\n\n  return row;\n}\n"],"mappings":";;;;;AAUA,SAAgB,iBAAiB,EAC/B,gBACA,eACA,aACA,aACgC;CAChC,IAAI,MAAM;CAEV,KAAK,MAAM,YAAY,gBAAgB;EACrC,MAAM,iBAAA,GAAA,MAAA,QAAA,CAAsB,SAAS,KAAK,CAAC,CAAC,QAAQ,KAAK;EAKzD,MAAM,oBAHJ,cAAc,SAAS,SAAS,KAAK,cAAc,OAAO,WAAW,KAAK,IACtE,YACA,cAAA,CACwC,KAAK,WAAW,KAAK;EAInE,IACE,oBAJoB,SAAS,UAAU,SAAS,KACL,MAAO,IAGT,iBACzC,mBAAmB,gBAAgB,aAEnC,MAAM,KAAK,IAAI,MAAM,SAAS,UAAU,OAAO,KAAK,CAAC;CAEzD;CAEA,OAAO;AACT"}