UNPKG

tdesign-mobile-vue

Version:
1 lines 24.1 kB
{"version":3,"file":"format.mjs","sources":["../../../../node_modules/dayjs/plugin/isoWeeksInYear.js","../../../../node_modules/dayjs/plugin/isLeapYear.js","../../../../src/_common/js/date-picker/format.ts"],"sourcesContent":["!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isoWeeksInYear=n()}(this,(function(){\"use strict\";return function(e,n){n.prototype.isoWeeksInYear=function(){var e=this.isLeapYear(),n=this.endOf(\"y\").day();return 4===n||e&&5===n?53:52}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isLeapYear=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.isLeapYear=function(){return this.$y%4==0&&this.$y%100!=0||this.$y%400==0}}}));","import { isString } from 'lodash-es';\nimport dayjs from 'dayjs';\nimport isoWeeksInYear from 'dayjs/plugin/isoWeeksInYear';\nimport isLeapYear from 'dayjs/plugin/isLeapYear';\nimport log from '../log';\n\ntype DateValue = string | number | Date;\n\ndayjs.extend(isoWeeksInYear);\ndayjs.extend(isLeapYear);\n\nexport const TIME_FORMAT = 'HH:mm:ss';\n\n// extract time format from a completed date format 'YYYY-MM-DD HH:mm' -> 'HH:mm'\nexport function extractTimeFormat(dateFormat: string = '') {\n return dateFormat\n .replace(/\\W?Y{2,4}|\\W?D{1,2}|\\W?Do|\\W?d{1,4}|\\W?M{1,4}|\\W?y{2,4}/g, '')\n .trim();\n}\n\n// 统一解析日期格式字符串成 Dayjs 对象\nexport function parseToDayjs(\n value: string | Date | number,\n format: string,\n timeOfDay?: string,\n dayjsLocale?: string,\n) {\n if (value === '' || value === null) return dayjs();\n\n let dateText = value;\n // format week\n if (/[w|W]/g.test(format)) {\n if (!isString(dateText)) {\n dateText = dayjs(dateText).locale(dayjsLocale || 'zh-cn').format(format) as string;\n }\n\n const yearStr = dateText.split(/[-/.\\s]/)[0];\n const weekStr = dateText.split(/[-/.\\s]/)[1];\n const weekFormatStr = format.split(/[-/.\\s]/)[1];\n\n let firstWeek = dayjs(yearStr, 'YYYY').locale(dayjsLocale || 'zh-cn').startOf('year');\n // 第一周ISO定义: 本年度第一个星期四所在的星期\n // 如果第一年第一天在星期四后, 直接跳到下一周, 下一周必定是第一周\n // 否则本周即为第一周\n if (firstWeek.day() > 4 || firstWeek.day() === 0) firstWeek = firstWeek.add(1, 'week');\n\n // 一年有52或者53周, 引入IsoWeeksInYear辅助查询\n const weekCounts = dayjs(yearStr, 'YYYY').locale(dayjsLocale || 'zh-cn').isoWeeksInYear();\n for (let i = 0; i <= weekCounts; i += 1) {\n let nextWeek = firstWeek.add(i, 'week');\n // 重置为周的第一天\n if (timeOfDay === 'start') nextWeek = nextWeek.subtract(5, 'day');\n if (nextWeek.format(weekFormatStr) === weekStr) {\n return nextWeek;\n }\n }\n }\n\n // format quarter\n if (/Q/g.test(format)) {\n if (!isString(dateText)) {\n dateText = dayjs(dateText).locale(dayjsLocale || 'zh-cn').format(format) as string;\n }\n\n const yearStr = dateText.split(/[-/.\\s]/)[0];\n const quarterStr = dateText.split(/[-/.\\s]/)[1];\n const quarterFormatStr = format.split(/[-/.\\s]/)[1];\n const firstQuarter = dayjs(yearStr, 'YYYY').startOf('year');\n for (let i = 0; i < 4; i += 1) {\n const nextQuarter = firstQuarter.add(i, 'quarter');\n if (nextQuarter.format(quarterFormatStr) === quarterStr) {\n return nextQuarter;\n }\n }\n }\n\n // 兼容数据格式不标准场景 YYYY-MM-D\n const result = dayjs(dateText, format).isValid()\n ? dayjs(dateText, format)\n : dayjs(dateText);\n\n // 兼容数据异常情况\n if (!result.isValid()) {\n log.error('DatePicker', `Check whether the format、value format is valid.\\n value: '${value}', format: '${format}'`);\n return dayjs();\n }\n\n return result;\n}\n\n// 格式化 range\nfunction formatRange({\n newDate,\n format,\n dayjsLocale,\n targetFormat,\n autoSwap,\n}: {\n newDate: any;\n format: string;\n dayjsLocale?: string;\n targetFormat?: string;\n autoSwap?: boolean;\n}) {\n if (!newDate || !Array.isArray(newDate)) return [];\n\n let dayjsDateList = newDate.map((d) => d && parseToDayjs(d, format).locale(dayjsLocale));\n\n // 保证后面的时间大于前面的时间\n if (\n autoSwap\n && dayjsDateList[0]\n && dayjsDateList[1]\n && dayjsDateList[0].toDate().getTime() > dayjsDateList[1].toDate().getTime()\n ) {\n // 数据兼容规则\n dayjsDateList = [dayjsDateList[1], dayjsDateList[0]];\n }\n\n // 格式化失败提示\n if (dayjsDateList.some((r) => r && !r.isValid())) {\n log.error(\n 'DatePicker',\n `Check whether the value、format、valueType format is valid.\\nformat: '${format}' value: '${newDate}' valueType: '${targetFormat}'`\n );\n return [];\n }\n\n // valueType = 'time-stamp' 返回时间戳\n if (targetFormat === 'time-stamp') return dayjsDateList.map((da) => da && da.toDate().getTime());\n // valueType = 'Date' 返回时间对象\n if (targetFormat === 'Date') return dayjsDateList.map((da) => da && da.toDate());\n\n return dayjsDateList.map((da) => da && da.format(targetFormat || format));\n}\n\n// 格式化单选\nfunction formatSingle({\n newDate,\n format,\n targetFormat,\n dayjsLocale,\n}: {\n newDate: any;\n format: string;\n targetFormat?: string;\n dayjsLocale?: string;\n}) {\n if (!newDate) return '';\n\n const dayJsDate = parseToDayjs(newDate, format).locale(dayjsLocale);\n\n // 格式化失败提示\n if (!dayJsDate.isValid()) {\n log.error(\n 'DatePicker',\n `Check whether the format、value format is valid.\\nformat: '${format}' value: '${newDate}'`\n );\n return '';\n }\n\n // valueType = 'time-stamp' 返回时间戳\n if (targetFormat === 'time-stamp') return dayJsDate.toDate().getTime();\n // valueType = 'Date' 返回时间对象\n if (targetFormat === 'Date') return dayJsDate.toDate();\n\n return dayJsDate.format(targetFormat || format);\n}\n\n// 检测日期是否合法\nexport function isValidDate(value: DateValue | DateValue[], format: string) {\n if (Array.isArray(value)) {\n return value.every((v) => {\n if (v === '') return true;\n return dayjs(v, format).isValid() || dayjs(v).isValid();\n });\n }\n\n if (value === '') return true;\n return dayjs(value, format).isValid() || dayjs(value).isValid();\n}\n\n// 日期格式化\nexport function formatDate(\n newDate: DateValue | DateValue[],\n {\n format,\n targetFormat,\n dayjsLocale = 'zh-cn',\n autoSwap,\n }: { format: string; dayjsLocale?: string, targetFormat?: string; autoSwap?: boolean }\n) {\n let result;\n\n if (Array.isArray(newDate)) {\n result = formatRange({ newDate, format, dayjsLocale, targetFormat, autoSwap });\n } else {\n result = formatSingle({ newDate, format, dayjsLocale, targetFormat });\n }\n\n return result;\n}\n\n// 对齐格式化时间\nexport function calcFormatTime(time: string, timeFormat: string) {\n if (time && timeFormat) {\n const timeArr = time.split(':');\n const timeFormatArr = timeFormat.split(':');\n return timeArr.slice(0, timeFormatArr.length).join(':');\n }\n return time;\n}\n\n// TODO 细化 value 类型\n// 格式化时间\nexport function formatTime(value: any, format: string, timeFormat: string, defaultTime: string | string[]) {\n // 无论参数是不是数组,统一转成数组处理\n let result = Array.isArray(value) ? value : [value];\n // eslint-disable-next-line no-param-reassign\n defaultTime = Array.isArray(defaultTime) ? defaultTime : [defaultTime, defaultTime];\n result = result.map((v, i) => {\n // string格式需要用format去解析,其他诸如Date、time-stamp格式则直接dayjs\n if (v) return dayjs(v, typeof v === 'string' ? format : undefined).format(timeFormat);\n return calcFormatTime(defaultTime[i], timeFormat);\n });\n result = result.length ? result : defaultTime.map((t) => calcFormatTime(t, timeFormat));\n // value是数组就输出数组,不是数组就输出第一个即可\n return Array.isArray(value) ? result : result?.[0];\n}\n\n// 根据不同 mode 给出格式化默认值\nexport function getDefaultFormat({\n mode = 'date',\n format,\n valueType,\n enableTimePicker,\n}: {\n mode?: string;\n format?: string;\n valueType?: string;\n enableTimePicker?: boolean;\n}) {\n if (mode === 'year') {\n return {\n format: format || 'YYYY',\n valueType: valueType || format || 'YYYY',\n timeFormat: TIME_FORMAT,\n };\n }\n if (mode === 'month') {\n return {\n format: format || 'YYYY-MM',\n valueType: valueType || format || 'YYYY-MM',\n timeFormat: TIME_FORMAT,\n };\n }\n if (mode === 'quarter') {\n return {\n format: format || 'YYYY-[Q]Q',\n valueType: valueType || format || 'YYYY-[Q]Q',\n timeFormat: TIME_FORMAT,\n };\n }\n if (mode === 'week') {\n return {\n format: format || 'gggg-wo',\n valueType: valueType || format || 'gggg-wo',\n timeFormat: TIME_FORMAT,\n };\n }\n if (mode === 'date') {\n return {\n format: format || `YYYY-MM-DD${enableTimePicker ? ' HH:mm:ss' : ''}`,\n valueType: valueType || format || `YYYY-MM-DD${enableTimePicker ? ' HH:mm:ss' : ''}`,\n timeFormat: extractTimeFormat(format || `YYYY-MM-DD${enableTimePicker ? ' HH:mm:ss' : ''}`) || TIME_FORMAT,\n };\n }\n log.error('DatePicker', `Invalid mode: ${mode}`);\n return {};\n}\n\n// 初始化面板年份月份\nexport function initYearMonthTime({\n value,\n mode = 'date',\n format,\n timeFormat = 'HH:mm:ss',\n enableTimePicker,\n}: {\n value: Array<any>;\n mode: string;\n format: string;\n timeFormat?: string;\n enableTimePicker?: boolean;\n}) {\n const defaultYearMonthTime = {\n year: [dayjs().year(), dayjs().year()],\n month: [dayjs().month(), dayjs().month()],\n time: [dayjs().format(timeFormat), dayjs().format(timeFormat)],\n };\n if (mode === 'year') {\n defaultYearMonthTime.year[1] += 10;\n } else if (mode === 'month' || mode === 'quarter') {\n defaultYearMonthTime.year[1] += 1;\n } else if ((mode === 'date' || mode === 'week') && !enableTimePicker) {\n // 切换至下一年\n if (defaultYearMonthTime.month[0] === 11) {\n defaultYearMonthTime.year[1] += 1;\n defaultYearMonthTime.month[1] = 0;\n } else {\n defaultYearMonthTime.month[1] += 1;\n }\n }\n\n if (!value || !Array.isArray(value) || !value.length) {\n return defaultYearMonthTime;\n }\n\n return {\n year: value.map((v) => parseToDayjs(v, format).year()),\n month: value.map((v) => parseToDayjs(v, format).month()),\n time: value.map((v) => parseToDayjs(v, format).format(timeFormat)),\n };\n}\n"],"names":["e","n","module","exports","define","amd","globalThis","self","dayjs_plugin_isoWeeksInYear","this","prototype","isoWeeksInYear","isLeapYear","endOf","day","t","dayjs_plugin_isLeapYear","$y","dayjs","extend","TIME_FORMAT","extractTimeFormat","dateFormat","replace","trim","parseToDayjs","value","format","timeOfDay","dayjsLocale","dateText","test","isString","locale","yearStr","split","weekStr","weekFormatStr","firstWeek","startOf","add","weekCounts","i","nextWeek","subtract","quarterStr","quarterFormatStr","firstQuarter","nextQuarter","result","isValid","log","error","concat","formatRange","_ref","newDate","targetFormat","autoSwap","Array","isArray","dayjsDateList","map","d","toDate","getTime","some","r","da","formatSingle","_ref2","dayJsDate","isValidDate","every","v","formatDate","_ref3","_ref3$dayjsLocale","calcFormatTime","time","timeFormat","timeArr","timeFormatArr","slice","length","join","formatTime","defaultTime","_result","getDefaultFormat","_ref4","_ref4$mode","mode","valueType","enableTimePicker","initYearMonthTime","_ref5","_ref5$mode","_ref5$timeFormat","defaultYearMonthTime","year","month"],"mappings":"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"}