element-plus
Version:
A Component Library for Vue 3
1 lines • 5.23 kB
Source Map (JSON)
{"version":3,"file":"utils.mjs","sources":["../../../../../../packages/components/time-picker/src/utils.ts"],"sourcesContent":["import dayjs from 'dayjs'\nimport { isArray, isDate, isEmpty } from '@element-plus/utils'\n\nimport type { Dayjs } from 'dayjs'\nimport type { DateOrDates, DayOrDays } from './common/props'\n\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\nexport const dayOrDaysToDate = (dayOrDays: DayOrDays): DateOrDates => {\n return isArray(dayOrDays)\n ? (dayOrDays.map((d) => d.toDate()) as [Date, Date])\n : dayOrDays.toDate()\n}\n"],"names":[],"mappings":"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"}