@yoka-ui/ui 1.0.2 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/@Docs-yoka/exports.generated.md +3 -3
  2. package/dist/es/business/DrawerPageInfo/index.js +2 -2
  3. package/dist/es/business/DrawerPageInfo/index.js.map +2 -2
  4. package/dist/es/components/YkDateRangePicker/YkDateRangePicker.mdx +14 -0
  5. package/dist/es/components/YkDateRangePicker/index.d.ts +4 -0
  6. package/dist/es/components/YkDateRangePicker/index.js +13 -3
  7. package/dist/es/components/YkDateRangePicker/index.js.map +2 -2
  8. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js +9 -60
  9. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js.map +3 -3
  10. package/dist/es/components/YkRangeDateWithVS/index.d.ts +2 -2
  11. package/dist/es/components/YkRangeDateWithVS/index.js +3 -2
  12. package/dist/es/components/YkRangeDateWithVS/index.js.map +2 -2
  13. package/dist/es/components/YkRangeDateWithVS/index.module.less +4 -23
  14. package/dist/es/components/YkRangeTimeWithRecent/index.d.ts +18 -1
  15. package/dist/es/components/YkRangeTimeWithRecent/index.js +7 -27
  16. package/dist/es/components/YkRangeTimeWithRecent/index.js.map +2 -2
  17. package/dist/es/index.less +1 -1
  18. package/dist/es/layout/YkDrawer/index.js +1 -2
  19. package/dist/es/layout/YkDrawer/index.js.map +2 -2
  20. package/dist/es/utils/ykStorybookDoc.js +1 -1
  21. package/dist/es/utils/ykStorybookDoc.js.map +1 -1
  22. package/dist/lib/business/DrawerPageInfo/index.js +1 -1
  23. package/dist/lib/business/DrawerPageInfo/index.js.map +2 -2
  24. package/dist/lib/components/YkDateRangePicker/YkDateRangePicker.mdx +14 -0
  25. package/dist/lib/components/YkDateRangePicker/index.d.ts +4 -0
  26. package/dist/lib/components/YkDateRangePicker/index.js +13 -3
  27. package/dist/lib/components/YkDateRangePicker/index.js.map +2 -2
  28. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js +8 -59
  29. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js.map +3 -3
  30. package/dist/lib/components/YkRangeDateWithVS/index.d.ts +2 -2
  31. package/dist/lib/components/YkRangeDateWithVS/index.js +5 -4
  32. package/dist/lib/components/YkRangeDateWithVS/index.js.map +3 -3
  33. package/dist/lib/components/YkRangeDateWithVS/index.module.less +4 -23
  34. package/dist/lib/components/YkRangeTimeWithRecent/index.d.ts +18 -1
  35. package/dist/lib/components/YkRangeTimeWithRecent/index.js +7 -27
  36. package/dist/lib/components/YkRangeTimeWithRecent/index.js.map +2 -2
  37. package/dist/lib/index.less +1 -1
  38. package/dist/lib/layout/YkDrawer/index.js +1 -2
  39. package/dist/lib/layout/YkDrawer/index.js.map +2 -2
  40. package/dist/lib/utils/ykStorybookDoc.js +1 -1
  41. package/dist/lib/utils/ykStorybookDoc.js.map +1 -1
  42. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/YkRangeDateWithVS/YkRangeDateWithVSRange.tsx"],
