{"version":3,"file":"utils.mjs","sources":["../../../../../../packages/components/time-picker/src/utils.ts"],"sourcesContent":["import dayjs from 'dayjs'\nimport { isArray, isDate, isEmpty } from '@bigin/utils'\n\nimport type { Dayjs } from 'dayjs'\nexport type TimeList = [number | undefined, number, undefined | number]\n\nexport const buildTimeList = (value: number, bound: number): TimeList => {\n  return [\n    value > 0 ? value - 1 : undefined,\n    value,\n    value < bound ? value + 1 : undefined,\n  ]\n}\n\nexport const rangeArr = (n: number) =>\n  Array.from(Array.from({ length: n }).keys())\n\nexport const extractDateFormat = (format: string) => {\n  return format\n    .replace(/\\W?m{1,2}|\\W?ZZ/g, '')\n    .replace(/\\W?h{1,2}|\\W?s{1,3}|\\W?a/gi, '')\n    .trim()\n}\n\nexport const extractTimeFormat = (format: string) => {\n  return format\n    .replace(/\\W?D{1,2}|\\W?Do|\\W?d{1,4}|\\W?M{1,4}|\\W?Y{2,4}/g, '')\n    .trim()\n}\n\nexport const dateEquals = function (a: Date | unknown, b: Date | unknown) {\n  const aIsDate = isDate(a)\n  const bIsDate = isDate(b)\n  if (aIsDate && bIsDate) {\n    return a.getTime() === b.getTime()\n  }\n  if (!aIsDate && !bIsDate) {\n    return a === b\n  }\n  return false\n}\n\nexport const valueEquals = function (\n  a: Array<Date> | unknown,\n  b: Array<Date> | unknown\n) {\n  const aIsArray = isArray(a)\n  const bIsArray = isArray(b)\n  if (aIsArray && bIsArray) {\n    if (a.length !== b.length) {\n      return false\n    }\n    return a.every((item, index) => dateEquals(item, b[index]))\n  }\n  if (!aIsArray && !bIsArray) {\n    return dateEquals(a, b)\n  }\n  return false\n}\n\nexport const parseDate = function (\n  date: string | number | Date,\n  format: string | undefined,\n  lang: string\n) {\n  const day =\n    isEmpty(format) || format === 'x'\n      ? dayjs(date).locale(lang)\n      : dayjs(date, format).locale(lang)\n  return day.isValid() ? day : undefined\n}\n\nexport const formatter = function (\n  date: string | number | Date | Dayjs,\n  format: string | undefined,\n  lang: string\n) {\n  if (isEmpty(format)) return date\n  if (format === 'x') return +date\n  return dayjs(date).locale(lang).format(format)\n}\n\nexport const makeList = (total: number, method?: () => number[]) => {\n  const arr: boolean[] = []\n  const disabledArr = method?.()\n  for (let i = 0; i < total; i++) {\n    arr.push(disabledArr?.includes(i) ?? false)\n  }\n  return arr\n}\n"],"names":[],"mappings":"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"}