{"version":3,"file":"model-value-parser.mjs","sources":["../../../../../../src/components/va-date-input/hooks/model-value-parser.ts"],"sourcesContent":["import { DatePickerModelValue } from '../../va-date-picker/types'\nimport { defaultParseDateFunction } from './input-text-parser'\nimport { DateInputRange, DateInputModelValue, DateInputDate } from '../types'\nimport { isNil, isNilValue } from '../../../utils/isNilValue'\n\nexport const isRange = (date: DateInputModelValue): date is DateInputRange<DateInputDate> => {\n  if (date === null) { return false }\n\n  return typeof date === 'object' && ('start' in date || 'end' in date)\n}\n\nexport const parseSingleDate = (date: DateInputDate) => typeof date === 'string'\n  ? defaultParseDateFunction(date)\n  : new Date(date)\n\nexport const parseModelValue = (date: DateInputModelValue): DatePickerModelValue => {\n  if (Array.isArray(date)) {\n    return date.map(parseSingleDate)\n  }\n\n  if (isRange(date)) {\n    return {\n      start: isNil(date.start) ? date.start : parseSingleDate(date.start),\n      end: isNil(date.end) ? date.end : parseSingleDate(date.end),\n    }\n  }\n\n  return parseSingleDate(date!)\n}\n"],"names":[],"mappings":"AAKa,MAAA,UAAU,CAAC,SAAqE;AAC3F,MAAI,SAAS,MAAM;AAAS,WAAA;AAAA,EAAM;AAElC,SAAO,OAAO,SAAS,aAAa,WAAW,QAAQ,SAAS;AAClE;"}