UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 4.11 kB
{"version":3,"file":"utils.mjs","names":[],"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"],"mappings":";;;;AAQA,MAAa,iBAAiB,OAAe,UAA4B;AACvE,QAAO;EACL,QAAQ,IAAI,QAAQ,IAAI;EACxB;EACA,QAAQ,QAAQ,QAAQ,IAAI;EAC7B;;AAGH,MAAa,YAAY,MACvB,MAAM,KAAK,MAAM,KAAK,EAAE,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC;AAE9C,MAAa,qBAAqB,WAAmB;AACnD,QAAO,OACJ,QAAQ,oBAAoB,GAAG,CAC/B,QAAQ,8BAA8B,GAAG,CACzC,MAAM;;AAGX,MAAa,qBAAqB,WAAmB;AACnD,QAAO,OACJ,QAAQ,kDAAkD,GAAG,CAC7D,MAAM;;AAGX,MAAa,aAAa,SAAU,GAAmB,GAAmB;CACxE,MAAM,UAAU,OAAO,EAAE;CACzB,MAAM,UAAU,OAAO,EAAE;AACzB,KAAI,WAAW,QACb,QAAO,EAAE,SAAS,KAAK,EAAE,SAAS;AAEpC,KAAI,CAAC,WAAW,CAAC,QACf,QAAO,MAAM;AAEf,QAAO;;AAGT,MAAa,cAAc,SACzB,GACA,GACA;CACA,MAAM,WAAW,QAAQ,EAAE;CAC3B,MAAM,WAAW,QAAQ,EAAE;AAC3B,KAAI,YAAY,UAAU;AACxB,MAAI,EAAE,WAAW,EAAE,OACjB,QAAO;AAET,SAAO,EAAE,OAAO,MAAM,UAAU,WAAW,MAAM,EAAE,OAAO,CAAC;;AAE7D,KAAI,CAAC,YAAY,CAAC,SAChB,QAAO,WAAW,GAAG,EAAE;AAEzB,QAAO;;AAGT,MAAa,YAAY,SACvB,MACA,QACA,MACA;CACA,MAAM,MACJ,QAAQ,OAAO,IAAI,WAAW,MAC1B,MAAM,KAAK,CAAC,OAAO,KAAK,GACxB,MAAM,MAAM,OAAO,CAAC,OAAO,KAAK;AACtC,QAAO,IAAI,SAAS,GAAG,MAAM;;AAG/B,MAAa,YAAY,SACvB,MACA,QACA,MACA;AACA,KAAI,QAAQ,OAAO,CAAE,QAAO;AAC5B,KAAI,WAAW,IAAK,QAAO,CAAC;AAC5B,QAAO,MAAM,KAAK,CAAC,OAAO,KAAK,CAAC,OAAO,OAAO;;AAGhD,MAAa,YAAY,OAAe,WAA4B;CAClE,MAAM,MAAiB,EAAE;CACzB,MAAM,cAAc,UAAU;AAC9B,MAAK,IAAI,IAAI,GAAG,IAAI,OAAO,IACzB,KAAI,KAAK,aAAa,SAAS,EAAE,IAAI,MAAM;AAE7C,QAAO;;AAGT,MAAa,mBAAmB,cAAsC;AACpE,QAAO,QAAQ,UAAU,GACpB,UAAU,KAAK,MAAM,EAAE,QAAQ,CAAC,GACjC,UAAU,QAAQ"}