element-plus
Version:
A Component Library for Vue 3
1 lines • 3.89 kB
Source Map (JSON)
{"version":3,"file":"utils.mjs","sources":["../../../../../../packages/components/time-select/src/utils.ts"],"sourcesContent":["interface Time {\n hours: number\n minutes: number\n}\n\nexport const parseTime = (time: string): null | Time => {\n const values = (time || '').split(':')\n if (values.length >= 2) {\n let hours = Number.parseInt(values[0], 10)\n const minutes = Number.parseInt(values[1], 10)\n const timeUpper = time.toUpperCase()\n if (timeUpper.includes('AM') && hours === 12) {\n hours = 0\n } else if (timeUpper.includes('PM') && hours !== 12) {\n hours += 12\n }\n return {\n hours,\n minutes,\n }\n }\n\n return null\n}\n\nexport const compareTime = (time1: string, time2: string): number => {\n const value1 = parseTime(time1)\n if (!value1) return -1\n const value2 = parseTime(time2)\n if (!value2) return -1\n const minutes1 = value1.minutes + value1.hours * 60\n const minutes2 = value2.minutes + value2.hours * 60\n if (minutes1 === minutes2) {\n return 0\n }\n return minutes1 > minutes2 ? 1 : -1\n}\n\nexport const padTime = (time: number | string) => {\n return `${time}`.padStart(2, '0')\n}\nexport const formatTime = (time: Time): string => {\n return `${padTime(time.hours)}:${padTime(time.minutes)}`\n}\n\nexport const nextTime = (time: string, step: string): string => {\n const timeValue = parseTime(time)\n if (!timeValue) return ''\n\n const stepValue = parseTime(step)\n if (!stepValue) return ''\n\n const next = {\n hours: timeValue.hours,\n minutes: timeValue.minutes,\n }\n next.minutes += stepValue.minutes\n next.hours += stepValue.hours\n next.hours += Math.floor(next.minutes / 60)\n next.minutes = next.minutes % 60\n return formatTime(next)\n}\n"],"names":[],"mappings":"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"}