element-plus
Version:
A Component Library for Vue 3
1 lines • 2.82 kB
Source Map (JSON)
{"version":3,"file":"utils.mjs","names":[],"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"],"mappings":";AAKA,MAAa,aAAa,SAA8B;CACtD,MAAM,UAAU,QAAQ,IAAI,MAAM,IAAI;AACtC,KAAI,OAAO,UAAU,GAAG;EACtB,IAAI,QAAQ,OAAO,SAAS,OAAO,IAAI,GAAG;EAC1C,MAAM,UAAU,OAAO,SAAS,OAAO,IAAI,GAAG;EAC9C,MAAM,YAAY,KAAK,aAAa;AACpC,MAAI,UAAU,SAAS,KAAK,IAAI,UAAU,GACxC,SAAQ;WACC,UAAU,SAAS,KAAK,IAAI,UAAU,GAC/C,UAAS;AAEX,SAAO;GACL;GACA;GACD;;AAGH,QAAO;;AAGT,MAAa,eAAe,OAAe,UAA0B;CACnE,MAAM,SAAS,UAAU,MAAM;AAC/B,KAAI,CAAC,OAAQ,QAAO;CACpB,MAAM,SAAS,UAAU,MAAM;AAC/B,KAAI,CAAC,OAAQ,QAAO;CACpB,MAAM,WAAW,OAAO,UAAU,OAAO,QAAQ;CACjD,MAAM,WAAW,OAAO,UAAU,OAAO,QAAQ;AACjD,KAAI,aAAa,SACf,QAAO;AAET,QAAO,WAAW,WAAW,IAAI;;AAGnC,MAAa,WAAW,SAA0B;AAChD,QAAO,GAAG,OAAO,SAAS,GAAG,IAAI;;AAEnC,MAAa,cAAc,SAAuB;AAChD,QAAO,GAAG,QAAQ,KAAK,MAAM,CAAC,GAAG,QAAQ,KAAK,QAAQ;;AAGxD,MAAa,YAAY,MAAc,SAAyB;CAC9D,MAAM,YAAY,UAAU,KAAK;AACjC,KAAI,CAAC,UAAW,QAAO;CAEvB,MAAM,YAAY,UAAU,KAAK;AACjC,KAAI,CAAC,UAAW,QAAO;CAEvB,MAAM,OAAO;EACX,OAAO,UAAU;EACjB,SAAS,UAAU;EACpB;AACD,MAAK,WAAW,UAAU;AAC1B,MAAK,SAAS,UAAU;AACxB,MAAK,SAAS,KAAK,MAAM,KAAK,UAAU,GAAG;AAC3C,MAAK,UAAU,KAAK,UAAU;AAC9B,QAAO,WAAW,KAAK"}