{"version":3,"file":"calculate-month-drop-date.mjs","names":[],"sources":["../../../src/utils/calculate-month-drop-date/calculate-month-drop-date.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport { DateStringValue, ScheduleEventData } from '../../types';\n\nexport interface CalculateMonthDropDateInput {\n  /** The event being dragged */\n  draggedEvent: ScheduleEventData;\n\n  /** The target day where the event is being dropped */\n  targetDay: DateStringValue;\n}\n\nexport interface CalculateMonthDropDateResult {\n  /** New start date for the event */\n  start: Date;\n\n  /** New end date for the event */\n  end: Date;\n}\n\nexport function calculateMonthDropDate({\n  draggedEvent,\n  targetDay,\n}: CalculateMonthDropDateInput): CalculateMonthDropDateResult {\n  const eventDuration = dayjs(draggedEvent.end).diff(dayjs(draggedEvent.start), 'millisecond');\n\n  const originalStartTime = dayjs(draggedEvent.start);\n  const targetDayStart = dayjs(targetDay).startOf('day');\n\n  const newStart = targetDayStart\n    .hour(originalStartTime.hour())\n    .minute(originalStartTime.minute())\n    .second(originalStartTime.second())\n    .millisecond(originalStartTime.millisecond());\n\n  const newEnd = newStart.add(eventDuration, 'millisecond');\n\n  return {\n    start: newStart.toDate(),\n    end: newEnd.toDate(),\n  };\n}\n"],"mappings":";;;AAmBA,SAAgB,uBAAuB,EACrC,cACA,aAC4D;CAC5D,MAAM,gBAAgB,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,MAAM,aAAa,KAAK,GAAG,aAAa;CAE3F,MAAM,oBAAoB,MAAM,aAAa,KAAK;CAGlD,MAAM,WAFiB,MAAM,SAAS,CAAC,CAAC,QAAQ,KAElB,CAAC,CAC5B,KAAK,kBAAkB,KAAK,CAAC,CAAC,CAC9B,OAAO,kBAAkB,OAAO,CAAC,CAAC,CAClC,OAAO,kBAAkB,OAAO,CAAC,CAAC,CAClC,YAAY,kBAAkB,YAAY,CAAC;CAE9C,MAAM,SAAS,SAAS,IAAI,eAAe,aAAa;CAExD,OAAO;EACL,OAAO,SAAS,OAAO;EACvB,KAAK,OAAO,OAAO;CACrB;AACF"}