{"version":3,"file":"get-formatted-date.mjs","names":[],"sources":["../../../src/utils/get-formatted-date/get-formatted-date.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport { DatePickerType, DatePickerValue, DateStringValue } from '../../types';\n\ninterface DateFormatterInput {\n  type: DatePickerType;\n  date: DatePickerValue<DatePickerType>;\n  locale: string;\n  format: string;\n  labelSeparator: string;\n}\n\nexport type DateFormatter = (input: DateFormatterInput) => string;\n\nexport function defaultDateFormatter({\n  type,\n  date,\n  locale,\n  format,\n  labelSeparator,\n}: DateFormatterInput) {\n  const formatDate = (value: DateStringValue | Date) => dayjs(value).locale(locale).format(format);\n\n  if (type === 'default') {\n    return date === null ? '' : formatDate(date as DateStringValue);\n  }\n\n  if (type === 'multiple') {\n    return (date as DateStringValue[]).map(formatDate).join(', ');\n  }\n\n  if (type === 'range' && Array.isArray(date)) {\n    if (date[0] && date[1]) {\n      return `${formatDate(date[0])} ${labelSeparator} ${formatDate(date[1])}`;\n    }\n\n    if (date[0]) {\n      return `${formatDate(date[0])} ${labelSeparator} `;\n    }\n\n    return '';\n  }\n\n  return '';\n}\n\ninterface GetFormattedDateInput extends DateFormatterInput {\n  formatter?: DateFormatter;\n}\n\nexport function getFormattedDate({ formatter, ...others }: GetFormattedDateInput) {\n  return (formatter || defaultDateFormatter)(others);\n}\n"],"mappings":";;;AAaA,SAAgB,qBAAqB,EACnC,MACA,MACA,QACA,QACA,kBACqB;CACrB,MAAM,cAAc,UAAkC,MAAM,KAAK,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,OAAO,MAAM;CAE/F,IAAI,SAAS,WACX,OAAO,SAAS,OAAO,KAAK,WAAW,IAAuB;CAGhE,IAAI,SAAS,YACX,OAAQ,KAA2B,IAAI,UAAU,CAAC,CAAC,KAAK,IAAI;CAG9D,IAAI,SAAS,WAAW,MAAM,QAAQ,IAAI,GAAG;EAC3C,IAAI,KAAK,MAAM,KAAK,IAClB,OAAO,GAAG,WAAW,KAAK,EAAE,EAAE,GAAG,eAAe,GAAG,WAAW,KAAK,EAAE;EAGvE,IAAI,KAAK,IACP,OAAO,GAAG,WAAW,KAAK,EAAE,EAAE,GAAG,eAAe;EAGlD,OAAO;CACT;CAEA,OAAO;AACT;AAMA,SAAgB,iBAAiB,EAAE,WAAW,GAAG,UAAiC;CAChF,QAAQ,aAAa,qBAAA,CAAsB,MAAM;AACnD"}