4
- "sourcesContent": ["import type { DatePickerProps, TimeRangePickerProps } from 'antd';\nimport { Anchor, ConfigProvider, DatePicker, Flex, Popover, Tooltip, theme } from 'antd';\nimport classNames from 'classnames';\nimport dayjs, { Dayjs } from 'dayjs';\nimport { findIndex, isEqual } from 'lodash';\nimport React, { useEffect, useMemo, useRef, useState, type ReactNode } from 'react';\nimport styles from './styles';\n\ntype DateValue = Dayjs | null;\ntype RangeValue = [DateValue, DateValue] | null;\ntype dateOptionType = {\n label: string;\n value: () => RangeValue;\n};\n\nexport type YkRangeDateWithVSRangeProps = {\n timeType: string;\n rangeDate: RangeValue;\n timeOptions: string[];\n dateCompare: boolean;\n onChange: (value: { timeType: string; rangeDate: RangeValue }) => void;\n getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;\n disabledDate?: DatePickerProps['disabledDate'];\n presetsOptions?: { label: string; value: () => [Dayjs, Dayjs] }[];\n /** 1: 运营节点 2: 广告节点 */\n milestoneFilterType?: 1 | 2;\n /** 项目节点列表(日历侧栏与日期标记) */\n milestone?: ProjectNodeItem[];\n /** 节假日(与里程碑一并用于日期 cell 标记) */\n holidays?: ProjectNodeItem[];\n /** 自定义主区间输入框展示文案(string / ReactNode);传入后默认日期格式文案由覆盖层展示,仍通过面板改期 */\n rangeDisplayLabel?: ReactNode;\n};\n\nconst itemCheckIconClass = (className: string) => {\n return classNames('iconfont', className, styles.active);\n};\n\nconst past: (n: number, picker: 'week' | 'day' | 'month' | 'year', today?: boolean) => RangeValue = (\n n,\n picker,\n today = false,\n) => [dayjs().subtract(n, picker).startOf(picker), today ? dayjs() : dayjs().subtract(n, picker).endOf(picker)];\n\nconst dateOptions: dateOptionType[] = [\n { label: '今天', value: () => past(0, 'day', true) },\n { label: '昨天', value: () => past(1, 'day') },\n { label: '本周', value: () => past(0, 'week', true) },\n { label: '上周', value: () => past(1, 'week') },\n { label: '本月', value: () => past(0, 'month', true) },\n { label: '上月', value: () => past(1, 'month') },\n { label: '今年', value: () => past(0, 'year', true) },\n { label: '去年', value: () => past(1, 'year') },\n { label: '近7天', value: () => past(6, 'day', true) },\n { label: '近14天', value: () => past(13, 'day', true) },\n { label: '近30天', value: () => past(29, 'day', true) },\n { label: '近60天', value: () => past(59, 'day', true) },\n { label: '近90天', value: () => past(89, 'day', true) },\n { label: '近180天', value: () => past(179, 'day', true) },\n {\n label: '前7天',\n value: () => [dayjs().subtract(7, 'day').startOf('day'), dayjs().subtract(1, 'day').endOf('day')],\n },\n {\n label: '前14天',\n value: () => [dayjs().subtract(14, 'day').startOf('day'), dayjs().subtract(1, 'day').endOf('day')],\n },\n {\n label: '前30天',\n value: () => [dayjs().subtract(30, 'day').startOf('day'), dayjs().subtract(1, 'day').endOf('day')],\n },\n {\n label: '前60天',\n value: () => [dayjs().subtract(60, 'day').startOf('day'), dayjs().subtract(1, 'day').endOf('day')],\n },\n];\nconst weekOptions: dateOptionType[] = [\n { label: '本周', value: () => past(0, 'week', true) },\n { label: '上周', value: () => past(1, 'week') },\n { label: '近3周', value: () => past(2, 'week', true) },\n { label: '近4周', value: () => past(3, 'week', true) },\n { label: '近5周', value: () => past(4, 'week', true) },\n { label: '近6周', value: () => past(5, 'week', true) },\n { label: '近7周', value: () => past(6, 'week', true) },\n { label: '近14周', value: () => past(13, 'week', true) },\n { label: '近30周', value: () => past(29, 'week', true) },\n { label: '近60周', value: () => past(59, 'week', true) },\n {\n label: '前2周',\n value: () => [dayjs().subtract(2, 'week').startOf('week'), dayjs().subtract(1, 'week').endOf('week')],\n },\n {\n label: '前3周',\n value: () => [dayjs().subtract(3, 'week').startOf('week'), dayjs().subtract(1, 'week').endOf('week')],\n },\n {\n label: '前4周',\n value: () => [dayjs().subtract(4, 'week').startOf('week'), dayjs().subtract(1, 'week').endOf('week')],\n },\n {\n label: '前5周',\n value: () => [dayjs().subtract(5, 'week').startOf('week'), dayjs().subtract(1, 'week').endOf('week')],\n },\n];\nconst monthOptions: dateOptionType[] = [\n { label: '本月', value: () => past(0, 'month', true) },\n { label: '上月', value: () => past(1, 'month') },\n { label: '今年', value: () => past(0, 'year', true) },\n { label: '去年', value: () => past(1, 'year') },\n { label: '近3月', value: () => past(2, 'month', true) },\n { label: '近4月', value: () => past(3, 'month', true) },\n { label: '近5月', value: () => past(4, 'month', true) },\n { label: '近6月', value: () => past(5, 'month', true) },\n { label: '近7月', value: () => past(6, 'month', true) },\n { label: '近8月', value: () => past(7, 'month', true) },\n { label: '近9月', value: () => past(8, 'month', true) },\n { label: '近10月', value: () => past(9, 'month', true) },\n { label: '近11月', value: () => past(10, 'month', true) },\n { label: '近12月', value: () => past(11, 'month', true) },\n {\n label: '前2月',\n value: () => [dayjs().subtract(2, 'month').startOf('month'), dayjs().subtract(1, 'month').endOf('month')],\n },\n {\n label: '前3月',\n value: () => [dayjs().subtract(3, 'month').startOf('month'), dayjs().subtract(1, 'month').endOf('month')],\n },\n {\n label: '前4月',\n value: () => [dayjs().subtract(4, 'month').startOf('month'), dayjs().subtract(1, 'month').endOf('month')],\n },\n {\n label: '前5月',\n value: () => [dayjs().subtract(5, 'month').startOf('month'), dayjs().subtract(1, 'month').endOf('month')],\n },\n {\n label: '前6月',\n value: () => [dayjs().subtract(6, 'month').startOf('month'), dayjs().subtract(1, 'month').endOf('month')],\n },\n {\n label: '前7月',\n value: () => [dayjs().subtract(7, 'month').startOf('month'), dayjs().subtract(1, 'month').endOf('month')],\n },\n {\n label: '前8月',\n value: () => [dayjs().subtract(8, 'month').startOf('month'), dayjs().subtract(1, 'month').endOf('month')],\n },\n {\n label: '前9月',\n value: () => [dayjs().subtract(9, 'month').startOf('month'), dayjs().subtract(1, 'month').endOf('month')],\n },\n {\n label: '前10月',\n value: () => [dayjs().subtract(10, 'month').startOf('month'), dayjs().subtract(1, 'month').endOf('month')],\n },\n {\n label: '前11月',\n value: () => [dayjs().subtract(11, 'month').startOf('month'), dayjs().subtract(1, 'month').endOf('month')],\n },\n {\n label: '前12月',\n value: () => [dayjs().subtract(12, 'month').startOf('month'), dayjs().subtract(1, 'month').endOf('month')],\n },\n];\nconst startWeekOption: dateOptionType[] = [\n { label: '近7天', value: () => past(6, 'day', true) },\n { label: '近14天', value: () => past(13, 'day', true) },\n { label: '近21天', value: () => past(20, 'day', true) },\n { label: '近28天', value: () => past(27, 'day', true) },\n { label: '近98天', value: () => past(97, 'day', true) },\n { label: '近210天', value: () => past(209, 'day', true) },\n];\nconst startMonthOption: dateOptionType[] = [\n { label: '近30天', value: () => past(29, 'day', true) },\n { label: '近60天', value: () => past(59, 'day', true) },\n { label: '近90天', value: () => past(89, 'day', true) },\n { label: '近120天', value: () => past(119, 'day', true) },\n { label: '近150天', value: () => past(149, 'day', true) },\n { label: '近180天', value: () => past(179, 'day', true) },\n { label: '近210天', value: () => past(209, 'day', true) },\n { label: '近240天', value: () => past(239, 'day', true) },\n { label: '近270天', value: () => past(269, 'day', true) },\n { label: '近300天', value: () => past(299, 'day', true) },\n { label: '近330天', value: () => past(329, 'day', true) },\n { label: '近360天', value: () => past(359, 'day', true) },\n];\n\nconst pickerMap: {\n [key: string]: 'date' | 'week' | 'month';\n} = {\n 按自然周: 'week',\n 按自然月: 'month',\n 按周: 'week',\n 按月: 'month',\n};\n\nconst optionsMap: {\n [key: string]: {\n options: dateOptionType[];\n default: () => RangeValue;\n };\n} = {\n 按日: { options: dateOptions, default: () => past(14, 'day', true) },\n 按周: { options: weekOptions, default: () => past(13, 'week', true) },\n 按月: { options: monthOptions, default: () => past(11, 'month', true) },\n 按自然周: { options: weekOptions, default: () => past(13, 'week', true) },\n 按自然月: { options: monthOptions, default: () => past(11, 'month', true) },\n 按起始周: {\n options: startWeekOption,\n default: () => past(14 * 7 - 1, 'day', true),\n },\n 按起始月: {\n options: startMonthOption,\n default: () => past(12 * 30 - 1, 'day', true),\n },\n};\n\nconst YkRangeDateWithVSRange: React.FC<YkRangeDateWithVSRangeProps> = ({\n timeType,\n rangeDate,\n timeOptions,\n dateCompare,\n getPopupContainer,\n onChange,\n disabledDate = undefined,\n presetsOptions = undefined,\n milestoneFilterType = 1,\n milestone = [],\n holidays = [],\n rangeDisplayLabel,\n}) => {\n const { token } = theme.useToken();\n const hasCustomRangeDisplay = rangeDisplayLabel != null;\n const triggerWrapRef = useRef<HTMLDivElement>(null);\n const [groupOpen, setGroupOpen] = useState(false);\n // 判断数据是否变更,若未变更,则初始化日期\n const [isChange, setIsChange] = useState(false);\n const filterType = milestoneFilterType;\n const [cacheRangeDate, setCacheRangeDate] = useState<RangeValue>([null, null]);\n const [cacheTimeType, setCacheTimeType] = useState<string>(timeType);\n const [groupIndex, setGroupIndex] = useState<number | null>(null);\n const picker = cacheTimeType && pickerMap[cacheTimeType] ? pickerMap[cacheTimeType] : 'date';\n const options = presetsOptions\n ? presetsOptions\n : optionsMap[cacheTimeType]\n ? optionsMap[cacheTimeType].options\n : optionsMap['按日'].options;\n\n // 周报月报不显示项目节点(但外面选了周月,里面有按日的type,选按日时依旧可以显示项目节点,例如分包详情里的日期组件)\n const showProjectNode = useMemo(() => {\n return (\n (!timeType.includes('周') &&\n !timeType.includes('月') &&\n !cacheTimeType.includes('周') &&\n !cacheTimeType.includes('月')) ||\n cacheTimeType.includes('日')\n );\n }, [timeType, cacheTimeType]);\n\n const timeOptionAnchors =\n timeOptions?.map((v) => {\n return {\n key: v,\n title: v,\n href: v,\n };\n }) || [];\n\n // 初始化日期与日周月\n const initRangeDate = () => {\n setCacheRangeDate(rangeDate);\n setCacheTimeType(timeType);\n setIsChange(false);\n };\n\n useEffect(() => {\n if (groupOpen) {\n setGroupIndex(\n findIndex(options, (item) => {\n return isEqual(\n item.value()?.map((v) => v?.format('YYYY-MM-DD')),\n cacheRangeDate?.map((v) => v?.format('YYYY-MM-DD')),\n );\n }),\n );\n } else if (!isChange) {\n initRangeDate();\n }\n }, [cacheTimeType, groupOpen]);\n\n useEffect(() => {\n initRangeDate();\n }, [rangeDate, timeType]);\n\n /** 切换日/周/月后 rc-picker 嵌套面板偶发无法收到「点击外部」;与 window 捕获阶段兜底关闭对齐 */\n useEffect(() => {\n if (!groupOpen) return;\n const onPointerDownCapture = (e: PointerEvent) => {\n const el = e.target;\n if (!(el instanceof Element)) return;\n if (triggerWrapRef.current?.contains(el)) return;\n if (el.closest('[data-yk-range-date-with-vs-panel]')) return;\n if (styles.globalItemDatePanel && el.closest(`.${styles.globalItemDatePanel}`)) return;\n setGroupOpen(false);\n };\n window.addEventListener('pointerdown', onPointerDownCapture, true);\n return () => window.removeEventListener('pointerdown', onPointerDownCapture, true);\n }, [groupOpen]);\n\n const customFormat: DatePickerProps['format'] = (value) => {\n return `${dayjs(value).format('YYYY-MM-DD')}`;\n };\n\n const milestoneSelected = (id: number) => {\n const dates = milestone.find((m) => m.id === id)?.range_day.map((m) => dayjs(m)) || [];\n let [start, end] = dates;\n if (end > dayjs().endOf('day')) end = dayjs().endOf('day');\n setIsChange(true);\n setCacheRangeDate([start, end]);\n onChange({\n rangeDate: [start, end],\n timeType: cacheTimeType,\n });\n setGroupOpen(false);\n };\n\n const checkPresets = (v) => {\n if (\n cacheRangeDate &&\n dayjs(v[0]).format('YYYY-MM-DD') === dayjs(cacheRangeDate[0]).format('YYYY-MM-DD') &&\n dayjs(v[1]).format('YYYY-MM-DD') === dayjs(cacheRangeDate[1]).format('YYYY-MM-DD')\n ) {\n return true;\n } else {\n return false;\n }\n };\n\n // 活动详情内容\n const popoverContent = (event: ProjectNodeItem) => {\n return (\n <div\n style={{\n height: 30,\n lineHeight: '30px',\n textAlign: 'left',\n color: '#666',\n padding: '0 10px 0 10px',\n fontSize: 12,\n }}\n >\n {event.tag +\n ' ' +\n (event.range_day[0] === event.range_day[1] ? event.range_day[0] : event.range_day.join(' ~ '))}\n </div>\n );\n };\n\n const milestoneListFilter = milestone\n .filter((f) => f.type === filterType)\n .filter((f) => dayjs(f.range_day[0]) <= dayjs().endOf('day'))\n .filter((f) => dayjs(f.range_day[0]) >= dayjs().startOf('year').subtract(1, 'year'))\n .sort(\n (a: ProjectNodeItem, b: ProjectNodeItem) => dayjs(b.range_day[0]).valueOf() - dayjs(a.range_day[0]).valueOf(),\n );\n const milestoneList = (\n <div className={styles.milestoneListBox}>\n {milestoneListFilter.map((v) => {\n // Popover 须高于 DatePicker 弹层(约 zIndexPopupBase+50),否则悬停内容被挡在面板下\n return (\n <Popover\n key={v.id}\n trigger=\"hover\"\n placement=\"right\"\n zIndex={token.zIndexPopupBase + 120}\n getPopupContainer={() => document.body}\n styles={{\n root: {\n // width: 200,\n },\n body: {\n borderRadius: 2,\n padding: 0,\n },\n }}\n content={popoverContent(v)}\n >\n <div\n data-track\n id={`milestoneListItem-${v.id}`}\n key={v.id}\n className={classNames(\n styles.milestoneListItem,\n checkPresets(v.range_day.map((m) => dayjs(m))) && styles.milestoneListActive,\n )}\n style={{\n textAlign: 'left',\n padding: '0 10px',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n }}\n onClick={() => {\n milestoneSelected(v.id as number);\n }}\n >\n {v.tag}\n </div>\n </Popover>\n );\n })}\n </div>\n );\n\n const dateGourpRender = (panelNode: React.ReactNode) => {\n return (\n <div data-yk-range-date-with-vs-panel>\n {dateCompare && (\n <div className={styles.ykRangeDateWithVsHeader}>\n <Anchor\n className={styles.ykRangeDateWithVsHeaderAnchor}\n direction=\"horizontal\"\n items={timeOptionAnchors}\n getCurrentAnchor={() => cacheTimeType}\n onClick={(event, link) => {\n event.preventDefault();\n event.stopPropagation();\n setCacheTimeType(link.href);\n const defaultFn = optionsMap[link.href] ? optionsMap[link.href].default : optionsMap['按日'].default;\n setCacheRangeDate(defaultFn());\n }}\n />\n </div>\n )}\n <Flex>\n {milestoneListFilter && milestoneListFilter.length > 0 && showProjectNode ? (\n <div className={classNames(styles.milestoneList, 'scroll-reset')}>{milestoneList}</div>\n ) : null}\n <div className={styles.ykRangeDateWithVsGroup}>\n <div className={styles.ykRangeDateWithVsPanel}>{panelNode}</div>\n </div>\n </Flex>\n </div>\n );\n };\n\n // 当节点有已选时,不高亮presetsNode\n let hasSelect = false;\n if (milestoneListFilter && milestoneListFilter.length > 0) {\n milestoneListFilter.forEach((item) => {\n if (checkPresets(item.range_day.map((m) => dayjs(m))) && picker === 'date' && showProjectNode) {\n hasSelect = true;\n }\n });\n }\n\n const presetsNode = options.map((v, i) => {\n return {\n label: (\n <div\n className={classNames(\n 'ant-picker-presets-li',\n groupIndex === i && !hasSelect && 'ant-picker-presets-li-item',\n )}\n onClick={() => {\n setGroupIndex(i);\n }}\n >\n {v.label}\n </div>\n ),\n value: v.value,\n };\n }) as TimeRangePickerProps['presets'];\n\n /** 默认挂到 body,避免父级 overflow/transform/弹层导致点击判定异常或面板误关;业务可继续覆盖 */\n const resolvePopupContainer = getPopupContainer ?? (() => document.body);\n\n // 项目节点与节假日\n const dateTags: ProjectNodeItem[] = (milestoneListFilter || []).concat(holidays || []).map((m) => {\n return {\n ...m,\n date: m.range_day[0],\n };\n });\n const dateTagsMap = {};\n dateTags.forEach((m: any) => {\n if (dateTagsMap[m.date]) {\n dateTagsMap[m.date].push(m);\n } else {\n dateTagsMap[m.date] = [m];\n }\n });\n\n const eventsTooltips = (date: Dayjs) => {\n const dateStr = dayjs(date).format('YYYY-MM-DD');\n const tags = dateTagsMap[dateStr] || [];\n // 只展示最新创建的节点\n const lastTag =\n tags.length > 0\n ? tags.reduce((prev: ProjectNodeItem, curr: ProjectNodeItem) =>\n dayjs(prev.created_at).isAfter(dayjs(curr.created_at)) ? prev : curr,\n )\n : null;\n return lastTag ? (\n <Tooltip\n placement=\"right\"\n title={\n lastTag.tag +\n ' ' +\n (lastTag.range_day[0] === lastTag.range_day[1] ? lastTag.range_day[0] : lastTag.range_day.join(' ~ '))\n }\n color=\"#fff\"\n styles={{\n root: {\n maxWidth: 270,\n },\n body: {\n borderRadius: 2,\n color: '#666',\n },\n }}\n >\n <div key={lastTag.id} className={styles.ykRangeDateWithVsTag}>\n {lastTag.tag}\n </div>\n </Tooltip>\n ) : (\n <></>\n );\n };\n\n const cellRender: DatePickerProps<Dayjs>['cellRender'] = (current, info) => {\n if (info.type !== 'date') {\n return info.originNode;\n }\n if (typeof current === 'number' || typeof current === 'string') {\n return <div className=\"ant-picker-cell-inner\">{current}</div>;\n }\n return (\n <div\n className={classNames('ant-picker-cell-inner')}\n style={{ width: 45, height: 40, lineHeight: holidays && holidays.length > 0 ? '26px' : '40px', fontSize: 12 }}\n >\n {current.date()}\n {holidays && holidays.length > 0 && (\n <div\n style={{\n position: 'absolute',\n bottom: 2,\n height: 16,\n width: '100%',\n fontSize: '12px',\n lineHeight: '16px',\n whiteSpace: 'nowrap',\n }}\n >\n {eventsTooltips(current)}\n </div>\n )}\n </div>\n );\n };\n\n const rangePicker = (\n <DatePicker.RangePicker\n id=\"ykRangeDateWithVsRange\"\n classNames={{\n popup: {\n root: styles.globalItemDatePanel,\n },\n }}\n styles={{\n root: {\n opacity: hasCustomRangeDisplay ? 0 : 1,\n },\n }}\n getPopupContainer={resolvePopupContainer}\n disabledDate={\n disabledDate\n ? disabledDate\n : (current) => {\n return current && current > dayjs().endOf('day');\n }\n }\n inputReadOnly={hasCustomRangeDisplay}\n open={groupOpen}\n picker={picker}\n cellRender={cellRender}\n value={cacheRangeDate}\n panelRender={dateGourpRender}\n presets={presetsNode}\n variant=\"borderless\"\n allowClear={false}\n format={customFormat}\n showWeek={false}\n separator=\"~\"\n className={styles.globalItemDate}\n suffixIcon={false}\n onCalendarChange={(dates) => {\n if (!dates) return;\n const [v0, v1] = dates;\n setIsChange(true);\n const start = v0 ? v0.startOf(picker) : null;\n let end: DateValue = null;\n if (v1) {\n const endRaw = v1.endOf(picker);\n end = endRaw > dayjs() ? dayjs() : endRaw;\n }\n setCacheRangeDate([start, end]);\n }}\n onChange={(val) => {\n if (!val || (!val[0] && !val[1])) {\n setIsChange(true);\n setCacheRangeDate([null, null]);\n onChange({\n rangeDate: [null, null],\n timeType: cacheTimeType,\n });\n return;\n }\n const [v0, v1] = val;\n if (v0 && !v1) {\n setIsChange(true);\n setCacheRangeDate([v0.startOf(picker), null]);\n return;\n }\n if (!v0 && v1) {\n setIsChange(true);\n const end = v1.endOf(picker) > dayjs() ? dayjs() : v1.endOf(picker);\n setCacheRangeDate([null, end]);\n return;\n }\n const start = v0.startOf(picker);\n const end = v1.endOf(picker) > dayjs() ? dayjs() : v1.endOf(picker);\n setIsChange(true);\n setCacheRangeDate([start, end]);\n onChange({\n rangeDate: [start, end],\n timeType: cacheTimeType,\n });\n }}\n onOpenChange={(open) => {\n setGroupOpen(open);\n }}\n />\n );\n\n return (\n <div ref={triggerWrapRef} className={classNames(styles.globalMl, styles.globalItem)}>\n {dateCompare && !!options.length && (\n <label onClick={() => setGroupOpen(true)} className={styles.globalItemDateTerm}>\n <span style={{ marginRight: '5px', fontSize: 14 }}>{timeType}</span>\n <i style={{ marginRight: '10px' }} className={classNames('iconfont icon-xiala1')}></i>\n </label>\n )}\n <i className={itemCheckIconClass('icon-riqi1')} style={{ fontSize: 14 }} />\n <ConfigProvider\n theme={{\n components: {\n DatePicker: {\n cellWidth: 60,\n cellHeight: 40,\n timeColumnWidth: 40,\n },\n },\n token: {},\n }}\n >\n {hasCustomRangeDisplay ? (\n <div className={styles.rangePickerCustomDisplay}>\n <span className={styles.rangePickerCustomDisplayLabel}>{rangeDisplayLabel}</span>\n {rangePicker}\n </div>\n ) : (\n rangePicker\n )}\n </ConfigProvider>\n </div>\n );\n};\n\nexport default YkRangeDateWithVSRange;\n"],
5
- "mappings": "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",
6
- "names": ["end"]
4
+ "sourcesContent": ["import type { DatePickerProps, TimeRangePickerProps } from 'antd';\nimport { Anchor, ConfigProvider, DatePicker, Flex, Popover, Tooltip, theme } from 'antd';\nimport classNames from 'classnames';\nimport dayjs, { Dayjs } from 'dayjs';\nimport { findIndex, isEqual } from 'lodash';\nimport React, { useEffect, useMemo, useState, type ReactNode } from 'react';\nimport styles from './styles';\n\ntype DateValue = Dayjs | null;\ntype RangeValue = [DateValue, DateValue] | null;\ntype dateOptionType = {\n label: string;\n value: () => RangeValue;\n};\n\nexport type YkRangeDateWithVSRangeProps = {\n timeType: string;\n rangeDate: RangeValue;\n timeOptions: string[];\n dateCompare: boolean;\n onChange: (value: { timeType: string; rangeDate: RangeValue }) => void;\n getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;\n disabledDate?: DatePickerProps['disabledDate'];\n presetsOptions?: { label: string; value: () => [Dayjs, Dayjs] }[];\n /** 1: 运营节点 2: 广告节点 */\n milestoneFilterType?: 1 | 2;\n /** 项目节点列表(日历侧栏与日期标记) */\n milestone?: ProjectNodeItem[];\n /** 节假日(与里程碑一并用于日期 cell 标记) */\n holidays?: ProjectNodeItem[];\n /** 自定义主区间输入框展示文案(string / ReactNode);传入后默认日期格式文案由覆盖层展示,仍通过面板改期 */\n rangeDisplayLabel?: ReactNode;\n};\n\nconst itemCheckIconClass = (className: string) => {\n return classNames('iconfont', className, styles.active);\n};\n\nconst past: (n: number, picker: 'week' | 'day' | 'month' | 'year', today?: boolean) => RangeValue = (\n n,\n picker,\n today = false,\n) => [dayjs().subtract(n, picker).startOf(picker), today ? dayjs() : dayjs().subtract(n, picker).endOf(picker)];\n\nconst dateOptions: dateOptionType[] = [\n { label: '今天', value: () => past(0, 'day', true) },\n { label: '昨天', value: () => past(1, 'day') },\n { label: '本周', value: () => past(0, 'week', true) },\n { label: '上周', value: () => past(1, 'week') },\n { label: '本月', value: () => past(0, 'month', true) },\n { label: '上月', value: () => past(1, 'month') },\n { label: '今年', value: () => past(0, 'year', true) },\n { label: '去年', value: () => past(1, 'year') },\n { label: '近7天', value: () => past(6, 'day', true) },\n { label: '近14天', value: () => past(13, 'day', true) },\n { label: '近30天', value: () => past(29, 'day', true) },\n { label: '近60天', value: () => past(59, 'day', true) },\n { label: '近90天', value: () => past(89, 'day', true) },\n { label: '近180天', value: () => past(179, 'day', true) },\n {\n label: '前7天',\n value: () => [dayjs().subtract(7, 'day').startOf('day'), dayjs().subtract(1, 'day').endOf('day')],\n },\n {\n label: '前14天',\n value: () => [dayjs().subtract(14, 'day').startOf('day'), dayjs().subtract(1, 'day').endOf('day')],\n },\n {\n label: '前30天',\n value: () => [dayjs().subtract(30, 'day').startOf('day'), dayjs().subtract(1, 'day').endOf('day')],\n },\n {\n label: '前60天',\n value: () => [dayjs().subtract(60, 'day').startOf('day'), dayjs().subtract(1, 'day').endOf('day')],\n },\n];\nconst weekOptions: dateOptionType[] = [\n { label: '本周', value: () => past(0, 'week', true) },\n { label: '上周', value: () => past(1, 'week') },\n { label: '近3周', value: () => past(2, 'week', true) },\n { label: '近4周', value: () => past(3, 'week', true) },\n { label: '近5周', value: () => past(4, 'week', true) },\n { label: '近6周', value: () => past(5, 'week', true) },\n { label: '近7周', value: () => past(6, 'week', true) },\n { label: '近14周', value: () => past(13, 'week', true) },\n { label: '近30周', value: () => past(29, 'week', true) },\n { label: '近60周', value: () => past(59, 'week', true) },\n {\n label: '前2周',\n value: () => [dayjs().subtract(2, 'week').startOf('week'), dayjs().subtract(1, 'week').endOf('week')],\n },\n {\n label: '前3周',\n value: () => [dayjs().subtract(3, 'week').startOf('week'), dayjs().subtract(1, 'week').endOf('week')],\n },\n {\n label: '前4周',\n value: () => [dayjs().subtract(4, 'week').startOf('week'), dayjs().subtract(1, 'week').endOf('week')],\n },\n {\n label: '前5周',\n value: () => [dayjs().subtract(5, 'week').startOf('week'), dayjs().subtract(1, 'week').endOf('week')],\n },\n];\nconst monthOptions: dateOptionType[] = [\n { label: '本月', value: () => past(0, 'month', true) },\n { label: '上月', value: () => past(1, 'month') },\n { label: '今年', value: () => past(0, 'year', true) },\n { label: '去年', value: () => past(1, 'year') },\n { label: '近3月', value: () => past(2, 'month', true) },\n { label: '近4月', value: () => past(3, 'month', true) },\n { label: '近5月', value: () => past(4, 'month', true) },\n { label: '近6月', value: () => past(5, 'month', true) },\n { label: '近7月', value: () => past(6, 'month', true) },\n { label: '近8月', value: () => past(7, 'month', true) },\n { label: '近9月', value: () => past(8, 'month', true) },\n { label: '近10月', value: () => past(9, 'month', true) },\n { label: '近11月', value: () => past(10, 'month', true) },\n { label: '近12月', value: () => past(11, 'month', true) },\n {\n label: '前2月',\n value: () => [dayjs().subtract(2, 'month').startOf('month'), dayjs().subtract(1, 'month').endOf('month')],\n },\n {\n label: '前3月',\n value: () => [dayjs().subtract(3, 'month').startOf('month'), dayjs().subtract(1, 'month').endOf('month')],\n },\n {\n label: '前4月',\n value: () => [dayjs().subtract(4, 'month').startOf('month'), dayjs().subtract(1, 'month').endOf('month')],\n },\n {\n label: '前5月',\n value: () => [dayjs().subtract(5, 'month').startOf('month'), dayjs().subtract(1, 'month').endOf('month')],\n },\n {\n label: '前6月',\n value: () => [dayjs().subtract(6, 'month').startOf('month'), dayjs().subtract(1, 'month').endOf('month')],\n },\n {\n label: '前7月',\n value: () => [dayjs().subtract(7, 'month').startOf('month'), dayjs().subtract(1, 'month').endOf('month')],\n },\n {\n label: '前8月',\n value: () => [dayjs().subtract(8, 'month').startOf('month'), dayjs().subtract(1, 'month').endOf('month')],\n },\n {\n label: '前9月',\n value: () => [dayjs().subtract(9, 'month').startOf('month'), dayjs().subtract(1, 'month').endOf('month')],\n },\n {\n label: '前10月',\n value: () => [dayjs().subtract(10, 'month').startOf('month'), dayjs().subtract(1, 'month').endOf('month')],\n },\n {\n label: '前11月',\n value: () => [dayjs().subtract(11, 'month').startOf('month'), dayjs().subtract(1, 'month').endOf('month')],\n },\n {\n label: '前12月',\n value: () => [dayjs().subtract(12, 'month').startOf('month'), dayjs().subtract(1, 'month').endOf('month')],\n },\n];\nconst startWeekOption: dateOptionType[] = [\n { label: '近7天', value: () => past(6, 'day', true) },\n { label: '近14天', value: () => past(13, 'day', true) },\n { label: '近21天', value: () => past(20, 'day', true) },\n { label: '近28天', value: () => past(27, 'day', true) },\n { label: '近98天', value: () => past(97, 'day', true) },\n { label: '近210天', value: () => past(209, 'day', true) },\n];\nconst startMonthOption: dateOptionType[] = [\n { label: '近30天', value: () => past(29, 'day', true) },\n { label: '近60天', value: () => past(59, 'day', true) },\n { label: '近90天', value: () => past(89, 'day', true) },\n { label: '近120天', value: () => past(119, 'day', true) },\n { label: '近150天', value: () => past(149, 'day', true) },\n { label: '近180天', value: () => past(179, 'day', true) },\n { label: '近210天', value: () => past(209, 'day', true) },\n { label: '近240天', value: () => past(239, 'day', true) },\n { label: '近270天', value: () => past(269, 'day', true) },\n { label: '近300天', value: () => past(299, 'day', true) },\n { label: '近330天', value: () => past(329, 'day', true) },\n { label: '近360天', value: () => past(359, 'day', true) },\n];\n\nconst pickerMap: {\n [key: string]: 'date' | 'week' | 'month';\n} = {\n 按自然周: 'week',\n 按自然月: 'month',\n 按周: 'week',\n 按月: 'month',\n};\n\nconst optionsMap: {\n [key: string]: {\n options: dateOptionType[];\n default: () => RangeValue;\n };\n} = {\n 按日: { options: dateOptions, default: () => past(14, 'day', true) },\n 按周: { options: weekOptions, default: () => past(13, 'week', true) },\n 按月: { options: monthOptions, default: () => past(11, 'month', true) },\n 按自然周: { options: weekOptions, default: () => past(13, 'week', true) },\n 按自然月: { options: monthOptions, default: () => past(11, 'month', true) },\n 按起始周: {\n options: startWeekOption,\n default: () => past(14 * 7 - 1, 'day', true),\n },\n 按起始月: {\n options: startMonthOption,\n default: () => past(12 * 30 - 1, 'day', true),\n },\n};\n\nconst YkRangeDateWithVSRange: React.FC<YkRangeDateWithVSRangeProps> = ({\n timeType,\n rangeDate,\n timeOptions,\n dateCompare,\n getPopupContainer,\n onChange,\n disabledDate = undefined,\n presetsOptions = undefined,\n milestoneFilterType = 1,\n milestone = [],\n holidays = [],\n rangeDisplayLabel,\n}) => {\n const { token } = theme.useToken();\n const hasCustomRangeDisplay = rangeDisplayLabel != null;\n const [groupOpen, setGroupOpen] = useState(false);\n // 判断数据是否变更,若未变更,则初始化日期\n const [isChange, setIsChange] = useState(false);\n const filterType = milestoneFilterType;\n const [cacheRangeDate, setCacheRangeDate] = useState<RangeValue>([null, null]);\n const [cacheTimeType, setCacheTimeType] = useState<string>(timeType);\n const [groupIndex, setGroupIndex] = useState<number | null>(null);\n const picker = cacheTimeType && pickerMap[cacheTimeType] ? pickerMap[cacheTimeType] : 'date';\n const options = presetsOptions\n ? presetsOptions\n : optionsMap[cacheTimeType]\n ? optionsMap[cacheTimeType].options\n : optionsMap['按日'].options;\n\n // 周报月报不显示项目节点(但外面选了周月,里面有按日的type,选按日时依旧可以显示项目节点,例如分包详情里的日期组件)\n const showProjectNode = useMemo(() => {\n return (\n (!timeType.includes('周') &&\n !timeType.includes('月') &&\n !cacheTimeType.includes('周') &&\n !cacheTimeType.includes('月')) ||\n cacheTimeType.includes('日')\n );\n }, [timeType, cacheTimeType]);\n\n const timeOptionAnchors =\n timeOptions?.map((v) => {\n return {\n key: v,\n title: v,\n href: v,\n };\n }) || [];\n\n // 初始化日期与日周月\n const initRangeDate = () => {\n setCacheRangeDate(rangeDate);\n setCacheTimeType(timeType);\n setIsChange(false);\n };\n\n useEffect(() => {\n if (groupOpen) {\n setGroupIndex(\n findIndex(options, (item) => {\n return isEqual(\n item.value()?.map((v) => v?.format('YYYY-MM-DD')),\n cacheRangeDate?.map((v) => v?.format('YYYY-MM-DD')),\n );\n }),\n );\n } else if (!isChange) {\n initRangeDate();\n }\n }, [cacheTimeType, groupOpen]);\n\n useEffect(() => {\n initRangeDate();\n }, [rangeDate, timeType]);\n\n const customFormat: DatePickerProps['format'] = (value) => {\n return `${dayjs(value).format('YYYY-MM-DD')}`;\n };\n\n const milestoneSelected = (id: number) => {\n const dates = milestone.find((m) => m.id === id)?.range_day.map((m) => dayjs(m)) || [];\n let [start, end] = dates;\n if (end > dayjs().endOf('day')) end = dayjs().endOf('day');\n setIsChange(true);\n setCacheRangeDate([start, end]);\n onChange({\n rangeDate: [start, end],\n timeType: cacheTimeType,\n });\n setGroupOpen(false);\n };\n\n const checkPresets = (v) => {\n if (\n cacheRangeDate &&\n dayjs(v[0]).format('YYYY-MM-DD') === dayjs(cacheRangeDate[0]).format('YYYY-MM-DD') &&\n dayjs(v[1]).format('YYYY-MM-DD') === dayjs(cacheRangeDate[1]).format('YYYY-MM-DD')\n ) {\n return true;\n } else {\n return false;\n }\n };\n\n // 活动详情内容\n const popoverContent = (event: ProjectNodeItem) => {\n return (\n <div\n style={{\n height: 30,\n lineHeight: '30px',\n textAlign: 'left',\n color: '#666',\n padding: '0 10px 0 10px',\n fontSize: 12,\n }}\n >\n {event.tag +\n ' ' +\n (event.range_day[0] === event.range_day[1] ? event.range_day[0] : event.range_day.join(' ~ '))}\n </div>\n );\n };\n\n const milestoneListFilter = milestone\n .filter((f) => f.type === filterType)\n .filter((f) => dayjs(f.range_day[0]) <= dayjs().endOf('day'))\n .filter((f) => dayjs(f.range_day[0]) >= dayjs().startOf('year').subtract(1, 'year'))\n .sort(\n (a: ProjectNodeItem, b: ProjectNodeItem) => dayjs(b.range_day[0]).valueOf() - dayjs(a.range_day[0]).valueOf(),\n );\n const milestoneList = (\n <div className={styles.milestoneListBox}>\n {milestoneListFilter.map((v) => {\n // Popover 须高于 DatePicker 弹层(约 zIndexPopupBase+50),否则悬停内容被挡在面板下\n return (\n <Popover\n key={v.id}\n trigger='hover'\n placement='right'\n zIndex={token.zIndexPopupBase + 120}\n getPopupContainer={() => document.body}\n styles={{\n root: {\n // width: 200,\n },\n body: {\n borderRadius: 2,\n padding: 0,\n },\n }}\n content={popoverContent(v)}\n >\n <div\n data-track\n id={`milestoneListItem-${v.id}`}\n key={v.id}\n className={classNames(\n styles.milestoneListItem,\n checkPresets(v.range_day.map((m) => dayjs(m))) && styles.milestoneListActive,\n )}\n style={{\n textAlign: 'left',\n padding: '0 10px',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n }}\n onClick={() => {\n milestoneSelected(v.id as number);\n }}\n >\n {v.tag}\n </div>\n </Popover>\n );\n })}\n </div>\n );\n\n const dateGourpRender = (panelNode: React.ReactNode) => {\n return (\n <div>\n {dateCompare && (\n <div className={styles.ykRangeDateWithVsHeader}>\n <Anchor\n className={styles.ykRangeDateWithVsHeaderAnchor}\n direction='horizontal'\n items={timeOptionAnchors}\n getCurrentAnchor={() => cacheTimeType}\n onClick={(event, link) => {\n event.preventDefault();\n setCacheTimeType(link.href);\n const defaultFn = optionsMap[link.href] ? optionsMap[link.href].default : optionsMap['按日'].default;\n setCacheRangeDate(defaultFn());\n }}\n />\n </div>\n )}\n <Flex>\n {milestoneListFilter && milestoneListFilter.length > 0 && showProjectNode ? (\n <div className={classNames(styles.milestoneList, 'scroll-reset')}>{milestoneList}</div>\n ) : null}\n <div className={styles.ykRangeDateWithVsGroup}>\n <div className={styles.ykRangeDateWithVsPanel}>{panelNode}</div>\n </div>\n </Flex>\n </div>\n );\n };\n\n // 当节点有已选时,不高亮presetsNode\n let hasSelect = false;\n if (milestoneListFilter && milestoneListFilter.length > 0) {\n milestoneListFilter.forEach((item) => {\n if (checkPresets(item.range_day.map((m) => dayjs(m))) && picker === 'date' && showProjectNode) {\n hasSelect = true;\n }\n });\n }\n\n const presetsNode = options.map((v, i) => {\n return {\n label: (\n <div\n className={classNames(\n 'ant-picker-presets-li',\n groupIndex === i && !hasSelect && 'ant-picker-presets-li-item',\n )}\n onClick={() => {\n setGroupIndex(i);\n }}\n >\n {v.label}\n </div>\n ),\n value: v.value,\n };\n }) as TimeRangePickerProps['presets'];\n\n const resolvePopupContainer = getPopupContainer\n ? getPopupContainer\n : (triggerNode: HTMLElement) => triggerNode.parentNode as HTMLElement;\n\n // 项目节点与节假日\n const dateTags: ProjectNodeItem[] = (milestoneListFilter || []).concat(holidays || []).map((m) => {\n return {\n ...m,\n date: m.range_day[0],\n };\n });\n const dateTagsMap = {};\n dateTags.forEach((m: any) => {\n if (dateTagsMap[m.date]) {\n dateTagsMap[m.date].push(m);\n } else {\n dateTagsMap[m.date] = [m];\n }\n });\n\n const eventsTooltips = (date: Dayjs) => {\n const dateStr = dayjs(date).format('YYYY-MM-DD');\n const tags = dateTagsMap[dateStr] || [];\n // 只展示最新创建的节点\n const lastTag =\n tags.length > 0\n ? tags.reduce((prev: ProjectNodeItem, curr: ProjectNodeItem) =>\n dayjs(prev.created_at).isAfter(dayjs(curr.created_at)) ? prev : curr,\n )\n : null;\n return lastTag ? (\n <Tooltip\n placement='right'\n title={\n lastTag.tag +\n ' ' +\n (lastTag.range_day[0] === lastTag.range_day[1] ? lastTag.range_day[0] : lastTag.range_day.join(' ~ '))\n }\n color='#fff'\n styles={{\n root: {\n maxWidth: 270,\n },\n body: {\n borderRadius: 2,\n color: '#666',\n },\n }}\n >\n <div key={lastTag.id} className={styles.ykRangeDateWithVsTag}>\n {lastTag.tag}\n </div>\n </Tooltip>\n ) : (\n <></>\n );\n };\n\n const cellRender: DatePickerProps<Dayjs>['cellRender'] = (current, info) => {\n if (info.type !== 'date') {\n return info.originNode;\n }\n if (typeof current === 'number' || typeof current === 'string') {\n return <div className='ant-picker-cell-inner'>{current}</div>;\n }\n return (\n <div\n className={classNames('ant-picker-cell-inner')}\n style={{ width: 45, height: 40, lineHeight: holidays && holidays.length > 0 ? '26px' : '40px', fontSize: 12 }}\n >\n {current.date()}\n {holidays && holidays.length > 0 && (\n <div\n style={{\n position: 'absolute',\n bottom: 2,\n height: 16,\n width: '100%',\n fontSize: '12px',\n lineHeight: '16px',\n whiteSpace: 'nowrap',\n }}\n >\n {eventsTooltips(current)}\n </div>\n )}\n </div>\n );\n };\n\n const rangePicker = (\n <DatePicker.RangePicker\n id='ykRangeDateWithVsRange'\n classNames={{\n popup: {\n root: styles.globalItemDatePanel,\n },\n }}\n styles={{\n root: {\n opacity: hasCustomRangeDisplay ? 0 : 1,\n },\n }}\n getPopupContainer={resolvePopupContainer}\n disabledDate={\n disabledDate\n ? disabledDate\n : (current) => {\n return current && current > dayjs().endOf('day');\n }\n }\n inputReadOnly={hasCustomRangeDisplay}\n open={groupOpen}\n picker={picker}\n cellRender={cellRender}\n value={cacheRangeDate}\n panelRender={dateGourpRender}\n presets={presetsNode}\n variant='borderless'\n allowClear={false}\n format={customFormat}\n showWeek={false}\n separator='~'\n className={styles.globalItemDate}\n suffixIcon={false}\n onChange={(val) => {\n let start = null;\n let end = null;\n if (val && val[0] && val[1]) {\n start = val[0].startOf(picker);\n end = val[1].endOf(picker) > dayjs() ? dayjs() : val[1].endOf(picker);\n }\n setIsChange(true);\n setCacheRangeDate([start, end]);\n onChange({\n rangeDate: [start, end],\n timeType: cacheTimeType,\n });\n }}\n onOpenChange={(open) => {\n setGroupOpen(open);\n }}\n />\n );\n\n return (\n <div className={classNames(styles.globalMl, styles.globalItem)}>\n {dateCompare && !!options.length && (\n <label onClick={() => setGroupOpen(true)} className={styles.globalItemDateTerm}>\n <span style={{ marginRight: '5px', fontSize: 14 }}>{timeType}</span>\n <i style={{ marginRight: '10px' }} className={classNames('iconfont icon-xiala1')}></i>\n </label>\n )}\n <i className={itemCheckIconClass('icon-riqi1')} style={{ fontSize: 14 }} />\n <ConfigProvider\n theme={{\n components: {\n DatePicker: {\n cellWidth: 60,\n cellHeight: 40,\n timeColumnWidth: 40,\n },\n },\n token: {},\n }}\n >\n {hasCustomRangeDisplay ? (\n <div className={styles.rangePickerCustomDisplay}>\n <span className={styles.rangePickerCustomDisplayLabel}>{rangeDisplayLabel}</span>\n {rangePicker}\n </div>\n ) : (\n rangePicker\n )}\n </ConfigProvider>\n </div>\n );\n};\n\nexport default YkRangeDateWithVSRange;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;AACA,SAAS,QAAQ,gBAAgB,YAAY,MAAM,SAAS,SAAS,aAAa;AAClF,OAAO,gBAAgB;AACvB,OAAO,WAAsB;AAC7B,SAAS,WAAW,eAAe;AACnC,OAAO,SAAS,WAAW,SAAS,gBAAgC;AACpE,OAAO,YAAY;AA4BnB,IAAM,qBAAqB,CAAC,cAAsB;AAChD,SAAO,WAAW,YAAY,WAAW,OAAO,MAAM;AACxD;AAEA,IAAM,OAA8F,CAClG,GACA,QACA,QAAQ,UACL,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,EAAE,QAAQ,MAAM,GAAG,QAAQ,MAAM,IAAI,MAAM,EAAE,SAAS,GAAG,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9G,IAAM,cAAgC;AAAA,EACpC,EAAE,OAAO,MAAM,OAAO,MAAM,KAAK,GAAG,OAAO,IAAI,EAAE;AAAA,EACjD,EAAE,OAAO,MAAM,OAAO,MAAM,KAAK,GAAG,KAAK,EAAE;AAAA,EAC3C,EAAE,OAAO,MAAM,OAAO,MAAM,KAAK,GAAG,QAAQ,IAAI,EAAE;AAAA,EAClD,EAAE,OAAO,MAAM,OAAO,MAAM,KAAK,GAAG,MAAM,EAAE;AAAA,EAC5C,EAAE,OAAO,MAAM,OAAO,MAAM,KAAK,GAAG,SAAS,IAAI,EAAE;AAAA,EACnD,EAAE,OAAO,MAAM,OAAO,MAAM,KAAK,GAAG,OAAO,EAAE;AAAA,EAC7C,EAAE,OAAO,MAAM,OAAO,MAAM,KAAK,GAAG,QAAQ,IAAI,EAAE;AAAA,EAClD,EAAE,OAAO,MAAM,OAAO,MAAM,KAAK,GAAG,MAAM,EAAE;AAAA,EAC5C,EAAE,OAAO,OAAO,OAAO,MAAM,KAAK,GAAG,OAAO,IAAI,EAAE;AAAA,EAClD,EAAE,OAAO,QAAQ,OAAO,MAAM,KAAK,IAAI,OAAO,IAAI,EAAE;AAAA,EACpD,EAAE,OAAO,QAAQ,OAAO,MAAM,KAAK,IAAI,OAAO,IAAI,EAAE;AAAA,EACpD,EAAE,OAAO,QAAQ,OAAO,MAAM,KAAK,IAAI,OAAO,IAAI,EAAE;AAAA,EACpD,EAAE,OAAO,QAAQ,OAAO,MAAM,KAAK,IAAI,OAAO,IAAI,EAAE;AAAA,EACpD,EAAE,OAAO,SAAS,OAAO,MAAM,KAAK,KAAK,OAAO,IAAI,EAAE;AAAA,EACtD;AAAA,IACE,OAAO;AAAA,IACP,OAAO,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,KAAK,EAAE,QAAQ,KAAK,GAAG,MAAM,EAAE,SAAS,GAAG,KAAK,EAAE,MAAM,KAAK,CAAC;AAAA,EAClG;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO,MAAM,CAAC,MAAM,EAAE,SAAS,IAAI,KAAK,EAAE,QAAQ,KAAK,GAAG,MAAM,EAAE,SAAS,GAAG,KAAK,EAAE,MAAM,KAAK,CAAC;AAAA,EACnG;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO,MAAM,CAAC,MAAM,EAAE,SAAS,IAAI,KAAK,EAAE,QAAQ,KAAK,GAAG,MAAM,EAAE,SAAS,GAAG,KAAK,EAAE,MAAM,KAAK,CAAC;AAAA,EACnG;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO,MAAM,CAAC,MAAM,EAAE,SAAS,IAAI,KAAK,EAAE,QAAQ,KAAK,GAAG,MAAM,EAAE,SAAS,GAAG,KAAK,EAAE,MAAM,KAAK,CAAC;AAAA,EACnG;AACF;AACA,IAAM,cAAgC;AAAA,EACpC,EAAE,OAAO,MAAM,OAAO,MAAM,KAAK,GAAG,QAAQ,IAAI,EAAE;AAAA,EAClD,EAAE,OAAO,MAAM,OAAO,MAAM,KAAK,GAAG,MAAM,EAAE;AAAA,EAC5C,EAAE,OAAO,OAAO,OAAO,MAAM,KAAK,GAAG,QAAQ,IAAI,EAAE;AAAA,EACnD,EAAE,OAAO,OAAO,OAAO,MAAM,KAAK,GAAG,QAAQ,IAAI,EAAE;AAAA,EACnD,EAAE,OAAO,OAAO,OAAO,MAAM,KAAK,GAAG,QAAQ,IAAI,EAAE;AAAA,EACnD,EAAE,OAAO,OAAO,OAAO,MAAM,KAAK,GAAG,QAAQ,IAAI,EAAE;AAAA,EACnD,EAAE,OAAO,OAAO,OAAO,MAAM,KAAK,GAAG,QAAQ,IAAI,EAAE;AAAA,EACnD,EAAE,OAAO,QAAQ,OAAO,MAAM,KAAK,IAAI,QAAQ,IAAI,EAAE;AAAA,EACrD,EAAE,OAAO,QAAQ,OAAO,MAAM,KAAK,IAAI,QAAQ,IAAI,EAAE;AAAA,EACrD,EAAE,OAAO,QAAQ,OAAO,MAAM,KAAK,IAAI,QAAQ,IAAI,EAAE;AAAA,EACrD;AAAA,IACE,OAAO;AAAA,IACP,OAAO,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,EAAE,QAAQ,MAAM,GAAG,MAAM,EAAE,SAAS,GAAG,MAAM,EAAE,MAAM,MAAM,CAAC;AAAA,EACtG;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,EAAE,QAAQ,MAAM,GAAG,MAAM,EAAE,SAAS,GAAG,MAAM,EAAE,MAAM,MAAM,CAAC;AAAA,EACtG;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,EAAE,QAAQ,MAAM,GAAG,MAAM,EAAE,SAAS,GAAG,MAAM,EAAE,MAAM,MAAM,CAAC;AAAA,EACtG;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,EAAE,QAAQ,MAAM,GAAG,MAAM,EAAE,SAAS,GAAG,MAAM,EAAE,MAAM,MAAM,CAAC;AAAA,EACtG;AACF;AACA,IAAM,eAAiC;AAAA,EACrC,EAAE,OAAO,MAAM,OAAO,MAAM,KAAK,GAAG,SAAS,IAAI,EAAE;AAAA,EACnD,EAAE,OAAO,MAAM,OAAO,MAAM,KAAK,GAAG,OAAO,EAAE;AAAA,EAC7C,EAAE,OAAO,MAAM,OAAO,MAAM,KAAK,GAAG,QAAQ,IAAI,EAAE;AAAA,EAClD,EAAE,OAAO,MAAM,OAAO,MAAM,KAAK,GAAG,MAAM,EAAE;AAAA,EAC5C,EAAE,OAAO,OAAO,OAAO,MAAM,KAAK,GAAG,SAAS,IAAI,EAAE;AAAA,EACpD,EAAE,OAAO,OAAO,OAAO,MAAM,KAAK,GAAG,SAAS,IAAI,EAAE;AAAA,EACpD,EAAE,OAAO,OAAO,OAAO,MAAM,KAAK,GAAG,SAAS,IAAI,EAAE;AAAA,EACpD,EAAE,OAAO,OAAO,OAAO,MAAM,KAAK,GAAG,SAAS,IAAI,EAAE;AAAA,EACpD,EAAE,OAAO,OAAO,OAAO,MAAM,KAAK,GAAG,SAAS,IAAI,EAAE;AAAA,EACpD,EAAE,OAAO,OAAO,OAAO,MAAM,KAAK,GAAG,SAAS,IAAI,EAAE;AAAA,EACpD,EAAE,OAAO,OAAO,OAAO,MAAM,KAAK,GAAG,SAAS,IAAI,EAAE;AAAA,EACpD,EAAE,OAAO,QAAQ,OAAO,MAAM,KAAK,GAAG,SAAS,IAAI,EAAE;AAAA,EACrD,EAAE,OAAO,QAAQ,OAAO,MAAM,KAAK,IAAI,SAAS,IAAI,EAAE;AAAA,EACtD,EAAE,OAAO,QAAQ,OAAO,MAAM,KAAK,IAAI,SAAS,IAAI,EAAE;AAAA,EACtD;AAAA,IACE,OAAO;AAAA,IACP,OAAO,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,QAAQ,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,MAAM,OAAO,CAAC;AAAA,EAC1G;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,QAAQ,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,MAAM,OAAO,CAAC;AAAA,EAC1G;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,QAAQ,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,MAAM,OAAO,CAAC;AAAA,EAC1G;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,QAAQ,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,MAAM,OAAO,CAAC;AAAA,EAC1G;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,QAAQ,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,MAAM,OAAO,CAAC;AAAA,EAC1G;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,QAAQ,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,MAAM,OAAO,CAAC;AAAA,EAC1G;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,QAAQ,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,MAAM,OAAO,CAAC;AAAA,EAC1G;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,QAAQ,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,MAAM,OAAO,CAAC;AAAA,EAC1G;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO,MAAM,CAAC,MAAM,EAAE,SAAS,IAAI,OAAO,EAAE,QAAQ,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,MAAM,OAAO,CAAC;AAAA,EAC3G;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO,MAAM,CAAC,MAAM,EAAE,SAAS,IAAI,OAAO,EAAE,QAAQ,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,MAAM,OAAO,CAAC;AAAA,EAC3G;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO,MAAM,CAAC,MAAM,EAAE,SAAS,IAAI,OAAO,EAAE,QAAQ,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,MAAM,OAAO,CAAC;AAAA,EAC3G;AACF;AACA,IAAM,kBAAoC;AAAA,EACxC,EAAE,OAAO,OAAO,OAAO,MAAM,KAAK,GAAG,OAAO,IAAI,EAAE;AAAA,EAClD,EAAE,OAAO,QAAQ,OAAO,MAAM,KAAK,IAAI,OAAO,IAAI,EAAE;AAAA,EACpD,EAAE,OAAO,QAAQ,OAAO,MAAM,KAAK,IAAI,OAAO,IAAI,EAAE;AAAA,EACpD,EAAE,OAAO,QAAQ,OAAO,MAAM,KAAK,IAAI,OAAO,IAAI,EAAE;AAAA,EACpD,EAAE,OAAO,QAAQ,OAAO,MAAM,KAAK,IAAI,OAAO,IAAI,EAAE;AAAA,EACpD,EAAE,OAAO,SAAS,OAAO,MAAM,KAAK,KAAK,OAAO,IAAI,EAAE;AACxD;AACA,IAAM,mBAAqC;AAAA,EACzC,EAAE,OAAO,QAAQ,OAAO,MAAM,KAAK,IAAI,OAAO,IAAI,EAAE;AAAA,EACpD,EAAE,OAAO,QAAQ,OAAO,MAAM,KAAK,IAAI,OAAO,IAAI,EAAE;AAAA,EACpD,EAAE,OAAO,QAAQ,OAAO,MAAM,KAAK,IAAI,OAAO,IAAI,EAAE;AAAA,EACpD,EAAE,OAAO,SAAS,OAAO,MAAM,KAAK,KAAK,OAAO,IAAI,EAAE;AAAA,EACtD,EAAE,OAAO,SAAS,OAAO,MAAM,KAAK,KAAK,OAAO,IAAI,EAAE;AAAA,EACtD,EAAE,OAAO,SAAS,OAAO,MAAM,KAAK,KAAK,OAAO,IAAI,EAAE;AAAA,EACtD,EAAE,OAAO,SAAS,OAAO,MAAM,KAAK,KAAK,OAAO,IAAI,EAAE;AAAA,EACtD,EAAE,OAAO,SAAS,OAAO,MAAM,KAAK,KAAK,OAAO,IAAI,EAAE;AAAA,EACtD,EAAE,OAAO,SAAS,OAAO,MAAM,KAAK,KAAK,OAAO,IAAI,EAAE;AAAA,EACtD,EAAE,OAAO,SAAS,OAAO,MAAM,KAAK,KAAK,OAAO,IAAI,EAAE;AAAA,EACtD,EAAE,OAAO,SAAS,OAAO,MAAM,KAAK,KAAK,OAAO,IAAI,EAAE;AAAA,EACtD,EAAE,OAAO,SAAS,OAAO,MAAM,KAAK,KAAK,OAAO,IAAI,EAAE;AACxD;AAEA,IAAM,YAEF;AAAA,EACF,MAAM;AAAA,EACN,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,IAAM,aAKF;AAAA,EACF,IAAI,EAAE,SAAS,aAAa,SAAS,MAAM,KAAK,IAAI,OAAO,IAAI,EAAE;AAAA,EACjE,IAAI,EAAE,SAAS,aAAa,SAAS,MAAM,KAAK,IAAI,QAAQ,IAAI,EAAE;AAAA,EAClE,IAAI,EAAE,SAAS,cAAc,SAAS,MAAM,KAAK,IAAI,SAAS,IAAI,EAAE;AAAA,EACpE,MAAM,EAAE,SAAS,aAAa,SAAS,MAAM,KAAK,IAAI,QAAQ,IAAI,EAAE;AAAA,EACpE,MAAM,EAAE,SAAS,cAAc,SAAS,MAAM,KAAK,IAAI,SAAS,IAAI,EAAE;AAAA,EACtE,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,SAAS,MAAM,KAAK,KAAK,IAAI,GAAG,OAAO,IAAI;AAAA,EAC7C;AAAA,EACA,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,SAAS,MAAM,KAAK,KAAK,KAAK,GAAG,OAAO,IAAI;AAAA,EAC9C;AACF;AAEA,IAAM,yBAAgE,CAAC;AAAA,EACrE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,sBAAsB;AAAA,EACtB,YAAY,CAAC;AAAA,EACb,WAAW,CAAC;AAAA,EACZ;AACF,MAAM;AACJ,QAAM,EAAE,MAAM,IAAI,MAAM,SAAS;AACjC,QAAM,wBAAwB,qBAAqB;AACnD,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAEhD,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,KAAK;AAC9C,QAAM,aAAa;AACnB,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAqB,CAAC,MAAM,IAAI,CAAC;AAC7E,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAiB,QAAQ;AACnE,QAAM,CAAC,YAAY,aAAa,IAAI,SAAwB,IAAI;AAChE,QAAM,SAAS,iBAAiB,UAAU,aAAa,IAAI,UAAU,aAAa,IAAI;AACtF,QAAM,UAAU,iBACZ,iBACA,WAAW,aAAa,IACtB,WAAW,aAAa,EAAE,UAC1B,WAAW,IAAI,EAAE;AAGvB,QAAM,kBAAkB,QAAQ,MAAM;AACpC,WACG,CAAC,SAAS,SAAS,GAAG,KACrB,CAAC,SAAS,SAAS,GAAG,KACtB,CAAC,cAAc,SAAS,GAAG,KAC3B,CAAC,cAAc,SAAS,GAAG,KAC7B,cAAc,SAAS,GAAG;AAAA,EAE9B,GAAG,CAAC,UAAU,aAAa,CAAC;AAE5B,QAAM,qBACJ,2CAAa,IAAI,CAAC,MAAM;AACtB,WAAO;AAAA,MACL,KAAK;AAAA,MACL,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF,OAAM,CAAC;AAGT,QAAM,gBAAgB,MAAM;AAC1B,sBAAkB,SAAS;AAC3B,qBAAiB,QAAQ;AACzB,gBAAY,KAAK;AAAA,EACnB;AAEA,YAAU,MAAM;AACd,QAAI,WAAW;AACb;AAAA,QACE,UAAU,SAAS,CAAC,SAAS;AArRrC;AAsRU,iBAAO;AAAA,aACL,UAAK,MAAM,MAAX,mBAAc,IAAI,CAAC,MAAM,uBAAG,OAAO;AAAA,YACnC,iDAAgB,IAAI,CAAC,MAAM,uBAAG,OAAO;AAAA,UACvC;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF,WAAW,CAAC,UAAU;AACpB,oBAAc;AAAA,IAChB;AAAA,EACF,GAAG,CAAC,eAAe,SAAS,CAAC;AAE7B,YAAU,MAAM;AACd,kBAAc;AAAA,EAChB,GAAG,CAAC,WAAW,QAAQ,CAAC;AAExB,QAAM,eAA0C,CAAC,UAAU;AACzD,WAAO,GAAG,MAAM,KAAK,EAAE,OAAO,YAAY;AAAA,EAC5C;AAEA,QAAM,oBAAoB,CAAC,OAAe;AAzS5C;AA0SI,UAAM,UAAQ,eAAU,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,MAAjC,mBAAoC,UAAU,IAAI,CAAC,MAAM,MAAM,CAAC,OAAM,CAAC;AACrF,QAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAI,MAAM,MAAM,EAAE,MAAM,KAAK;AAAG,YAAM,MAAM,EAAE,MAAM,KAAK;AACzD,gBAAY,IAAI;AAChB,sBAAkB,CAAC,OAAO,GAAG,CAAC;AAC9B,aAAS;AAAA,MACP,WAAW,CAAC,OAAO,GAAG;AAAA,MACtB,UAAU;AAAA,IACZ,CAAC;AACD,iBAAa,KAAK;AAAA,EACpB;AAEA,QAAM,eAAe,CAAC,MAAM;AAC1B,QACE,kBACA,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,YAAY,MAAM,MAAM,eAAe,CAAC,CAAC,EAAE,OAAO,YAAY,KACjF,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,YAAY,MAAM,MAAM,eAAe,CAAC,CAAC,EAAE,OAAO,YAAY,GACjF;AACA,aAAO;AAAA,IACT,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AAGA,QAAM,iBAAiB,CAAC,UAA2B;AACjD,WACE;AAAA,MAAC;AAAA;AAAA,QACC,OAAO;AAAA,UACL,QAAQ;AAAA,UACR,YAAY;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,SAAS;AAAA,UACT,UAAU;AAAA,QACZ;AAAA;AAAA,MAEC,MAAM,MACL,OACC,MAAM,UAAU,CAAC,MAAM,MAAM,UAAU,CAAC,IAAI,MAAM,UAAU,CAAC,IAAI,MAAM,UAAU,KAAK,KAAK;AAAA,IAChG;AAAA,EAEJ;AAEA,QAAM,sBAAsB,UACzB,OAAO,CAAC,MAAM,EAAE,SAAS,UAAU,EACnC,OAAO,CAAC,MAAM,MAAM,EAAE,UAAU,CAAC,CAAC,KAAK,MAAM,EAAE,MAAM,KAAK,CAAC,EAC3D,OAAO,CAAC,MAAM,MAAM,EAAE,UAAU,CAAC,CAAC,KAAK,MAAM,EAAE,QAAQ,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC,EAClF;AAAA,IACC,CAAC,GAAoB,MAAuB,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,QAAQ,IAAI,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,QAAQ;AAAA,EAC9G;AACF,QAAM,gBACJ,oCAAC,SAAI,WAAW,OAAO,oBACpB,oBAAoB,IAAI,CAAC,MAAM;AAE9B,WACE;AAAA,MAAC;AAAA;AAAA,QACC,KAAK,EAAE;AAAA,QACP,SAAQ;AAAA,QACR,WAAU;AAAA,QACV,QAAQ,MAAM,kBAAkB;AAAA,QAChC,mBAAmB,MAAM,SAAS;AAAA,QAClC,QAAQ;AAAA,UACN,MAAM;AAAA;AAAA,UAEN;AAAA,UACA,MAAM;AAAA,YACJ,cAAc;AAAA,YACd,SAAS;AAAA,UACX;AAAA,QACF;AAAA,QACA,SAAS,eAAe,CAAC;AAAA;AAAA,MAEzB;AAAA,QAAC;AAAA;AAAA,UACC,cAAU;AAAA,UACV,IAAI,qBAAqB,EAAE;AAAA,UAC3B,KAAK,EAAE;AAAA,UACP,WAAW;AAAA,YACT,OAAO;AAAA,YACP,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO;AAAA,UAC3D;AAAA,UACA,OAAO;AAAA,YACL,WAAW;AAAA,YACX,SAAS;AAAA,YACT,YAAY;AAAA,YACZ,UAAU;AAAA,YACV,cAAc;AAAA,UAChB;AAAA,UACA,SAAS,MAAM;AACb,8BAAkB,EAAE,EAAY;AAAA,UAClC;AAAA;AAAA,QAEC,EAAE;AAAA,MACL;AAAA,IACF;AAAA,EAEJ,CAAC,CACH;AAGF,QAAM,kBAAkB,CAAC,cAA+B;AACtD,WACE,oCAAC,aACE,eACC,oCAAC,SAAI,WAAW,OAAO,2BACrB;AAAA,MAAC;AAAA;AAAA,QACC,WAAW,OAAO;AAAA,QAClB,WAAU;AAAA,QACV,OAAO;AAAA,QACP,kBAAkB,MAAM;AAAA,QACxB,SAAS,CAAC,OAAO,SAAS;AACxB,gBAAM,eAAe;AACrB,2BAAiB,KAAK,IAAI;AAC1B,gBAAM,YAAY,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,IAAI,EAAE,UAAU,WAAW,IAAI,EAAE;AAC3F,4BAAkB,UAAU,CAAC;AAAA,QAC/B;AAAA;AAAA,IACF,CACF,GAEF,oCAAC,YACE,uBAAuB,oBAAoB,SAAS,KAAK,kBACxD,oCAAC,SAAI,WAAW,WAAW,OAAO,eAAe,cAAc,KAAI,aAAc,IAC/E,MACJ,oCAAC,SAAI,WAAW,OAAO,0BACrB,oCAAC,SAAI,WAAW,OAAO,0BAAyB,SAAU,CAC5D,CACF,CACF;AAAA,EAEJ;AAGA,MAAI,YAAY;AAChB,MAAI,uBAAuB,oBAAoB,SAAS,GAAG;AACzD,wBAAoB,QAAQ,CAAC,SAAS;AACpC,UAAI,aAAa,KAAK,UAAU,IAAI,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,KAAK,WAAW,UAAU,iBAAiB;AAC7F,oBAAY;AAAA,MACd;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,cAAc,QAAQ,IAAI,CAAC,GAAG,MAAM;AACxC,WAAO;AAAA,MACL,OACE;AAAA,QAAC;AAAA;AAAA,UACC,WAAW;AAAA,YACT;AAAA,YACA,eAAe,KAAK,CAAC,aAAa;AAAA,UACpC;AAAA,UACA,SAAS,MAAM;AACb,0BAAc,CAAC;AAAA,UACjB;AAAA;AAAA,QAEC,EAAE;AAAA,MACL;AAAA,MAEF,OAAO,EAAE;AAAA,IACX;AAAA,EACF,CAAC;AAED,QAAM,wBAAwB,oBAC1B,oBACA,CAAC,gBAA6B,YAAY;AAG9C,QAAM,YAA+B,uBAAuB,CAAC,GAAG,OAAO,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM;AAChG,WAAO,iCACF,IADE;AAAA,MAEL,MAAM,EAAE,UAAU,CAAC;AAAA,IACrB;AAAA,EACF,CAAC;AACD,QAAM,cAAc,CAAC;AACrB,WAAS,QAAQ,CAAC,MAAW;AAC3B,QAAI,YAAY,EAAE,IAAI,GAAG;AACvB,kBAAY,EAAE,IAAI,EAAE,KAAK,CAAC;AAAA,IAC5B,OAAO;AACL,kBAAY,EAAE,IAAI,IAAI,CAAC,CAAC;AAAA,IAC1B;AAAA,EACF,CAAC;AAED,QAAM,iBAAiB,CAAC,SAAgB;AACtC,UAAM,UAAU,MAAM,IAAI,EAAE,OAAO,YAAY;AAC/C,UAAM,OAAO,YAAY,OAAO,KAAK,CAAC;AAEtC,UAAM,UACJ,KAAK,SAAS,IACV,KAAK;AAAA,MAAO,CAAC,MAAuB,SAClC,MAAM,KAAK,UAAU,EAAE,QAAQ,MAAM,KAAK,UAAU,CAAC,IAAI,OAAO;AAAA,IAClE,IACA;AACN,WAAO,UACL;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,OACE,QAAQ,MACR,OACC,QAAQ,UAAU,CAAC,MAAM,QAAQ,UAAU,CAAC,IAAI,QAAQ,UAAU,CAAC,IAAI,QAAQ,UAAU,KAAK,KAAK;AAAA,QAEtG,OAAM;AAAA,QACN,QAAQ;AAAA,UACN,MAAM;AAAA,YACJ,UAAU;AAAA,UACZ;AAAA,UACA,MAAM;AAAA,YACJ,cAAc;AAAA,YACd,OAAO;AAAA,UACT;AAAA,QACF;AAAA;AAAA,MAEA,oCAAC,SAAI,KAAK,QAAQ,IAAI,WAAW,OAAO,wBACrC,QAAQ,GACX;AAAA,IACF,IAEA,wDAAE;AAAA,EAEN;AAEA,QAAM,aAAmD,CAAC,SAAS,SAAS;AAC1E,QAAI,KAAK,SAAS,QAAQ;AACxB,aAAO,KAAK;AAAA,IACd;AACA,QAAI,OAAO,YAAY,YAAY,OAAO,YAAY,UAAU;AAC9D,aAAO,oCAAC,SAAI,WAAU,2BAAyB,OAAQ;AAAA,IACzD;AACA,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW,WAAW,uBAAuB;AAAA,QAC7C,OAAO,EAAE,OAAO,IAAI,QAAQ,IAAI,YAAY,YAAY,SAAS,SAAS,IAAI,SAAS,QAAQ,UAAU,GAAG;AAAA;AAAA,MAE3G,QAAQ,KAAK;AAAA,MACb,YAAY,SAAS,SAAS,KAC7B;AAAA,QAAC;AAAA;AAAA,UACC,OAAO;AAAA,YACL,UAAU;AAAA,YACV,QAAQ;AAAA,YACR,QAAQ;AAAA,YACR,OAAO;AAAA,YACP,UAAU;AAAA,YACV,YAAY;AAAA,YACZ,YAAY;AAAA,UACd;AAAA;AAAA,QAEC,eAAe,OAAO;AAAA,MACzB;AAAA,IAEJ;AAAA,EAEJ;AAEA,QAAM,cACJ;AAAA,IAAC,WAAW;AAAA,IAAX;AAAA,MACC,IAAG;AAAA,MACH,YAAY;AAAA,QACV,OAAO;AAAA,UACL,MAAM,OAAO;AAAA,QACf;AAAA,MACF;AAAA,MACA,QAAQ;AAAA,QACN,MAAM;AAAA,UACJ,SAAS,wBAAwB,IAAI;AAAA,QACvC;AAAA,MACF;AAAA,MACA,mBAAmB;AAAA,MACnB,cACE,eACI,eACA,CAAC,YAAY;AACX,eAAO,WAAW,UAAU,MAAM,EAAE,MAAM,KAAK;AAAA,MACjD;AAAA,MAEN,eAAe;AAAA,MACf,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP,aAAa;AAAA,MACb,SAAS;AAAA,MACT,SAAQ;AAAA,MACR,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,WAAU;AAAA,MACV,WAAW,OAAO;AAAA,MAClB,YAAY;AAAA,MACZ,UAAU,CAAC,QAAQ;AACjB,YAAI,QAAQ;AACZ,YAAI,MAAM;AACV,YAAI,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG;AAC3B,kBAAQ,IAAI,CAAC,EAAE,QAAQ,MAAM;AAC7B,gBAAM,IAAI,CAAC,EAAE,MAAM,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,IAAI,CAAC,EAAE,MAAM,MAAM;AAAA,QACtE;AACA,oBAAY,IAAI;AAChB,0BAAkB,CAAC,OAAO,GAAG,CAAC;AAC9B,iBAAS;AAAA,UACP,WAAW,CAAC,OAAO,GAAG;AAAA,UACtB,UAAU;AAAA,QACZ,CAAC;AAAA,MACH;AAAA,MACA,cAAc,CAAC,SAAS;AACtB,qBAAa,IAAI;AAAA,MACnB;AAAA;AAAA,EACF;AAGF,SACE,oCAAC,SAAI,WAAW,WAAW,OAAO,UAAU,OAAO,UAAU,KAC1D,eAAe,CAAC,CAAC,QAAQ,UACxB,oCAAC,WAAM,SAAS,MAAM,aAAa,IAAI,GAAG,WAAW,OAAO,sBAC1D,oCAAC,UAAK,OAAO,EAAE,aAAa,OAAO,UAAU,GAAG,KAAI,QAAS,GAC7D,oCAAC,OAAE,OAAO,EAAE,aAAa,OAAO,GAAG,WAAW,WAAW,sBAAsB,GAAG,CACpF,GAEF,oCAAC,OAAE,WAAW,mBAAmB,YAAY,GAAG,OAAO,EAAE,UAAU,GAAG,GAAG,GACzE;AAAA,IAAC;AAAA;AAAA,MACC,OAAO;AAAA,QACL,YAAY;AAAA,UACV,YAAY;AAAA,YACV,WAAW;AAAA,YACX,YAAY;AAAA,YACZ,iBAAiB;AAAA,UACnB;AAAA,QACF;AAAA,QACA,OAAO,CAAC;AAAA,MACV;AAAA;AAAA,IAEC,wBACC,oCAAC,SAAI,WAAW,OAAO,4BACrB,oCAAC,UAAK,WAAW,OAAO,iCAAgC,iBAAkB,GACzE,WACH,IAEA;AAAA,EAEJ,CACF;AAEJ;AAEA,IAAO,iCAAQ;",
6
+ "names": []
7
7
  }
