{"version":3,"file":"get-current-time-position.cjs","names":["clampIntervalMinutes"],"sources":["../../../src/utils/get-current-time-position/get-current-time-position.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport { AnyDateValue } from '../../types';\nimport { clampIntervalMinutes } from '../clamp-interval-minutes/clamp-interval-minutes';\n\ninterface GetCurrentTimePositionInput {\n  startTime?: string;\n  endTime?: string;\n  now?: AnyDateValue;\n\n  /** Number of minutes per time slot. Used to align the indicator to whole slots when `endTime` does not divide evenly. */\n  intervalMinutes?: number;\n}\n\nexport function getCurrentTimePosition(input?: GetCurrentTimePositionInput) {\n  const now = dayjs(input?.now);\n\n  if (!input?.startTime || !input?.endTime) {\n    const startOf = now.startOf('date');\n    const diffInMinutes = now.diff(startOf, 'minute');\n    return (diffInMinutes / 1440) * 100;\n  }\n\n  const [startHour, startMinute, startSecond = 0] = input.startTime.split(':').map(Number);\n  const [endHour, endMinute, endSecond = 0] = input.endTime.split(':').map(Number);\n\n  const startOfDay = now.startOf('date');\n  const startDateTime = startOfDay.hour(startHour).minute(startMinute).second(startSecond);\n  const endDateTime = startOfDay.hour(endHour).minute(endMinute).second(endSecond);\n\n  const literalSeconds = endDateTime.diff(startDateTime, 'second');\n  const intervalSeconds =\n    input.intervalMinutes !== undefined\n      ? clampIntervalMinutes(input.intervalMinutes) * 60\n      : undefined;\n  const totalSeconds = intervalSeconds\n    ? Math.ceil(literalSeconds / intervalSeconds) * intervalSeconds\n    : literalSeconds;\n  const currentSeconds = now.diff(startDateTime, 'second');\n\n  return (currentSeconds / totalSeconds) * 100;\n}\n"],"mappings":";;;;;;AAaA,SAAgB,uBAAuB,OAAqC;CAC1E,MAAM,OAAA,GAAA,MAAA,QAAA,CAAY,OAAO,GAAG;CAE5B,IAAI,CAAC,OAAO,aAAa,CAAC,OAAO,SAAS;EACxC,MAAM,UAAU,IAAI,QAAQ,MAAM;EAElC,OADsB,IAAI,KAAK,SAAS,QACpB,IAAI,OAAQ;CAClC;CAEA,MAAM,CAAC,WAAW,aAAa,cAAc,KAAK,MAAM,UAAU,MAAM,GAAG,CAAC,CAAC,IAAI,MAAM;CACvF,MAAM,CAAC,SAAS,WAAW,YAAY,KAAK,MAAM,QAAQ,MAAM,GAAG,CAAC,CAAC,IAAI,MAAM;CAE/E,MAAM,aAAa,IAAI,QAAQ,MAAM;CACrC,MAAM,gBAAgB,WAAW,KAAK,SAAS,CAAC,CAAC,OAAO,WAAW,CAAC,CAAC,OAAO,WAAW;CAGvF,MAAM,iBAFc,WAAW,KAAK,OAAO,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,OAAO,SAErC,CAAC,CAAC,KAAK,eAAe,QAAQ;CAC/D,MAAM,kBACJ,MAAM,oBAAoB,KAAA,IACtBA,+BAAAA,qBAAqB,MAAM,eAAe,IAAI,KAC9C,KAAA;CACN,MAAM,eAAe,kBACjB,KAAK,KAAK,iBAAiB,eAAe,IAAI,kBAC9C;CAGJ,OAFuB,IAAI,KAAK,eAAe,QAE1B,IAAI,eAAgB;AAC3C"}