UNPKG

tdesign-mobile-vue

Version:
1 lines 4.28 kB
{"version":3,"file":"utils.mjs","sources":["../../../../src/_common/js/calendar/utils.ts"],"sourcesContent":["import dayjs from 'dayjs';\n\nimport type { CalendarRange, CalendarValue } from './types';\nimport { MIN_YEAR } from './constants';\n\n/**\n * 根据当前时间创建一个默认日期\n * @returns 当前日期的dayjs对象\n */\nexport const createDefaultCurDate = (): dayjs.Dayjs => dayjs(dayjs().format('YYYY-MM-DD'));\n\n/**\n * 处理`range`参数输入值并生成日历范围\n * @param range 用于设置日历的年月份显示范围,[范围开始,范围结束]\n * @returns 处理完成的日历范围\n */\nexport const handleRange = (range?: Array<CalendarValue>): { from: CalendarValue; to: CalendarValue } | null => {\n // 检查范围边界\n const parseRangeBoundary = (value: CalendarRange['from'] | CalendarRange['to'] | null | undefined) => {\n if (value === undefined || value === null) {\n return null;\n }\n const parsed = dayjs(value);\n if (!parsed.isValid()) {\n return null;\n }\n return {\n parsed, // dayjs 对象\n original: value as CalendarRange['from'] | CalendarRange['to'], // 原始值\n };\n };\n\n if (!range || range.length < 2) {\n return null;\n }\n const [v1, v2] = range;\n const start = parseRangeBoundary(v1);\n const end = parseRangeBoundary(v2);\n\n if (!start && !end) {\n return null;\n }\n\n // 未指定边界上/下限时使用默认值\n const fallback = (edge: 'from' | 'to'): { parsed: dayjs.Dayjs; original: string } => {\n let fallbackParsed = dayjs(MIN_YEAR);\n if (edge === 'to') {\n fallbackParsed = createDefaultCurDate();\n }\n return {\n parsed: fallbackParsed,\n original: fallbackParsed.format('YYYY-MM-DD'),\n };\n };\n\n let fromBoundary = start ?? fallback('from');\n let toBoundary = end ?? fallback('to');\n\n if (fromBoundary.parsed.isAfter(toBoundary.parsed)) {\n [fromBoundary, toBoundary] = [toBoundary, fromBoundary]; // 当前一项日期大于后一项时交换两值以确保边界逻辑正确\n }\n\n return {\n from: fromBoundary.original,\n to: toBoundary.original,\n };\n};\n"],"names":["createDefaultCurDate","dayjs","format","handleRange","range","parseRangeBoundary","value","parsed","isValid","original","length","_range","_slicedToArray","v1","v2","start","end","fallback","edge","fallbackParsed","MIN_YEAR","fromBoundary","toBoundary","isAfter","_ref","from","to"],"mappings":";;;;;;;;;;;;;AASaA,IAAAA,uBAAuB,SAAvBA;SAA0CC,KAAA,CAAMA,OAAQ,CAAAC,MAAA,CAAO,YAAY,CAAC,CAAA,CAAA;AAAA,EAAA;IAO5EC,WAAA,GAAc,SAAdA,WAAAA,CAAeC,KAAoF,EAAA;AAExG,EAAA,IAAAC,kBAAA,GAAqB,SAArBA,kBAAAA,CAAsBC,KAA0E,EAAA;IAChG,IAAAA,KAAA,KAAU,KAAa,CAAA,IAAAA,KAAA,KAAU,IAAM,EAAA;AAClC,MAAA,OAAA,IAAA,CAAA;AACT,KAAA;AACM,IAAA,IAAAC,MAAA,GAASN,MAAMK,KAAK,CAAA,CAAA;AACtB,IAAA,IAAA,CAACC,MAAO,CAAAC,OAAA,EAAW,EAAA;AACd,MAAA,OAAA,IAAA,CAAA;AACT,KAAA;IACO,OAAA;AACLD,MAAAA,MAAA,EAAAA,MAAA;AACAE,MAAAA,QAAU,EAAAH,KAAAA;KACZ,CAAA;GACF,CAAA;EAEA,IAAI,CAACF,KAAA,IAASA,KAAM,CAAAM,MAAA,GAAS,CAAG,EAAA;AACvB,IAAA,OAAA,IAAA,CAAA;AACT,GAAA;AACM,EAAA,IAAAC,MAAA,GAAAC,cAAA,CAAWR,KAAA,EAAA,CAAA,CAAA;AAAVS,IAAAA,EAAI,GAAAF,MAAA,CAAA,CAAA,CAAA;AAAAG,IAAAA,EAAE,GAAAH,MAAA,CAAA,CAAA,CAAA,CAAA;AACP,EAAA,IAAAI,KAAA,GAAQV,mBAAmBQ,EAAE,CAAA,CAAA;AAC7B,EAAA,IAAAG,GAAA,GAAMX,mBAAmBS,EAAE,CAAA,CAAA;AAE7B,EAAA,IAAA,CAACC,KAAS,IAAA,CAACC,GAAK,EAAA;AACX,IAAA,OAAA,IAAA,CAAA;AACT,GAAA;AAGM,EAAA,IAAAC,QAAA,GAAW,SAAXA,QAAAA,CAAYC,IAAmE,EAAA;AAC/E,IAAA,IAAAC,cAAA,GAAiBlB,MAAMmB,QAAQ,CAAA,CAAA;IACnC,IAAIF,SAAS,IAAM,EAAA;MACjBC,cAAA,GAAiBnB,oBAAqB,EAAA,CAAA;AACxC,KAAA;IACO,OAAA;AACLO,MAAAA,MAAQ,EAAAY,cAAA;AACRV,MAAAA,QAAA,EAAUU,cAAe,CAAAjB,MAAA,CAAO,YAAY,CAAA;KAC9C,CAAA;GACF,CAAA;EAEI,IAAAmB,YAAA,GAAeN,KAAS,KAATA,IAAAA,IAAAA,KAAS,KAATA,KAAAA,CAAAA,GAAAA,KAAS,GAAAE,QAAA,CAAS,MAAM,CAAA,CAAA;EACvC,IAAAK,UAAA,GAAaN,GAAO,KAAPA,IAAAA,IAAAA,GAAO,KAAPA,KAAAA,CAAAA,GAAAA,GAAO,GAAAC,QAAA,CAAS,IAAI,CAAA,CAAA;EAErC,IAAII,YAAa,CAAAd,MAAA,CAAOgB,OAAQ,CAAAD,UAAA,CAAWf,MAAM,CAAG,EAAA;AAAA,IAAA,IAAAiB,IAAA,GACrB,CAACF,YAAYD,YAAY,CAAA,CAAA;AAArDA,IAAAA,YAAc,GAAAG,IAAA,CAAA,CAAA,CAAA,CAAA;AAAAF,IAAAA,UAAU,GAAAE,IAAA,CAAA,CAAA,CAAA,CAAA;AAC3B,GAAA;EAEO,OAAA;IACLC,MAAMJ,YAAa,CAAAZ,QAAA;IACnBiB,IAAIJ,UAAW,CAAAb,QAAAA;GACjB,CAAA;AACF;;;;"}