{"version":3,"file":"dates.cjs","sources":["../../src/dates.ts"],"sourcesContent":["import deepEqual from 'fast-deep-equal';\nimport memoize from 'micro-memoize';\n\nimport { getLanguage } from './i18n';\n\nconst deepMemoize: typeof memoize = (fn) => memoize(fn, { isEqual: deepEqual });\n\nconst createDateTimeFormatter = deepMemoize((locale: string | undefined, options: Intl.DateTimeFormatOptions) => {\n  try {\n    return new Intl.DateTimeFormat(locale, options);\n  } catch {\n    return new Intl.DateTimeFormat('en-US', options);\n  }\n});\n\nconst createDurationFormatter = deepMemoize((locale: string | undefined, options: Intl.DurationFormatOptions) => {\n  return new Intl.DurationFormat(locale, options);\n});\n\nexport const formatDate = deepMemoize(\n  (_value: number | Date | string, format: Intl.DateTimeFormatOptions = {}): string => {\n    const value = typeof _value === 'string' ? new Date(_value) : _value;\n    const dateFormatter = createDateTimeFormatter(getLanguage(), format);\n    return dateFormatter.format(value);\n  }\n);\n\nexport const formatDuration = deepMemoize(\n  (duration: Intl.DurationInput, options: Intl.DurationFormatOptions = {}): string => {\n    const dateFormatter = createDurationFormatter(getLanguage(), options);\n    return dateFormatter.format(duration);\n  }\n);\n\nexport const formatDateRange = (\n  _from: number | Date | string,\n  _to: number | Date | string,\n  format: Intl.DateTimeFormatOptions = {}\n): string => {\n  const from = typeof _from === 'string' ? new Date(_from) : _from;\n  const to = typeof _to === 'string' ? new Date(_to) : _to;\n\n  const dateFormatter = createDateTimeFormatter(getLanguage(), format);\n  return dateFormatter.formatRange(from, to);\n};\n"],"names":["memoize","deepEqual","getLanguage"],"mappings":";;;;;;;;;;;;;;AAKA,MAAM,WAAA,GAA8B,CAAC,EAAA,KAAOA,wBAAA,CAAQ,IAAI,EAAE,OAAA,EAASC,4BAAW,CAAA;AAE9E,MAAM,uBAAA,GAA0B,WAAA,CAAY,CAAC,MAAA,EAA4B,OAAA,KAAwC;AAC/G,EAAA,IAAI;AACF,IAAA,OAAO,IAAI,IAAA,CAAK,cAAA,CAAe,MAAA,EAAQ,OAAO,CAAA;AAAA,EAChD,CAAA,CAAA,OAAQ,CAAA,EAAA;AACN,IAAA,OAAO,IAAI,IAAA,CAAK,cAAA,CAAe,OAAA,EAAS,OAAO,CAAA;AAAA,EACjD;AACF,CAAC,CAAA;AAED,MAAM,uBAAA,GAA0B,WAAA,CAAY,CAAC,MAAA,EAA4B,OAAA,KAAwC;AAC/G,EAAA,OAAO,IAAI,IAAA,CAAK,cAAA,CAAe,MAAA,EAAQ,OAAO,CAAA;AAChD,CAAC,CAAA;AAEM,MAAM,UAAA,GAAa,WAAA;AAAA,EACxB,CAAC,MAAA,EAAgC,MAAA,GAAqC,EAAC,KAAc;AACnF,IAAA,MAAM,QAAQ,OAAO,MAAA,KAAW,WAAW,IAAI,IAAA,CAAK,MAAM,CAAA,GAAI,MAAA;AAC9D,IAAA,MAAM,aAAA,GAAgB,uBAAA,CAAwBC,gBAAA,EAAY,EAAG,MAAM,CAAA;AACnE,IAAA,OAAO,aAAA,CAAc,OAAO,KAAK,CAAA;AAAA,EACnC;AACF;AAEO,MAAM,cAAA,GAAiB,WAAA;AAAA,EAC5B,CAAC,QAAA,EAA8B,OAAA,GAAsC,EAAC,KAAc;AAClF,IAAA,MAAM,aAAA,GAAgB,uBAAA,CAAwBA,gBAAA,EAAY,EAAG,OAAO,CAAA;AACpE,IAAA,OAAO,aAAA,CAAc,OAAO,QAAQ,CAAA;AAAA,EACtC;AACF;AAEO,MAAM,kBAAkB,CAC7B,KAAA,EACA,GAAA,EACA,MAAA,GAAqC,EAAC,KAC3B;AACX,EAAA,MAAM,OAAO,OAAO,KAAA,KAAU,WAAW,IAAI,IAAA,CAAK,KAAK,CAAA,GAAI,KAAA;AAC3D,EAAA,MAAM,KAAK,OAAO,GAAA,KAAQ,WAAW,IAAI,IAAA,CAAK,GAAG,CAAA,GAAI,GAAA;AAErD,EAAA,MAAM,aAAA,GAAgB,uBAAA,CAAwBA,gBAAA,EAAY,EAAG,MAAM,CAAA;AACnE,EAAA,OAAO,aAAA,CAAc,WAAA,CAAY,IAAA,EAAM,EAAE,CAAA;AAC3C;;;;;;"}