{"version":3,"file":"index.mjs","sources":["../../../../../../../../packages/vue-components/vc-picker/src/panels/DatePanel/index.tsx"],"sourcesContent":["import type { PanelSharedProps } from '../../interface';\nimport type { KeyboardConfig } from '../../utils/uiUtil';\nimport type { DateBodyPassProps, DateRender } from './DateBody';\nimport { classNames } from '@antdv/utils';\nimport useMergeProps from '../../hooks/useMergeProps';\nimport { WEEK_DAY_COUNT } from '../../utils/dateUtil';\nimport { createKeydownHandler } from '../../utils/uiUtil';\nimport DateBody from './DateBody';\nimport DateHeader from './DateHeader';\n\nconst DATE_ROW_COUNT = 6;\n\nexport type DatePanelProps<DateType> = {\n  active?: boolean;\n  dateRender?: DateRender<DateType>;\n\n  // Used for week panel\n  panelName?: string;\n  keyboardConfig?: KeyboardConfig;\n} & PanelSharedProps<DateType> &\n  DateBodyPassProps<DateType>;\n\nfunction DatePanel<DateType>(_props: DatePanelProps<DateType>) {\n  const props = useMergeProps(_props);\n  const {\n    prefixCls,\n    panelName = 'date',\n    keyboardConfig,\n    active,\n    operationRef,\n    generateConfig,\n    value,\n    viewDate,\n    onViewDateChange,\n    onPanelChange,\n    onSelect,\n  } = props;\n  const panelPrefixCls = `${prefixCls}-${panelName}-panel`;\n  // ======================= Keyboard =======================\n  operationRef.value = {\n    onKeydown: (event: KeyboardEvent) =>\n      createKeydownHandler(event, {\n        onLeftRight: (diff) => {\n          onSelect(generateConfig.addDate(value || viewDate, diff), 'key');\n        },\n        onCtrlLeftRight: (diff) => {\n          onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n        },\n        onUpDown: (diff) => {\n          onSelect(generateConfig.addDate(value || viewDate, diff * WEEK_DAY_COUNT), 'key');\n        },\n        onPageUpDown: (diff) => {\n          onSelect(generateConfig.addMonth(value || viewDate, diff), 'key');\n        },\n        ...keyboardConfig,\n      }),\n  };\n\n  // ==================== View Operation ====================\n  const onYearChange = (diff: number) => {\n    const newDate = generateConfig.addYear(viewDate, diff);\n    onViewDateChange(newDate);\n    onPanelChange(null, newDate);\n  };\n  const onMonthChange = (diff: number) => {\n    const newDate = generateConfig.addMonth(viewDate, diff);\n    onViewDateChange(newDate);\n    onPanelChange(null, newDate);\n  };\n\n  return (\n    <div\n      class={classNames(panelPrefixCls, {\n        [`${panelPrefixCls}-active`]: active,\n      })}\n    >\n      <DateHeader\n        {...props}\n        prefixCls={prefixCls}\n        value={value}\n        viewDate={viewDate}\n        // View Operation\n        onPrevYear={() => {\n          onYearChange(-1);\n        }}\n        onNextYear={() => {\n          onYearChange(1);\n        }}\n        onPrevMonth={() => {\n          onMonthChange(-1);\n        }}\n        onNextMonth={() => {\n          onMonthChange(1);\n        }}\n        onMonthClick={() => {\n          onPanelChange('month', viewDate);\n        }}\n        onYearClick={() => {\n          onPanelChange('year', viewDate);\n        }}\n      />\n      <DateBody\n        {...props}\n        onSelect={date => onSelect(date, 'mouse')}\n        prefixCls={prefixCls}\n        value={value}\n        viewDate={viewDate}\n        rowCount={DATE_ROW_COUNT}\n      />\n    </div>\n  );\n}\n\nDatePanel.displayName = 'DatePanel';\nDatePanel.inheritAttrs = false;\n\nexport default DatePanel;\n"],"names":["DATE_ROW_COUNT","DatePanel","_props","props","useMergeProps","prefixCls","panelName","keyboardConfig","active","operationRef","generateConfig","value","viewDate","onViewDateChange","onPanelChange","onSelect","panelPrefixCls","onKeydown","event","createKeydownHandler","onLeftRight","diff","addDate","onCtrlLeftRight","addYear","onUpDown","WEEK_DAY_COUNT","onPageUpDown","addMonth","onYearChange","newDate","onMonthChange","_createVNode","classNames","DateHeader","onPrevYear","onNextYear","onPrevMonth","onNextMonth","onMonthClick","onYearClick","DateBody","date","displayName","inheritAttrs"],"mappings":"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"}