{"version":3,"sources":["../call-control-sdk/lib/pages/common/components/DateRangePicker.tsx"],"sourcesContent":["import { Fragment } from \"react\";\r\nimport { Typography } from \"@mui/material\";\r\nimport dayjs, { Dayjs } from \"dayjs\";\r\nimport { DateTimePicker } from \"@mui/x-date-pickers/DateTimePicker\";\r\nimport { DatePicker } from \"@mui/x-date-pickers/DatePicker\";\r\n\r\nconst pickerSx = {\r\n  width: 170,\r\n  \"& .MuiOutlinedInput-root\": { borderRadius: \"6px\", height: 32, px: 0.5 },\r\n  \"& .MuiInputBase-input\": { py: 0, px: \"4px\", fontSize: \"0.72rem\" },\r\n  \"& .MuiInputAdornment-root\": { ml: 0 },\r\n  \"& .MuiInputAdornment-root .MuiSvgIcon-root\": { fontSize: \"0.8rem\" },\r\n  \"& .MuiOutlinedInput-notchedOutline\": { borderColor: \"#c0c8d4\" },\r\n  \"& .MuiPickersSectionList-root\": { py: \"4px\", px: 0, fontSize: 12 },\r\n};\r\n\r\ninterface DateRangePickerProps {\r\n  startDate: Dayjs | null;\r\n  endDate: Dayjs | null;\r\n  onStartChange: (val: Dayjs | null) => void;\r\n  onEndChange: (val: Dayjs | null) => void;\r\n  showTime?: boolean;\r\n}\r\n\r\nexport default function DateRangePicker({\r\n  startDate,\r\n  endDate,\r\n  onStartChange,\r\n  onEndChange,\r\n  showTime = true,\r\n}: DateRangePickerProps) {\r\n  const Picker = showTime ? DateTimePicker : DatePicker;\r\n  const format = showTime ? \"DD-MM-YYYY hh:mm A\" : undefined;\r\n  const now = dayjs();\r\n  const minKey = showTime ? \"minDateTime\" : \"minDate\";\r\n  const maxKey = showTime ? \"maxDateTime\" : \"maxDate\";\r\n\r\n  const clampFuture = (v: Dayjs | null): Dayjs | null => {\r\n    if (!v) return v;\r\n    const current = dayjs();\r\n    return v.isAfter(current) ? current : v;\r\n  };\r\n\r\n  const handleStartChange = (v: Dayjs | null) => {\r\n    const clamped = clampFuture(v);\r\n    onStartChange(clamped);\r\n    if (clamped && endDate && endDate.isBefore(clamped)) {\r\n      onEndChange(clamped);\r\n    }\r\n  };\r\n\r\n  const handleEndChange = (v: Dayjs | null) => {\r\n    let clamped = clampFuture(v);\r\n    if (clamped && startDate && clamped.isBefore(startDate)) {\r\n      clamped = startDate;\r\n    }\r\n    onEndChange(clamped);\r\n  };\r\n\r\n  const startMax = endDate && endDate.isBefore(now) ? endDate : now;\r\n  const startPickerBounds = { [maxKey]: startMax };\r\n  const endPickerBounds = {\r\n    [maxKey]: now,\r\n    ...(startDate ? { [minKey]: startDate } : {}),\r\n  };\r\n\r\n  return (\r\n    <Fragment>\r\n      <Picker\r\n        value={startDate}\r\n        onChange={(v) => handleStartChange(v as Dayjs | null)}\r\n        disableFuture\r\n        {...(showTime ? { timeSteps: { minutes: 1 } } : {})}\r\n        {...startPickerBounds}\r\n        {...(format ? { format } : {})}\r\n        slotProps={{ textField: { size: \"small\" as const, sx: pickerSx } }}\r\n      />\r\n      <Typography sx={{ fontSize: \"0.72rem\", color: \"#7a8599\" }}>to</Typography>\r\n      <Picker\r\n        value={endDate}\r\n        onChange={(v) => handleEndChange(v as Dayjs | null)}\r\n        disableFuture\r\n        {...(showTime ? { timeSteps: { minutes: 1 } } : {})}\r\n        {...endPickerBounds}\r\n        {...(format ? { format } : {})}\r\n        slotProps={{ textField: { size: \"small\" as const, sx: pickerSx } }}\r\n      />\r\n    </Fragment>\r\n  );\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;AAAA,SAAS,gBAAgB;AACzB,SAAS,kBAAkB;AAC3B,OAAO,WAAsB;AAC7B,SAAS,sBAAsB;AAC/B,SAAS,kBAAkB;AA+DvB,SACE,KADF;AA7DJ,IAAM,WAAW;AAAA,EACf,OAAO;AAAA,EACP,4BAA4B,EAAE,cAAc,OAAO,QAAQ,IAAI,IAAI,IAAI;AAAA,EACvE,yBAAyB,EAAE,IAAI,GAAG,IAAI,OAAO,UAAU,UAAU;AAAA,EACjE,6BAA6B,EAAE,IAAI,EAAE;AAAA,EACrC,8CAA8C,EAAE,UAAU,SAAS;AAAA,EACnE,sCAAsC,EAAE,aAAa,UAAU;AAAA,EAC/D,iCAAiC,EAAE,IAAI,OAAO,IAAI,GAAG,UAAU,GAAG;AACpE;AAUe,SAAR,gBAAiC;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AACb,GAAyB;AACvB,QAAM,SAAS,WAAW,iBAAiB;AAC3C,QAAM,SAAS,WAAW,uBAAuB;AACjD,QAAM,MAAM,MAAM;AAClB,QAAM,SAAS,WAAW,gBAAgB;AAC1C,QAAM,SAAS,WAAW,gBAAgB;AAE1C,QAAM,cAAc,CAAC,MAAkC;AACrD,QAAI,CAAC,EAAG,QAAO;AACf,UAAM,UAAU,MAAM;AACtB,WAAO,EAAE,QAAQ,OAAO,IAAI,UAAU;AAAA,EACxC;AAEA,QAAM,oBAAoB,CAAC,MAAoB;AAC7C,UAAM,UAAU,YAAY,CAAC;AAC7B,kBAAc,OAAO;AACrB,QAAI,WAAW,WAAW,QAAQ,SAAS,OAAO,GAAG;AACnD,kBAAY,OAAO;AAAA,IACrB;AAAA,EACF;AAEA,QAAM,kBAAkB,CAAC,MAAoB;AAC3C,QAAI,UAAU,YAAY,CAAC;AAC3B,QAAI,WAAW,aAAa,QAAQ,SAAS,SAAS,GAAG;AACvD,gBAAU;AAAA,IACZ;AACA,gBAAY,OAAO;AAAA,EACrB;AAEA,QAAM,WAAW,WAAW,QAAQ,SAAS,GAAG,IAAI,UAAU;AAC9D,QAAM,oBAAoB,EAAE,CAAC,MAAM,GAAG,SAAS;AAC/C,QAAM,kBAAkB;AAAA,IACtB,CAAC,MAAM,GAAG;AAAA,KACN,YAAY,EAAE,CAAC,MAAM,GAAG,UAAU,IAAI,CAAC;AAG7C,SACE,qBAAC,YACC;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,OAAO;AAAA,QACP,UAAU,CAAC,MAAM,kBAAkB,CAAiB;AAAA,QACpD,eAAa;AAAA,SACR,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,IAC7C,oBACC,SAAS,EAAE,OAAO,IAAI,CAAC,IAN7B;AAAA,QAOC,WAAW,EAAE,WAAW,EAAE,MAAM,SAAkB,IAAI,SAAS,EAAE;AAAA;AAAA,IACnE;AAAA,IACA,oBAAC,cAAW,IAAI,EAAE,UAAU,WAAW,OAAO,UAAU,GAAG,gBAAE;AAAA,IAC7D;AAAA,MAAC;AAAA;AAAA,QACC,OAAO;AAAA,QACP,UAAU,CAAC,MAAM,gBAAgB,CAAiB;AAAA,QAClD,eAAa;AAAA,SACR,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,IAC7C,kBACC,SAAS,EAAE,OAAO,IAAI,CAAC,IAN7B;AAAA,QAOC,WAAW,EAAE,WAAW,EAAE,MAAM,SAAkB,IAAI,SAAS,EAAE;AAAA;AAAA,IACnE;AAAA,KACF;AAEJ;","names":[]}