@@ -7,9 +7,9 @@
7
7
  * - YkRangeDateWithVSRange:主 RangePicker,可选日/周/月维度 Tab(由 timeOptions 控制)
8
8
  * - YkRangeDateWithVSCompare:对比区间,依赖主区间长度(dayLine)自动对齐结束日
9
9
  */
10
+ import 'dayjs/locale/zh-cn';
10
11
  import type { DatePickerProps } from 'antd';
11
12
  import { Dayjs } from 'dayjs';
12
- import 'dayjs/locale/zh-cn';
13
13
  import { FC, type ReactNode } from 'react';
14
14
  /** 受控值:主区间字符串、对比区间、聚合维度(与后端约定的中文枚举,如「按日」) */
15
15
  export type YkRangeDateWithVSValue = {
@@ -42,7 +42,7 @@ export type YkRangeDateWithVSProps = {
42
42
  disableDateCompare?: boolean;
43
43
  /** Tab 文案列表,如 ['按日','按周','按月'];空数组则主面板不显示维度切换 */
44
44
  timeOptions?: string[];
45
- /** 弹层挂载容器;未传时默认 document.body,避免 Drawer/Modal/overflow 导致面板异常关闭 */
45
+ /** 弹层挂载容器,默认父节点 */
46
46
  getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;
47
47
  disabledDate?: DatePickerProps['disabledDate'];
48
48
  /** 若传入则覆盖 value 推导出的主区间展示 */
@@ -19,12 +19,13 @@ var __spreadValues = (a, b) => {
19
19
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
20
 
21
21
  // src/components/YkRangeDateWithVS/index.tsx
22
+ import "dayjs/locale/zh-cn";
23
+ import React from "react";
22
24
  import { ConfigProvider } from "antd";
23
25
  import zhCN from "antd/locale/zh_CN";
24
26
  import classNames from "classnames";
25
27
  import dayjs from "dayjs";
26
- import "dayjs/locale/zh-cn";
27
- import React, { useEffect, useMemo } from "react";
28
+ import { useEffect, useMemo } from "react";
28
29
  import styles from "./styles";
29
30
  import YkRangeDateWithVSCompare from "./YkRangeDateWithVSCompare";
30
31
  import YkRangeDateWithVSRange from "./YkRangeDateWithVSRange";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/YkRangeDateWithVS/index.tsx"],
4
- "sourcesContent": ["/**\n * YkRangeDateWithVS — 主时间区间 + 可选「日期对比」的组合筛选条(With Versus)。\n *\n * 设计为纯受控组件:不使用 dva `connect` / `dispatch`,由外层持有 `value` 并合并 `onChange` 返回的局部字段。\n *\n * 子组件:\n * - YkRangeDateWithVSRange:主 RangePicker,可选日/周/月维度 Tab(由 timeOptions 控制)\n * - YkRangeDateWithVSCompare:对比区间,依赖主区间长度(dayLine)自动对齐结束日\n */\nimport type { DatePickerProps } from 'antd';\nimport { ConfigProvider } from 'antd';\nimport zhCN from 'antd/locale/zh_CN';\nimport classNames from 'classnames';\nimport dayjs, { Dayjs } from 'dayjs';\nimport 'dayjs/locale/zh-cn';\nimport React, { FC, useEffect, useMemo, type ReactNode } from 'react';\nimport styles from './styles';\nimport YkRangeDateWithVSCompare from './YkRangeDateWithVSCompare';\nimport YkRangeDateWithVSRange from './YkRangeDateWithVSRange';\n\ndayjs.locale({\n ...dayjs.Ls['zh-cn'],\n weekStart: 1,\n});\n\n/** 受控值:主区间字符串、对比区间、聚合维度(与后端约定的中文枚举,如「按日」) */\nexport type YkRangeDateWithVSValue = {\n start?: string | null;\n end?: string | null;\n cmpStart?: string | null;\n cmpEnd?: string | null;\n timeType?: string | null;\n};\n\n/** onChange 推送的增量;外层应合并进完整 value */\nexport type YkRangeDateWithVSChange = {\n start?: string;\n end?: string;\n cmpStart?: string | null;\n cmpEnd?: string | null;\n timeType?: string | null;\n};\n\ntype RangeValue = [Dayjs | null, Dayjs | null] | null;\ntype DateValue = Dayjs | null;\n\nexport type YkRangeDateWithVSProps = {\n /** 当前筛选状态(必填) */\n value: YkRangeDateWithVSValue;\n /** 字段级增量更新 */\n onChange?: (patch: YkRangeDateWithVSChange) => void;\n /** 是否展示「日期对比」整块(含对比区间选择) */\n timeCompare?: boolean;\n className?: string;\n /** 是否启用主选择器顶部的日/周/月 Tab;需与 timeOptions 同时使用 */\n dateCompare: boolean;\n /** 禁用对比能力(置灰快捷入口) */\n disableDateCompare?: boolean;\n /** Tab 文案列表,如 ['按日','按周','按月'];空数组则主面板不显示维度切换 */\n timeOptions?: string[];\n /** 弹层挂载容器;未传时默认 document.body,避免 Drawer/Modal/overflow 导致面板异常关闭 */\n getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;\n disabledDate?: DatePickerProps['disabledDate'];\n /** 若传入则覆盖 value 推导出的主区间展示 */\n rangeDate?: RangeValue;\n presetsOptions?: { label: string; value: () => [Dayjs, Dayjs] }[];\n /** 1 运营节点 2 广告节点(日历旁里程碑列表筛选,与旧版 usePageInfo 行为对齐) */\n milestoneFilterType?: 1 | 2;\n milestone?: ProjectNodeItem[];\n holidays?: ProjectNodeItem[];\n /** 主区间 RangePicker 输入框自定义展示(string / ReactNode) */\n rangeDisplayLabel?: ReactNode;\n};\n\nconst YkRangeDateWithVS: FC<YkRangeDateWithVSProps> = ({\n value,\n onChange = () => {},\n timeCompare,\n dateCompare,\n timeOptions = [],\n className,\n getPopupContainer,\n disableDateCompare = false,\n disabledDate,\n rangeDate,\n presetsOptions,\n milestoneFilterType = 1,\n milestone = [],\n holidays = [],\n rangeDisplayLabel,\n}) => {\n const start = value?.start ?? null;\n const end = value?.end ?? null;\n const cmpStart = value?.cmpStart ?? null;\n const cmpEnd = value?.cmpEnd ?? '';\n const timeType = value?.timeType ?? '';\n\n const dayLine = useMemo(() => {\n if (start && end) {\n return dayjs(end).diff(dayjs(start), 'day');\n }\n return 0;\n }, [start, end]);\n\n useEffect(() => {\n if (!timeCompare || !cmpStart || !cmpEnd) return;\n const endTime =\n dayjs(cmpStart).add(dayLine, 'day') > dayjs().endOf('day')\n ? dayjs().format('YYYY-MM-DD')\n : dayjs(cmpStart).add(dayLine, 'day').format('YYYY-MM-DD');\n if (endTime !== cmpEnd) {\n onChange({ cmpEnd: endTime });\n }\n }, [dayLine, timeCompare, cmpStart, cmpEnd, onChange]);\n\n return (\n <ConfigProvider\n locale={zhCN}\n theme={{\n components: {\n DatePicker: {\n paddingInline: 0,\n },\n },\n }}\n >\n <div className={classNames(className, styles.ykRangeDateWithVs)}>\n <YkRangeDateWithVSRange\n rangeDisplayLabel={rangeDisplayLabel}\n milestone={milestone}\n holidays={holidays}\n milestoneFilterType={milestoneFilterType}\n timeType={timeType}\n disabledDate={disabledDate}\n rangeDate={rangeDate ? rangeDate : [start ? dayjs(start) : null, end ? dayjs(end) : null]}\n presetsOptions={presetsOptions}\n timeOptions={timeOptions}\n getPopupContainer={getPopupContainer}\n dateCompare={dateCompare && timeOptions.length > 0}\n onChange={(v) => {\n onChange({\n timeType: v.timeType,\n start: (v.rangeDate as [DateValue, DateValue])[0]?.format('YYYY-MM-DD'),\n end: (v.rangeDate as [DateValue, DateValue])[1]?.format('YYYY-MM-DD'),\n });\n }}\n />\n {timeCompare && (\n <YkRangeDateWithVSCompare\n timeType={timeType}\n disableCompare={disableDateCompare}\n rangeDate={[cmpStart ? dayjs(cmpStart) : null, cmpEnd ? dayjs(cmpEnd) : null]}\n originDate={[start ? dayjs(start) : null, end ? dayjs(end) : null]}\n dayLine={dayLine}\n onChange={(v) => {\n onChange({\n cmpStart: (v.rangeDate as [DateValue, DateValue])[0]?.format('YYYY-MM-DD'),\n cmpEnd: (v.rangeDate as [DateValue, DateValue])[1]?.format('YYYY-MM-DD'),\n });\n }}\n />\n )}\n </div>\n </ConfigProvider>\n );\n};\n\nexport default YkRangeDateWithVS;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * YkRangeDateWithVS — 主时间区间 + 可选「日期对比」的组合筛选条(With Versus)。\n *\n * 设计为纯受控组件:不使用 dva `connect` / `dispatch`,由外层持有 `value` 并合并 `onChange` 返回的局部字段。\n *\n * 子组件:\n * - YkRangeDateWithVSRange:主 RangePicker,可选日/周/月维度 Tab(由 timeOptions 控制)\n * - YkRangeDateWithVSCompare:对比区间,依赖主区间长度(dayLine)自动对齐结束日\n */\nimport 'dayjs/locale/zh-cn';\nimport React from 'react';\nimport type { DatePickerProps } from 'antd';\nimport { ConfigProvider } from 'antd';\nimport zhCN from 'antd/locale/zh_CN';\nimport classNames from 'classnames';\nimport dayjs, { Dayjs } from 'dayjs';\nimport { FC, useEffect, useMemo, type ReactNode } from 'react';\nimport styles from './styles';\nimport YkRangeDateWithVSCompare from './YkRangeDateWithVSCompare';\nimport YkRangeDateWithVSRange from './YkRangeDateWithVSRange';\n\ndayjs.locale({\n ...dayjs.Ls['zh-cn'],\n weekStart: 1,\n});\n\n/** 受控值:主区间字符串、对比区间、聚合维度(与后端约定的中文枚举,如「按日」) */\nexport type YkRangeDateWithVSValue = {\n start?: string | null;\n end?: string | null;\n cmpStart?: string | null;\n cmpEnd?: string | null;\n timeType?: string | null;\n};\n\n/** onChange 推送的增量;外层应合并进完整 value */\nexport type YkRangeDateWithVSChange = {\n start?: string;\n end?: string;\n cmpStart?: string | null;\n cmpEnd?: string | null;\n timeType?: string | null;\n};\n\ntype RangeValue = [Dayjs | null, Dayjs | null] | null;\ntype DateValue = Dayjs | null;\n\nexport type YkRangeDateWithVSProps = {\n /** 当前筛选状态(必填) */\n value: YkRangeDateWithVSValue;\n /** 字段级增量更新 */\n onChange?: (patch: YkRangeDateWithVSChange) => void;\n /** 是否展示「日期对比」整块(含对比区间选择) */\n timeCompare?: boolean;\n className?: string;\n /** 是否启用主选择器顶部的日/周/月 Tab;需与 timeOptions 同时使用 */\n dateCompare: boolean;\n /** 禁用对比能力(置灰快捷入口) */\n disableDateCompare?: boolean;\n /** Tab 文案列表,如 ['按日','按周','按月'];空数组则主面板不显示维度切换 */\n timeOptions?: string[];\n /** 弹层挂载容器,默认父节点 */\n getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;\n disabledDate?: DatePickerProps['disabledDate'];\n /** 若传入则覆盖 value 推导出的主区间展示 */\n rangeDate?: RangeValue;\n presetsOptions?: { label: string; value: () => [Dayjs, Dayjs] }[];\n /** 1 运营节点 2 广告节点(日历旁里程碑列表筛选,与旧版 usePageInfo 行为对齐) */\n milestoneFilterType?: 1 | 2;\n milestone?: ProjectNodeItem[];\n holidays?: ProjectNodeItem[];\n /** 主区间 RangePicker 输入框自定义展示(string / ReactNode) */\n rangeDisplayLabel?: ReactNode;\n};\n\nconst YkRangeDateWithVS: FC<YkRangeDateWithVSProps> = ({\n value,\n onChange = () => {},\n timeCompare,\n dateCompare,\n timeOptions = [],\n className,\n getPopupContainer,\n disableDateCompare = false,\n disabledDate,\n rangeDate,\n presetsOptions,\n milestoneFilterType = 1,\n milestone = [],\n holidays = [],\n rangeDisplayLabel,\n}) => {\n const start = value?.start ?? null;\n const end = value?.end ?? null;\n const cmpStart = value?.cmpStart ?? null;\n const cmpEnd = value?.cmpEnd ?? '';\n const timeType = value?.timeType ?? '';\n\n const dayLine = useMemo(() => {\n if (start && end) {\n return dayjs(end).diff(dayjs(start), 'day');\n }\n return 0;\n }, [start, end]);\n\n useEffect(() => {\n if (!timeCompare || !cmpStart || !cmpEnd) return;\n const endTime =\n dayjs(cmpStart).add(dayLine, 'day') > dayjs().endOf('day')\n ? dayjs().format('YYYY-MM-DD')\n : dayjs(cmpStart).add(dayLine, 'day').format('YYYY-MM-DD');\n if (endTime !== cmpEnd) {\n onChange({ cmpEnd: endTime });\n }\n }, [dayLine, timeCompare, cmpStart, cmpEnd, onChange]);\n\n return (\n <ConfigProvider\n locale={zhCN}\n theme={{\n components: {\n DatePicker: {\n paddingInline: 0,\n },\n },\n }}\n >\n <div className={classNames(className, styles.ykRangeDateWithVs)}>\n <YkRangeDateWithVSRange\n rangeDisplayLabel={rangeDisplayLabel}\n milestone={milestone}\n holidays={holidays}\n milestoneFilterType={milestoneFilterType}\n timeType={timeType}\n disabledDate={disabledDate}\n rangeDate={rangeDate ? rangeDate : [start ? dayjs(start) : null, end ? dayjs(end) : null]}\n presetsOptions={presetsOptions}\n timeOptions={timeOptions}\n getPopupContainer={getPopupContainer}\n dateCompare={dateCompare && timeOptions.length > 0}\n onChange={(v) => {\n onChange({\n timeType: v.timeType,\n start: (v.rangeDate as [DateValue, DateValue])[0]?.format('YYYY-MM-DD'),\n end: (v.rangeDate as [DateValue, DateValue])[1]?.format('YYYY-MM-DD'),\n });\n }}\n />\n {timeCompare && (\n <YkRangeDateWithVSCompare\n timeType={timeType}\n disableCompare={disableDateCompare}\n rangeDate={[cmpStart ? dayjs(cmpStart) : null, cmpEnd ? dayjs(cmpEnd) : null]}\n originDate={[start ? dayjs(start) : null, end ? dayjs(end) : null]}\n dayLine={dayLine}\n onChange={(v) => {\n onChange({\n cmpStart: (v.rangeDate as [DateValue, DateValue])[0]?.format('YYYY-MM-DD'),\n cmpEnd: (v.rangeDate as [DateValue, DateValue])[1]?.format('YYYY-MM-DD'),\n });\n }}\n />\n )}\n </div>\n </ConfigProvider>\n );\n};\n\nexport default YkRangeDateWithVS;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;AASA,OAAO;AACP,OAAO,WAAW;AAElB,SAAS,sBAAsB;AAC/B,OAAO,UAAU;AACjB,OAAO,gBAAgB;AACvB,OAAO,WAAsB;AAC7B,SAAa,WAAW,eAA+B;AACvD,OAAO,YAAY;AACnB,OAAO,8BAA8B;AACrC,OAAO,4BAA4B;AAEnC,MAAM,OAAO,iCACR,MAAM,GAAG,OAAO,IADR;AAAA,EAEX,WAAW;AACb,EAAC;AAmDD,IAAM,oBAAgD,CAAC;AAAA,EACrD;AAAA,EACA,WAAW,MAAM;AAAA,EAAC;AAAA,EAClB;AAAA,EACA;AAAA,EACA,cAAc,CAAC;AAAA,EACf;AAAA,EACA;AAAA,EACA,qBAAqB;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA,sBAAsB;AAAA,EACtB,YAAY,CAAC;AAAA,EACb,WAAW,CAAC;AAAA,EACZ;AACF,MAAM;AA3FN;AA4FE,QAAM,SAAQ,oCAAO,UAAP,YAAgB;AAC9B,QAAM,OAAM,oCAAO,QAAP,YAAc;AAC1B,QAAM,YAAW,oCAAO,aAAP,YAAmB;AACpC,QAAM,UAAS,oCAAO,WAAP,YAAiB;AAChC,QAAM,YAAW,oCAAO,aAAP,YAAmB;AAEpC,QAAM,UAAU,QAAQ,MAAM;AAC5B,QAAI,SAAS,KAAK;AAChB,aAAO,MAAM,GAAG,EAAE,KAAK,MAAM,KAAK,GAAG,KAAK;AAAA,IAC5C;AACA,WAAO;AAAA,EACT,GAAG,CAAC,OAAO,GAAG,CAAC;AAEf,YAAU,MAAM;AACd,QAAI,CAAC,eAAe,CAAC,YAAY,CAAC;AAAQ;AAC1C,UAAM,UACJ,MAAM,QAAQ,EAAE,IAAI,SAAS,KAAK,IAAI,MAAM,EAAE,MAAM,KAAK,IACrD,MAAM,EAAE,OAAO,YAAY,IAC3B,MAAM,QAAQ,EAAE,IAAI,SAAS,KAAK,EAAE,OAAO,YAAY;AAC7D,QAAI,YAAY,QAAQ;AACtB,eAAS,EAAE,QAAQ,QAAQ,CAAC;AAAA,IAC9B;AAAA,EACF,GAAG,CAAC,SAAS,aAAa,UAAU,QAAQ,QAAQ,CAAC;AAErD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,QAAQ;AAAA,MACR,OAAO;AAAA,QACL,YAAY;AAAA,UACV,YAAY;AAAA,YACV,eAAe;AAAA,UACjB;AAAA,QACF;AAAA,MACF;AAAA;AAAA,IAEA,oCAAC,SAAI,WAAW,WAAW,WAAW,OAAO,iBAAiB,KAC5D;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAW,YAAY,YAAY,CAAC,QAAQ,MAAM,KAAK,IAAI,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI;AAAA,QACxF;AAAA,QACA;AAAA,QACA;AAAA,QACA,aAAa,eAAe,YAAY,SAAS;AAAA,QACjD,UAAU,CAAC,MAAM;AA5I3B,cAAAA,KAAAC;AA6IY,mBAAS;AAAA,YACP,UAAU,EAAE;AAAA,YACZ,QAAQD,MAAA,EAAE,UAAqC,CAAC,MAAxC,gBAAAA,IAA2C,OAAO;AAAA,YAC1D,MAAMC,MAAA,EAAE,UAAqC,CAAC,MAAxC,gBAAAA,IAA2C,OAAO;AAAA,UAC1D,CAAC;AAAA,QACH;AAAA;AAAA,IACF,GACC,eACC;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,gBAAgB;AAAA,QAChB,WAAW,CAAC,WAAW,MAAM,QAAQ,IAAI,MAAM,SAAS,MAAM,MAAM,IAAI,IAAI;AAAA,QAC5E,YAAY,CAAC,QAAQ,MAAM,KAAK,IAAI,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI;AAAA,QACjE;AAAA,QACA,UAAU,CAAC,MAAM;AA3J7B,cAAAD,KAAAC;AA4Jc,mBAAS;AAAA,YACP,WAAWD,MAAA,EAAE,UAAqC,CAAC,MAAxC,gBAAAA,IAA2C,OAAO;AAAA,YAC7D,SAASC,MAAA,EAAE,UAAqC,CAAC,MAAxC,gBAAAA,IAA2C,OAAO;AAAA,UAC7D,CAAC;AAAA,QACH;AAAA;AAAA,IACF,CAEJ;AAAA,EACF;AAEJ;AAEA,IAAO,4BAAQ;",
6
6
  "names": ["_a", "_b"]
7
7
  }
@@ -20,28 +20,10 @@
20
20
  padding: 0 10px;
21
21
  color: #333333;
22
22
  background-color: #ffffff;
23
- border: 1px solid #d9d9d9;
23
+ border: 0.5px solid #e7e7e7;
24
24
  border-radius: 2px;
25
25
  cursor: pointer;
26
- transition: all 0.2s;
27
-
28
- &:hover {
29
- border-color: #66a8ff;
30
- color: #66a8ff !important;
31
-
32
- :global {
33
- .ant-picker-input input,
34
- .ant-picker-range-separator {
35
- color: #66a8ff !important;
36
- }
37
- }
38
- }
39
-
40
- :global {
41
- .ant-picker-input input {
42
- cursor: pointer;
43
- }
44
- }
26
+ transition: color 0.2s;
45
27
  }
46
28
 
47
29
  .globalItem i {
@@ -72,7 +54,7 @@
72
54
 
73
55
  .globalItemDate,
74
56
  .globalItemSingleDate {
75
- width: 200px;
57
+ width: 190px;
76
58
  padding: 0;
77
59
  }
78
60
 
@@ -81,7 +63,7 @@
81
63
  }
82
64
 
83
65
  .globalItemDateSingle {
84
- width: 200px;
66
+ width: 190px;
85
67
  padding: 0;
86
68
  }
87
69
 
@@ -120,7 +102,6 @@
120
102
  padding-left: 5px;
121
103
  display: flex;
122
104
  align-items: center;
123
- white-space: nowrap;
124
105
  }
125
106
 
126
107
  .globalItemDateTerm::after {
@@ -1,5 +1,22 @@
1
- import 'dayjs/locale/zh-cn';
1
+ /**
2
+ * 组件名称:YkRangeTimeWithRecent
3
+ * 组件描述:时间范围 + 动态「最近 N 天」等能力的时间筛选(Range + Recent)
4
+ * 组件使用场景:在需要选择时间范围的场景中使用,如筛选、排序等
5
+ * 组件参数说明:
6
+ * - value: {
7
+ * time_range: [string, string] | null | undefined;
8
+ * recent_day: string | null | undefined;
9
+ * time_type: number | undefined;
10
+ * }
11
+ * - timeTypes: 时间类型选项
12
+ * - onChange: 时间范围变化回调
13
+ * - placement: 弹层位置
14
+ * - placeholder: 占位符
15
+ * - noTimeFilter: 是否禁用动态时间
16
+ * - noIcon: 是否禁用图标
17
+ */
2
18
  import React, { FC } from 'react';
19
+ import 'dayjs/locale/zh-cn';
3
20
  export type YkRangeTimeWithRecentTimeType = '合计' | '按小时' | '按天' | '按周' | '按月';
4
21
  export interface YkRangeTimeWithRecentProps {
5
22
  style?: React.CSSProperties;
@@ -19,7 +19,7 @@ var __spreadValues = (a, b) => {
19
19
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
20
 
21
21
  // src/components/YkRangeTimeWithRecent/index.tsx
22
- import { ClockCircleOutlined } from "@ant-design/icons";
22
+ import React, { useState, useEffect, useMemo } from "react";
23
23
  import {
24
24
  Button,
25
25
  ConfigProvider,
@@ -34,14 +34,14 @@ import {
34
34
  } from "antd";
35
35
  import datePickerZhCN from "antd/es/date-picker/locale/zh_CN";
36
36
  import zhCN from "antd/locale/zh_CN";
37
- import classNames from "classnames";
38
37
  import dayjs from "dayjs";
39
38
  import "dayjs/locale/zh-cn";
40
39
  import isoWeek from "dayjs/plugin/isoWeek";
41
40
  import weekOfYear from "dayjs/plugin/weekOfYear";
42
- import React, { useEffect, useMemo, useRef, useState } from "react";
43
- import { endTimeOptions, optionsMap, pickerMap, recentOptionsMap, startTimeOptions } from "./constants";
44
41
  import styles from "./index.module.less";
42
+ import classNames from "classnames";
43
+ import { ClockCircleOutlined } from "@ant-design/icons";
44
+ import { startTimeOptions, endTimeOptions, optionsMap, pickerMap, recentOptionsMap } from "./constants";
45
45
  dayjs.extend(isoWeek);
46
46
  dayjs.extend(weekOfYear);
47
47
  dayjs.locale(__spreadProps(__spreadValues({}, dayjs.Ls["zh-cn"]), {
@@ -89,7 +89,6 @@ var YkRangeTimeWithRecent = ({
89
89
  }
90
90
  };
91
91
  const [open, setOpen] = useState(false);
92
- const triggerWrapRef = useRef(null);
93
92
  const [active, setActive] = useState("start");
94
93
  const [timeFilterType, setTimeFilterType] = useState(0);
95
94
  const [localValue, setLocalValue] = useState(null);
@@ -248,23 +247,6 @@ var YkRangeTimeWithRecent = ({
248
247
  setTimeFilterType(1);
249
248
  }
250
249
  }, [value == null ? void 0 : value.recent_day]);
251
- useEffect(() => {
252
- if (!open)
253
- return;
254
- const onPointerDownCapture = (e) => {
255
- var _a;
256
- const el = e.target;
257
- if (!(el instanceof Element))
258
- return;
259
- if ((_a = triggerWrapRef.current) == null ? void 0 : _a.contains(el))
260
- return;
261
- if (el.closest("[data-yk-range-time-with-recent-content]"))
262
- return;
263
- setOpen(false);
264
- };
265
- document.addEventListener("pointerdown", onPointerDownCapture, true);
266
- return () => document.removeEventListener("pointerdown", onPointerDownCapture, true);
267
- }, [open]);
268
250
  useEffect(() => {
269
251
  var _a, _b;
270
252
  if (open) {
@@ -425,7 +407,7 @@ var YkRangeTimeWithRecent = ({
425
407
  }
426
408
  return /* @__PURE__ */ React.createElement("div", { className: "ant-picker-cell-inner", style: { width: 36 }, onClick: () => cellClick(current, info.type) }, current.date());
427
409
  };
428
- const content = /* @__PURE__ */ React.createElement("div", { className: styles.popoverContent, "data-yk-range-time-with-recent-content": true }, !timeTypes && noTimeFilter ? null : /* @__PURE__ */ React.createElement("div", { className: styles.header }, timeTypes && timeTypes.length > 0 && /* @__PURE__ */ React.createElement(
410
+ const content = /* @__PURE__ */ React.createElement("div", { className: styles.popoverContent }, !timeTypes && noTimeFilter ? null : /* @__PURE__ */ React.createElement("div", { className: styles.header }, timeTypes && timeTypes.length > 0 && /* @__PURE__ */ React.createElement(
429
411
  Tabs,
430
412
  {
431
413
  activeKey: localTimeTypeName,
@@ -511,7 +493,7 @@ var YkRangeTimeWithRecent = ({
511
493
  locale: datePickerZhCN,
512
494
  className: styles.rangePicker,
513
495
  getPopupContainer: (triggerNode) => triggerNode.parentElement,
514
- open,
496
+ open: true,
515
497
  cellRender,
516
498
  picker,
517
499
  autoFocus: true,
@@ -530,7 +512,6 @@ var YkRangeTimeWithRecent = ({
530
512
  defaultValue: startTimeOptions[0].value,
531
513
  prefix: /* @__PURE__ */ React.createElement(ClockCircleOutlined, null),
532
514
  className: styles.timeSelectItem,
533
- getPopupContainer: (triggerNode) => triggerNode.parentElement,
534
515
  onChange: (hour) => {
535
516
  timeChange(hour, "start");
536
517
  }
@@ -543,7 +524,6 @@ var YkRangeTimeWithRecent = ({
543
524
  defaultValue: endTimeOptions[endTimeOptions.length - 1].value,
544
525
  prefix: /* @__PURE__ */ React.createElement(ClockCircleOutlined, null),
545
526
  className: styles.timeSelectItem,
546
- getPopupContainer: (triggerNode) => triggerNode.parentElement,
547
527
  onChange: (hour) => {
548
528
  timeChange(hour, "end");
549
529
  }
@@ -624,7 +604,7 @@ var YkRangeTimeWithRecent = ({
624
604
  trigger: "click",
625
605
  styles: { body: { borderRadius: 2, padding: 0 } }
626
606
  },
627
- /* @__PURE__ */ React.createElement("div", { className: styles.btnRange, style, ref: triggerWrapRef }, timeTypes && timeTypes.length > 0 && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("span", { className: styles.btnTimeType }, timeTypeKeys[normalizeTimeTypeForTimeTypes(value.time_type, timeTypes)]), /* @__PURE__ */ React.createElement(Divider, { type: "vertical" })), dateFieldOptionName && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("span", { className: styles.btnTimeType }, dateFieldOptionName), /* @__PURE__ */ React.createElement(Divider, { type: "vertical" })), !noIcon && /* @__PURE__ */ React.createElement("i", { className: "iconfont icon-date", style: { color: "#3B86F9" } }), showRangeTime ? /* @__PURE__ */ React.createElement("span", { className: styles.btnRangeValue, style: !noIcon ? { marginLeft: 5 } : void 0 }, showRangeTime) : placeholder ? /* @__PURE__ */ React.createElement("div", { className: styles.placeholder }, placeholder) : null, clearable && (value.time_range || value.recent_day) && /* @__PURE__ */ React.createElement(
607
+ /* @__PURE__ */ React.createElement("div", { className: styles.btnRange, style }, timeTypes && timeTypes.length > 0 && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("span", { className: styles.btnTimeType }, timeTypeKeys[normalizeTimeTypeForTimeTypes(value.time_type, timeTypes)]), /* @__PURE__ */ React.createElement(Divider, { type: "vertical" })), dateFieldOptionName && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("span", { className: styles.btnTimeType }, dateFieldOptionName), /* @__PURE__ */ React.createElement(Divider, { type: "vertical" })), !noIcon && /* @__PURE__ */ React.createElement("i", { className: "iconfont icon-date", style: { color: "#3B86F9" } }), showRangeTime ? /* @__PURE__ */ React.createElement("span", { className: styles.btnRangeValue, style: !noIcon ? { marginLeft: 5 } : void 0 }, showRangeTime) : placeholder ? /* @__PURE__ */ React.createElement("div", { className: styles.placeholder }, placeholder) : null, clearable && (value.time_range || value.recent_day) && /* @__PURE__ */ React.createElement(
628
608
  "i",
629
609
  {
630
610
  onClick: (e) => {