tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 83.2 kB
Source Map (JSON)
{"version":3,"file":"dep-336f833d.mjs","sources":["../../node_modules/dayjs/plugin/isoWeeksInYear.js","../../node_modules/dayjs/plugin/isLeapYear.js","../../node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js","../../node_modules/@babel/runtime/helpers/esm/extends.js","../../node_modules/dayjs/plugin/isBetween.js","../../node_modules/dayjs/plugin/weekOfYear.js","../../node_modules/dayjs/plugin/weekYear.js","../../node_modules/dayjs/plugin/localeData.js","../../node_modules/dayjs/plugin/quarterOfYear.js","../../node_modules/lodash/toFinite.js","../../node_modules/lodash/toInteger.js","../../node_modules/lodash/chunk.js","../../src/_common/js/date-picker/utils.ts","../../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}}}));","function _objectDestructuringEmpty(t) {\n if (null == t) throw new TypeError(\"Cannot destructure \" + t);\n}\nexport { _objectDestructuringEmpty as default };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isBetween=i()}(this,(function(){\"use strict\";return function(e,i,t){i.prototype.isBetween=function(e,i,s,f){var n=t(e),o=t(i),r=\"(\"===(f=f||\"()\")[0],u=\")\"===f[1];return(r?this.isAfter(n,s):!this.isBefore(n,s))&&(u?this.isBefore(o,s):!this.isAfter(o,s))||(r?this.isBefore(n,s):!this.isAfter(n,s))&&(u?this.isAfter(o,s):!this.isBefore(o,s))}}}));","!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_weekOfYear=t()}(this,(function(){\"use strict\";var e=\"week\",t=\"year\";return function(i,n,r){var f=n.prototype;f.week=function(i){if(void 0===i&&(i=null),null!==i)return this.add(7*(i-this.week()),\"day\");var n=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var f=r(this).startOf(t).add(1,t).date(n),s=r(this).endOf(e);if(f.isBefore(s))return 1}var a=r(this).startOf(t).date(n).startOf(e).subtract(1,\"millisecond\"),o=this.diff(a,e,!0);return o<0?r(this).startOf(\"week\").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}}));","!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_weekYear=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.weekYear=function(){var e=this.month(),t=this.week(),n=this.year();return 1===t&&11===e?n+1:0===e&&t>=52?n-1:n}}}));","!function(n,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).dayjs_plugin_localeData=e()}(this,(function(){\"use strict\";return function(n,e,t){var r=e.prototype,o=function(n){return n&&(n.indexOf?n:n.s)},u=function(n,e,t,r,u){var i=n.name?n:n.$locale(),a=o(i[e]),s=o(i[t]),f=a||s.map((function(n){return n.slice(0,r)}));if(!u)return f;var d=i.weekStart;return f.map((function(n,e){return f[(e+(d||0))%7]}))},i=function(){return t.Ls[t.locale()]},a=function(n,e){return n.formats[e]||function(n){return n.replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(n,e,t){return e||t.slice(1)}))}(n.formats[e.toUpperCase()])},s=function(){var n=this;return{months:function(e){return e?e.format(\"MMMM\"):u(n,\"months\")},monthsShort:function(e){return e?e.format(\"MMM\"):u(n,\"monthsShort\",\"months\",3)},firstDayOfWeek:function(){return n.$locale().weekStart||0},weekdays:function(e){return e?e.format(\"dddd\"):u(n,\"weekdays\")},weekdaysMin:function(e){return e?e.format(\"dd\"):u(n,\"weekdaysMin\",\"weekdays\",2)},weekdaysShort:function(e){return e?e.format(\"ddd\"):u(n,\"weekdaysShort\",\"weekdays\",3)},longDateFormat:function(e){return a(n.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},t.localeData=function(){var n=i();return{firstDayOfWeek:function(){return n.weekStart||0},weekdays:function(){return t.weekdays()},weekdaysShort:function(){return t.weekdaysShort()},weekdaysMin:function(){return t.weekdaysMin()},months:function(){return t.months()},monthsShort:function(){return t.monthsShort()},longDateFormat:function(e){return a(n,e)},meridiem:n.meridiem,ordinal:n.ordinal}},t.months=function(){return u(i(),\"months\")},t.monthsShort=function(){return u(i(),\"monthsShort\",\"months\",3)},t.weekdays=function(n){return u(i(),\"weekdays\",null,null,n)},t.weekdaysShort=function(n){return u(i(),\"weekdaysShort\",\"weekdays\",3,n)},t.weekdaysMin=function(n){return u(i(),\"weekdaysMin\",\"weekdays\",2,n)}}}));","!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_quarterOfYear=n()}(this,(function(){\"use strict\";var t=\"month\",n=\"quarter\";return function(e,i){var r=i.prototype;r.quarter=function(t){return this.$utils().u(t)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(t-1))};var s=r.add;r.add=function(e,i){return e=Number(e),this.$utils().p(i)===n?this.add(3*e,t):s.bind(this)(e,i)};var u=r.startOf;r.startOf=function(e,i){var r=this.$utils(),s=!!r.u(i)||i;if(r.p(e)===n){var o=this.quarter()-1;return s?this.month(3*o).startOf(t).startOf(\"day\"):this.month(3*o+2).endOf(t).endOf(\"day\")}return u.bind(this)(e,i)}}}));","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseSlice = require('./_baseSlice'),\n isIterateeCall = require('./_isIterateeCall'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\nfunction chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n}\n\nmodule.exports = chunk;\n","import isFunction from 'lodash/isFunction';\nimport dayjs from 'dayjs';\nimport dayJsIsBetween from 'dayjs/plugin/isBetween';\nimport weekOfYear from 'dayjs/plugin/weekOfYear';\nimport weekYear from 'dayjs/plugin/weekYear';\nimport localeData from 'dayjs/plugin/localeData';\nimport quarterOfYear from 'dayjs/plugin/quarterOfYear';\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport chunk from 'lodash/chunk';\nimport { parseToDayjs } from './format';\n\ndayjs.extend(weekOfYear);\ndayjs.extend(weekYear);\ndayjs.extend(localeData);\ndayjs.extend(quarterOfYear);\ndayjs.extend(advancedFormat);\ndayjs.extend(customParseFormat);\ndayjs.extend(dayJsIsBetween);\n\n/**\n * 首字母大写\n * @param {String} str 目标字符串\n * @returns {String}\n */\nexport function firstUpperCase(str: string): string {\n if (!str) return str;\n return str[0].toUpperCase().concat(str.substring(1, str.length));\n}\n\ninterface DateObj {\n year: number;\n month: number;\n}\n\n/**\n * 返回指定年、月的第一天日期\n * @param {Object} { year, month }\n * @returns {Date}\n */\nfunction getFirstDayOfMonth({ year, month }: DateObj): Date {\n return new Date(year, month, 1);\n}\n\n/**\n * 返回指定年、月的天数\n * @param {Object} { year, month }\n * @returns {Number}\n */\nfunction getDaysInMonth({ year, month }: DateObj): number {\n return new Date(year, month + 1, 0).getDate();\n}\n\n/**\n * 返回指定年、月的最后一天日期\n * @param {Object} { year, month }\n * @returns {Date}\n */\nfunction getLastDayOfMonth({ year, month }: DateObj): Date {\n return new Date(year, month, getDaysInMonth({ year, month }));\n}\n\nfunction isSameYear(date1: Date, date2: Date): boolean {\n return date1.getFullYear() === date2.getFullYear();\n}\n\nfunction isSameQuarter(date1: Date, date2: Date): boolean {\n return isSameYear(date1, date2) && dayjs(date1).quarter() === dayjs(date2).quarter();\n}\n\nfunction isSameMonth(date1: Date, date2: Date): boolean {\n return isSameYear(date1, date2) && date1.getMonth() === date2.getMonth();\n}\n\nfunction isSameWeek(date1: Date, date2: Date, dayjsLocale = 'zh-cn'): boolean {\n return isSameMonth(date1, date2) && dayjs(date1).locale(dayjsLocale).week() === dayjs(date2).locale(dayjsLocale).week();\n}\n\nfunction isSameDate(date1: Date, date2: Date): boolean {\n return isSameMonth(date1, date2) && date1.getDate() === date2.getDate();\n}\n\n/**\n * 比较两个日期对象的时间戳\n * @param {Date} date1 日期1\n * @param {Date} date2 日期2\n * @returns {Number} 返回 date1.getTime() - date2.getTime() 的差值\n */\nfunction compareAsc(date1: { getTime: () => any }, date2: Date): number {\n const d1 = date1.getTime();\n const d2 = date2.getTime();\n\n if (d1 < d2) return -1;\n if (d1 > d2) return 1;\n return 0;\n}\n\n/**\n * 比较两个 Date 是否是同一天 或则 同一月 或则 同一年\n * @param {Date} date1 比较的日期\n * @param {Date} date2 比较的日期\n * @param {String} type 比较类型,默认比较到『日』 date|month|year\n * @returns {Boolean}\n */\nexport function isSame(date1: Date, date2: Date, type = 'date', dayjsLocale = 'zh-cn'): boolean {\n const func = {\n isSameYear,\n isSameQuarter,\n isSameMonth,\n isSameWeek,\n isSameDate,\n };\n return func[`isSame${firstUpperCase(type)}`](date1, date2, dayjsLocale);\n}\n\nexport function outOfRanges(d: Date, min: any, max: any) {\n return (min && compareAsc(d, min) === -1) || (max && compareAsc(d, max) === 1);\n}\n\n/**\n * @returns {Date} 当天零点的日期对象\n */\nexport function getToday(): Date {\n const now = new Date();\n return new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0, 0);\n}\n\n/**\n * 返回日期对象的年、月、日、小时、分钟、秒、12小时制标识\n * @param {Date} date\n * @returns {Object}\n */\nexport function getDateObj(date: Date) {\n let tempDate = date;\n if (!(date instanceof Date)) {\n tempDate = getToday();\n }\n return {\n year: tempDate.getFullYear(),\n month: tempDate.getMonth(),\n date: tempDate.getDate(),\n hours: tempDate.getHours(),\n minutes: tempDate.getMinutes(),\n seconds: tempDate.getSeconds(),\n milliseconds: tempDate.getMilliseconds(),\n meridiem: tempDate.getHours() > 11 ? 'PM' : 'AM',\n };\n}\n\n/**\n * 设置日期对象的时间部分\n * @param {Date} date 日期\n * @param {Number} hours 小时\n * @param {Number} minutes 分钟\n * @param {Number} seconds 秒\n * @param {Number} milliseconds 毫秒\n * @returns {Date} 一个新的date\n */\nexport function setDateTime(\n date: Date,\n hours: number,\n minutes: number,\n seconds: number,\n milliseconds?: number\n): Date {\n return dayjs(date)\n .hour(hours)\n .minute(minutes)\n .second(seconds)\n .millisecond(milliseconds)\n .toDate();\n}\n\n/**\n * 减少月份\n * @param {Date} date 起始日期\n * @param {Number} num 月份数\n * @returns {Date}\n */\nexport function subtractMonth(date: Date, num: number): Date {\n return dayjs(date).subtract(num, 'month').toDate();\n}\n\n/**\n * 增加月份\n * @param {Date} date 起始日期\n * @param {Number} num 月份数\n * @returns {Date}\n */\nexport function addMonth(date: Date, num: number): Date {\n return dayjs(date).add(num, 'month').toDate();\n}\n\nexport type DateValue = string | Date | number;\nexport interface DisableDateObj { from?: string; to?: string; before?: string; after?: string }\nexport type DisableDate = Array<DateValue> | DisableDateObj | ((date: DateValue) => boolean);\n\nexport interface OptionsType {\n firstDayOfWeek: number;\n disableDate: DisableDate;\n minDate: Date;\n maxDate: Date;\n showWeekOfYear?: Boolean;\n dayjsLocale?: string;\n monthLocal?: string[];\n quarterLocal?: string[];\n cancelRangeSelectLimit?: boolean;\n}\n\nexport function getWeeks(\n { year, month }: { year: number; month: number },\n {\n firstDayOfWeek,\n showWeekOfYear = false,\n disableDate = () => false,\n minDate,\n maxDate,\n dayjsLocale = 'zh-cn',\n cancelRangeSelectLimit = false,\n }: OptionsType,\n) {\n const prependDay = getFirstDayOfMonth({ year, month });\n const appendDay = getLastDayOfMonth({ year, month });\n const maxDays = getDaysInMonth({ year, month });\n const daysArr = [];\n let i = 1;\n const today = getToday();\n for (i; i <= maxDays; i++) {\n const currentDay = new Date(year, month, i);\n daysArr.push({\n text: i,\n active: false,\n value: currentDay,\n disabled: (isFunction(disableDate) && disableDate(currentDay))\n || (!cancelRangeSelectLimit && outOfRanges(currentDay, minDate, maxDate)),\n now: isSame(today, currentDay),\n firstDayOfMonth: i === 1,\n lastDayOfMonth: i === maxDays,\n type: 'current-month',\n dayjsObj: dayjs(currentDay).locale(dayjsLocale),\n });\n }\n\n if (prependDay.getDay() !== firstDayOfWeek) {\n prependDay.setDate(0); // 上一月\n while (true) {\n daysArr.unshift({\n text: prependDay.getDate().toString(),\n active: false,\n value: new Date(prependDay),\n disabled: (isFunction(disableDate) && disableDate(prependDay)) || (!cancelRangeSelectLimit && outOfRanges(prependDay, minDate, maxDate)),\n additional: true, // 非当前月\n type: 'prev-month',\n dayjsObj: dayjs(prependDay).locale(dayjsLocale),\n });\n prependDay.setDate(prependDay.getDate() - 1);\n if (prependDay.getDay() === Math.abs(firstDayOfWeek + 6) % 7) break;\n }\n }\n\n const LEN = 42; // 显示6周\n while (daysArr.length < LEN) {\n appendDay.setDate(appendDay.getDate() + 1);\n daysArr.push({\n text: appendDay.getDate(),\n active: false,\n value: new Date(appendDay),\n disabled: (isFunction(disableDate) && disableDate(appendDay)) || (!cancelRangeSelectLimit && outOfRanges(appendDay, minDate, maxDate)),\n additional: true, // 非当前月\n type: 'next-month',\n dayjsObj: dayjs(appendDay).locale(dayjsLocale),\n });\n }\n\n const dataList = chunk(daysArr, 7);\n // 显示周数\n if (showWeekOfYear) {\n dataList.forEach((d) => {\n d.unshift({\n ...d[0],\n active: false,\n value: d[0].value,\n text: dayjs(d[0].value).locale(dayjsLocale).week(),\n dayjsObj: dayjs(d[0].value).locale(dayjsLocale),\n });\n });\n }\n\n return dataList;\n}\n\nexport function getQuarters(\n year: number,\n {\n disableDate = () => false,\n minDate,\n maxDate,\n quarterLocal,\n dayjsLocale = 'zh-cn',\n cancelRangeSelectLimit = false,\n }: OptionsType,\n) {\n const quarterArr = [];\n const today = getToday();\n\n for (let i = 1; i <= 4; i++) {\n const date = dayjs(new Date(year, 0)).quarter(i).toDate();\n\n quarterArr.push({\n value: date,\n now: isSame(date, today, 'quarter'),\n disabled: (isFunction(disableDate) && disableDate(date)) || (!cancelRangeSelectLimit && outOfRanges(date, minDate, maxDate)),\n active: false,\n text: quarterLocal[i - 1],\n dayjsObj: dayjs(date).locale(dayjsLocale),\n });\n }\n\n return chunk(quarterArr, 4);\n}\n\nexport function getYears(\n year: number,\n {\n disableDate = () => false,\n minDate,\n maxDate,\n dayjsLocale = 'zh-cn',\n cancelRangeSelectLimit = false,\n }: OptionsType,\n) {\n const startYear = parseInt((year / 10).toString(), 10) * 10;\n const endYear = startYear + 9;\n\n const yearArr = [];\n\n const today = getToday();\n\n for (let i = startYear; i <= endYear; i++) {\n const date = new Date(i, 1);\n\n yearArr.push({\n value: date,\n now: isSame(date, today, 'year'),\n disabled: (isFunction(disableDate) && disableDate(date)) || (!cancelRangeSelectLimit && outOfRanges(date, minDate, maxDate)),\n active: false,\n text: `${date.getFullYear()}`,\n dayjsObj: dayjs(date).locale(dayjsLocale),\n });\n }\n\n return chunk(yearArr, 3);\n}\n\nexport function getMonths(year: number, params: OptionsType) {\n const {\n disableDate = () => false, minDate, maxDate, monthLocal, dayjsLocale = 'zh-cn', cancelRangeSelectLimit = false,\n } = params;\n const MonthArr = [];\n const today = getToday();\n\n for (let i = 0; i <= 11; i++) {\n const date = new Date(year, i);\n\n MonthArr.push({\n value: date,\n now: isSame(date, today, 'month'),\n disabled: (isFunction(disableDate) && disableDate(date)) || (!cancelRangeSelectLimit && outOfRanges(date, minDate, maxDate)),\n active: false,\n text: monthLocal[date.getMonth()], // `${date.getMonth() + 1} ${monthText || '月'}`,\n dayjsObj: dayjs(date).locale(dayjsLocale),\n });\n }\n\n return chunk(MonthArr, 3);\n}\n\nexport interface DateTime {\n additional: boolean;\n active: boolean;\n highlight: boolean;\n hoverHighlight: boolean;\n startOfRange: boolean;\n endOfRange: boolean;\n hoverStartOfRange: boolean;\n hoverEndOfRange: boolean;\n value: Date;\n}\n\ninterface FlagActiveOptions {\n start: Date;\n end: Date;\n hoverStart: Date;\n hoverEnd: Date;\n type: any;\n isRange: boolean;\n value: DateValue | DateValue[];\n multiple: boolean;\n}\n\nexport function flagActive(data: any[], { ...args }: FlagActiveOptions) {\n const {\n start,\n end,\n hoverStart,\n hoverEnd,\n type = 'date',\n isRange = false,\n value,\n multiple = false,\n } = args;\n\n // 周选择器不更改 cell 样式\n if (type === 'week') return data;\n\n if (!isRange) {\n return data.map((row: any[]) => row.map((item: DateTime) => {\n const _item = item;\n\n if (multiple) {\n _item.active = (value as DateValue[])?.some?.((val) => isSame(dayjs(val).toDate(), _item.value, type) && !_item.additional);\n } else {\n _item.active = start && isSame(item.value, start, type) && !_item.additional;\n }\n\n return _item;\n }));\n }\n\n return data.map((row: any[]) => row.map((item: DateTime) => {\n const _item = item;\n const date = item.value;\n\n const isStart = start && isSame(start, date, type);\n const isHoverStart = hoverStart && isSame(hoverStart, date, type);\n const isEnd = end && isSame(end, date, type);\n const isHoverEnd = hoverEnd && isSame(hoverEnd, date, type);\n _item.active = (isStart || isEnd) && !_item.additional;\n\n if (start && end) {\n _item.highlight = dayjs(date).isBetween(start, end, type, '[]') && !_item.additional;\n _item.startOfRange = isStart;\n _item.endOfRange = isEnd;\n }\n\n if (hoverStart && hoverEnd) {\n _item.hoverHighlight = dayjs(date).isBetween(hoverStart, hoverEnd, type, '[]') && !_item.additional;\n _item.hoverStartOfRange = isHoverStart;\n _item.hoverEndOfRange = isHoverEnd;\n }\n return _item;\n }));\n}\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/**\n * 返回时间对象的小时、分钟、秒、12小时制标识\n * @param {String} timeFormat 'pm 20:11:11:333'\n * @returns {Object}\n */\nexport function extractTimeObj(timeFormat: string = '') {\n const matchedMeridiem = timeFormat.match(/[ap]m/i) || [''];\n const timeReg = /\\d{1,2}(:\\d{1,2})?(:\\d{1,2})?(:\\d{1,3})?/;\n const matchedTimeStr = timeFormat.match(timeReg) || ['0:0:0:0'];\n const [hours = 0, minutes = 0, seconds = 0, milliseconds = 0] = matchedTimeStr[0].split(':');\n\n return {\n hours: +hours,\n minutes: +minutes,\n seconds: +seconds,\n milliseconds: +milliseconds,\n meridiem: matchedMeridiem[0],\n };\n}\n\n/**\n * 日期是否可用\n * @param {Object} { value, disableDate, mode, format }\n * @returns {Boolean}\n */\nexport function isEnabledDate({\n value,\n disableDate,\n mode,\n format,\n}: {\n value: Date;\n mode: 'year' | 'month' | 'date' | 'quarter' | 'week';\n format: string;\n disableDate: any;\n}): boolean {\n if (!disableDate) return true;\n\n const availableMode = mode === 'quarter' ? 'date' : mode;\n\n let isEnabled = true;\n // 值类型为 Function 则表示返回值为 true 的日期会被禁用\n if (isFunction(disableDate)) {\n return !disableDate(value);\n }\n\n // 禁用日期,示例:['A', 'B'] 表示日期 A 和日期 B 会被禁用。\n if (Array.isArray(disableDate)) {\n const formattedDisabledDate = disableDate.map((item: string) => parseToDayjs(item, format));\n // eslint-disable-next-line\n const isIncludes = formattedDisabledDate.some(item => item.isSame(dayjs(value)));\n return !isIncludes;\n }\n\n // { from: 'A', to: 'B' } 表示在 A 到 B 之间的日期会被禁用。\n // eslint-disable-next-line\n const { from, to, before, after } = disableDate;\n\n if (from && to) {\n const compareMin = dayjs(new Date(from));\n const compareMax = dayjs(new Date(to));\n\n return !dayjs(value).isBetween(compareMin, compareMax, availableMode, '[]');\n }\n\n const min = before ? new Date(before) : null;\n const max = after ? new Date(after) : null;\n\n // { before: 'A', after: 'B' } 表示在 A 之前和在 B 之后的日期都会被禁用。\n if (max && min) {\n const compareMin = dayjs(new Date(min));\n const compareMax = dayjs(new Date(max));\n\n isEnabled = dayjs(value).isBetween(compareMin, compareMax, availableMode, '[]');\n } else if (min) {\n const compareMin = dayjs(new Date(min));\n isEnabled = !dayjs(value).isBefore(compareMin, availableMode);\n } else if (max) {\n const compareMax = dayjs(new Date(max));\n isEnabled = !dayjs(value).isAfter(compareMax, availableMode);\n }\n return isEnabled;\n}\n\n/**\n * formatDate 方法需要date作为入参,部分场景需要将timestamp或格式化后的时间string转换为date进行使用\n */\nexport function covertToDate(value: string, valueType: string) {\n return valueType === 'time-stamp'\n ? new Date(value)\n : dayjs(value, valueType).toDate();\n}\n","import isString from 'lodash/isString';\nimport dayjs from 'dayjs';\nimport isoWeeksInYear from 'dayjs/plugin/isoWeeksInYear';\nimport isLeapYear from 'dayjs/plugin/isLeapYear';\nimport { extractTimeFormat } from './utils';\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// 统一解析日期格式字符串成 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","_objectDestructuringEmpty","TypeError","_extends","Object","assign","bind","arguments","length","r","hasOwnProperty","call","apply","i","dayjs_plugin_isBetween","isBetween","s","f","o","u","isAfter","isBefore","dayjs_plugin_weekOfYear","week","add","$locale","yearStart","month","date","startOf","a","subtract","diff","Math","ceil","weeks","dayjs_plugin_weekYear","weekYear","year","dayjs_plugin_localeData","indexOf","name","map","slice","d","weekStart","Ls","locale","formats","replace","toUpperCase","months","format","monthsShort","firstDayOfWeek","weekdays","weekdaysMin","weekdaysShort","longDateFormat","meridiem","ordinal","localeData","dayjs_plugin_quarterOfYear","quarter","$utils","Number","p","toNumber","require$$0","INFINITY","MAX_INTEGER","toFinite","value","sign","toFinite_1","toInteger","result","remainder","toInteger_1","baseSlice","isIterateeCall","require$$1","require$$2","nativeCeil","nativeMax","max","chunk","array","size","guard","undefined","index","resIndex","Array","chunk_1","dayjs","extend","weekOfYear","quarterOfYear","advancedFormat","customParseFormat","dayJsIsBetween","firstUpperCase","str","concat","substring","getFirstDayOfMonth","_ref","Date","getDaysInMonth","_ref2","getDate","getLastDayOfMonth","_ref3","isSameYear","date1","date2","getFullYear","isSameQuarter","isSameMonth","getMonth","isSameWeek","dayjsLocale","isSameDate","compareAsc","d1","getTime","d2","isSame","type","func","outOfRanges","min","getToday","now","getDateObj","tempDate","hours","getHours","minutes","getMinutes","seconds","getSeconds","milliseconds","getMilliseconds","setDateTime","hour","minute","second","millisecond","toDate","subtractMonth","num","addMonth","getWeeks","_ref4","_ref5","_ref5$showWeekOfYear","showWeekOfYear","_ref5$disableDate","disableDate","minDate","maxDate","_ref5$dayjsLocale","_ref5$cancelRangeSele","cancelRangeSelectLimit","prependDay","appendDay","maxDays","daysArr","today","currentDay","push","text","active","disabled","isFunction","firstDayOfMonth","lastDayOfMonth","dayjsObj","getDay","setDate","unshift","toString","additional","abs","LEN","dataList","forEach","_objectSpread","getQuarters","_ref6","_ref6$disableDate","quarterLocal","_ref6$dayjsLocale","_ref6$cancelRangeSele","quarterArr","getYears","_ref7","_ref7$disableDate","_ref7$dayjsLocale","_ref7$cancelRangeSele","startYear","parseInt","endYear","yearArr","getMonths","params","_params$disableDate","monthLocal","_params$dayjsLocale","_params$cancelRangeSe","MonthArr","flagActive","data","_ref8","args","start","end","hoverStart","hoverEnd","_args$type","_args$isRange","isRange","_args$multiple","multiple","row","item","_item","_value$some","some","val","isStart","isHoverStart","isEnd","isHoverEnd","highlight","startOfRange","endOfRange","hoverHighlight","hoverStartOfRange","hoverEndOfRange","extractTimeFormat","dateFormat","trim","extractTimeObj","timeFormat","matchedMeridiem","match","timeReg","matchedTimeStr","_matchedTimeStr$0$spl","split","_matchedTimeStr$0$spl2","_slicedToArray","_matchedTimeStr$0$spl3","_matchedTimeStr$0$spl4","_matchedTimeStr$0$spl5","_matchedTimeStr$0$spl6","isEnabledDate","_ref9","mode","availableMode","isEnabled","isArray","formattedDisabledDate","parseToDayjs","isIncludes","from","to","before","after","compareMin","compareMax","covertToDate","valueType","TIME_FORMAT","timeOfDay","dateText","test","isString","yearStr","weekStr","weekFormatStr","firstWeek","weekCounts","nextWeek","quarterStr","quarterFormatStr","firstQuarter","nextQuarter","isValid","log","error","formatRange","newDate","targetFormat","autoSwap","dayjsDateList","da","formatSingle","dayJsDate","isValidDate","every","v","formatDate","_ref3$dayjsLocale","calcFormatTime","time","timeArr","timeFormatArr","join","formatTime","defaultTime","_result","getDefaultFormat","_ref4$mode","enableTimePicker","initYearMonthTime","_ref5$mode","_ref5$timeFormat","defaultYearMonthTime"],"mappings":"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