{"version":3,"file":"utils.mjs","names":[],"sources":["../../../../../../packages/components/countdown/src/utils.ts"],"sourcesContent":["import { isNumber } from '@element-plus/utils'\n\nimport type { Dayjs } from 'dayjs'\n\nconst timeUnits = [\n  ['Y', 1000 * 60 * 60 * 24 * 365], // years\n  ['M', 1000 * 60 * 60 * 24 * 30], // months\n  ['D', 1000 * 60 * 60 * 24], // days\n  ['H', 1000 * 60 * 60], // hours\n  ['m', 1000 * 60], // minutes\n  ['s', 1000], // seconds\n  ['S', 1], // million seconds\n] as const\n\nexport const getTime = (value: number | Dayjs) => {\n  return isNumber(value) ? new Date(value).getTime() : value.valueOf()\n}\n\nexport const formatTime = (timestamp: number, format: string) => {\n  let timeLeft = timestamp\n  const escapeRegex = /\\[([^\\]]*)]/g\n\n  const replacedText = timeUnits.reduce((current, [name, unit]) => {\n    const replaceRegex = new RegExp(`${name}+(?![^\\\\[\\\\]]*\\\\])`, 'g')\n    if (replaceRegex.test(current)) {\n      const value = Math.floor(timeLeft / unit)\n      timeLeft -= value * unit\n      return current.replace(replaceRegex, (match) =>\n        String(value).padStart(match.length, '0')\n      )\n    }\n    return current\n  }, format)\n\n  return replacedText.replace(escapeRegex, '$1')\n}\n"],"mappings":";;;AAIA,MAAM,YAAY;CAChB,CAAC,KAAK,MAAO,KAAK,KAAK,KAAK,IAAI;CAChC,CAAC,KAAK,MAAO,KAAK,KAAK,KAAK,GAAG;CAC/B,CAAC,KAAK,MAAO,KAAK,KAAK,GAAG;CAC1B,CAAC,KAAK,MAAO,KAAK,GAAG;CACrB,CAAC,KAAK,MAAO,GAAG;CAChB,CAAC,KAAK,IAAK;CACX,CAAC,KAAK,EAAE;CACT;AAED,MAAa,WAAW,UAA0B;AAChD,QAAO,SAAS,MAAM,GAAG,IAAI,KAAK,MAAM,CAAC,SAAS,GAAG,MAAM,SAAS;;AAGtE,MAAa,cAAc,WAAmB,WAAmB;CAC/D,IAAI,WAAW;AAef,QAZqB,UAAU,QAAQ,SAAS,CAAC,MAAM,UAAU;EAC/D,MAAM,eAAe,IAAI,OAAO,GAAG,KAAK,qBAAqB,IAAI;AACjE,MAAI,aAAa,KAAK,QAAQ,EAAE;GAC9B,MAAM,QAAQ,KAAK,MAAM,WAAW,KAAK;AACzC,eAAY,QAAQ;AACpB,UAAO,QAAQ,QAAQ,eAAe,UACpC,OAAO,MAAM,CAAC,SAAS,MAAM,QAAQ,IAAI,CAC1C;;AAEH,SAAO;IACN,OAAO,CAEU,QAdA,gBAcqB,KAAK"}