{"version":3,"file":"MonthBody.cjs","sources":["../../../../../../../../packages/vue-components/vc-picker/src/panels/MonthPanel/MonthBody.tsx"],"sourcesContent":["import type { VueNode } from '@antdv/types';\nimport type { GenerateConfig } from '../../generate';\nimport type { Locale } from '../../interface';\nimport useCellClassName from '../../hooks/useCellClassName';\nimport useMergeProps from '../../hooks/useMergeProps';\nimport { useInjectRange } from '../../RangeContext';\nimport { formatValue, isSameMonth } from '../../utils/dateUtil';\nimport PanelBody from '../PanelBody';\n\nexport const MONTH_COL_COUNT = 3;\nconst MONTH_ROW_COUNT = 4;\n\nexport type MonthCellRender<DateType> = (obj: { current: DateType; locale: Locale }) => VueNode;\n\nexport interface MonthBodyProps<DateType> {\n  prefixCls: string;\n  locale: Locale;\n  generateConfig: GenerateConfig<DateType>;\n  value?: DateType | null;\n  viewDate: DateType;\n  disabledDate?: (date: DateType) => boolean;\n  monthCellRender?: MonthCellRender<DateType>;\n  onSelect: (value: DateType) => void;\n}\n\nfunction MonthBody<DateType>(_props: MonthBodyProps<DateType>) {\n  const props = useMergeProps(_props);\n  const { prefixCls, locale, value, viewDate, generateConfig, monthCellRender } = props;\n\n  const { rangedValue, hoverRangedValue } = useInjectRange();\n\n  const cellPrefixCls = `${prefixCls}-cell`;\n\n  const getCellClassName = useCellClassName({\n    cellPrefixCls,\n    value,\n    generateConfig,\n    rangedValue: rangedValue.value,\n    hoverRangedValue: hoverRangedValue.value,\n    isSameCell: (current, target) => isSameMonth(generateConfig, current, target),\n    isInView: () => true,\n    offsetCell: (date, offset) => generateConfig.addMonth(date, offset),\n  });\n\n  const monthsLocale: string[]\n    = locale.shortMonths\n    || (generateConfig.locale.getShortMonths\n      ? generateConfig.locale.getShortMonths(locale.locale)\n      : []);\n\n  const baseMonth = generateConfig.setMonth(viewDate, 0);\n\n  const getCellNode = monthCellRender\n    ? (date: DateType) => monthCellRender({ current: date, locale })\n    : undefined;\n\n  return (\n    <PanelBody\n      {...props}\n      rowNum={MONTH_ROW_COUNT}\n      colNum={MONTH_COL_COUNT}\n      baseDate={baseMonth}\n      getCellNode={getCellNode}\n      getCellText={date =>\n        locale.monthFormat\n          ? formatValue(date, {\n              locale,\n              format: locale.monthFormat,\n              generateConfig,\n            })\n          : monthsLocale[generateConfig.getMonth(date)]}\n      getCellClassName={getCellClassName}\n      getCellDate={generateConfig.addMonth}\n      titleCell={date =>\n        formatValue(date, {\n          locale,\n          format: 'YYYY-MM',\n          generateConfig,\n        })}\n    />\n  );\n}\n\nMonthBody.displayName = 'MonthBody';\nMonthBody.inheritAttrs = false;\n\nexport default MonthBody;\n"],"names":["MONTH_COL_COUNT","MONTH_ROW_COUNT","MonthBody","_props","props","useMergeProps","prefixCls","locale","value","viewDate","generateConfig","monthCellRender","rangedValue","hoverRangedValue","useInjectRange","cellPrefixCls","getCellClassName","useCellClassName","isSameCell","current","target","isSameMonth","isInView","offsetCell","date","offset","addMonth","monthsLocale","shortMonths","getShortMonths","baseMonth","setMonth","getCellNode","undefined","_createVNode","PanelBody","monthFormat","formatValue","format","getMonth","displayName","inheritAttrs"],"mappings":";;;;;;;;;;;AASO,MAAMA,eAAkB,GAAA,EAAA;AAC/B,MAAMC,eAAkB,GAAA,CAAA,CAAA;AAexB,SAASC,UAAoBC,MAAkC,EAAA;AAC7D,EAAMC,MAAAA,KAAAA,GAAQC,sBAAcF,MAAM,CAAA,CAAA;AAClC,EAAM,MAAA;AAAA,IAAEG,SAAAA;AAAAA,IAAWC,MAAAA;AAAAA,IAAQC,KAAAA;AAAAA,IAAOC,QAAAA;AAAAA,IAAUC,cAAAA;AAAAA,IAAgBC,eAAAA;AAAAA,GAAoBP,GAAAA,KAAAA,CAAAA;AAEhF,EAAM,MAAA;AAAA,IAAEQ,WAAAA;AAAAA,IAAaC,gBAAAA;AAAAA,MAAqBC,2BAAe,EAAA,CAAA;AAEzD,EAAMC,MAAAA,aAAAA,GAAiB,GAAET,SAAU,CAAA,KAAA,CAAA,CAAA;AAEnC,EAAA,MAAMU,mBAAmBC,wBAAiB,CAAA;AAAA,IACxCF,aAAAA;AAAAA,IACAP,KAAAA;AAAAA,IACAE,cAAAA;AAAAA,IACAE,aAAaA,WAAYJ,CAAAA,KAAAA;AAAAA,IACzBK,kBAAkBA,gBAAiBL,CAAAA,KAAAA;AAAAA,IACnCU,YAAYA,CAACC,OAAAA,EAASC,WAAWC,oBAAYX,CAAAA,cAAAA,EAAgBS,SAASC,MAAM,CAAA;AAAA,IAC5EE,UAAUA,MAAM,IAAA;AAAA,IAChBC,YAAYA,CAACC,IAAAA,EAAMC,WAAWf,cAAegB,CAAAA,QAAAA,CAASF,MAAMC,MAAM,CAAA;AAAA,GACnE,CAAA,CAAA;AAED,EAAA,MAAME,YACFpB,GAAAA,MAAAA,CAAOqB,WACLlB,KAAAA,cAAAA,CAAeH,MAAOsB,CAAAA,cAAAA,GACtBnB,cAAeH,CAAAA,MAAAA,CAAOsB,cAAetB,CAAAA,MAAAA,CAAOA,MAAM,CAAA,GAClD,EAAA,CAAA,CAAA;AAEN,EAAA,MAAMuB,SAAYpB,GAAAA,cAAAA,CAAeqB,QAAStB,CAAAA,QAAAA,EAAU,CAAC,CAAA,CAAA;AAErD,EAAMuB,MAAAA,WAAAA,GAAcrB,eACfa,GAAAA,CAAAA,IAAAA,KAAmBb,eAAgB,CAAA;AAAA,IAAEQ,OAASK,EAAAA,IAAAA;AAAAA,IAAMjB,MAAAA;AAAAA,GAAQ,CAC7D0B,GAAAA,KAAAA,CAAAA,CAAAA;AAEJ,EAAA,OAAAC,gBAAAC,iBAAA,EAAA;AAAA,IAAA,GAEQ/B,KAAAA;AAAAA,IAAK,QACDH,EAAAA,eAAAA;AAAAA,IAAe,QACfD,EAAAA,eAAAA;AAAAA,IAAe,UACb8B,EAAAA,SAAAA;AAAAA,IAAS,aACNE,EAAAA,WAAAA;AAAAA,IAAW,aACXR,EAAAA,CAAAA,IAAAA,KACXjB,MAAO6B,CAAAA,WAAAA,GACHC,qBAAYb,IAAM,EAAA;AAAA,MAChBjB,MAAAA;AAAAA,MACA+B,QAAQ/B,MAAO6B,CAAAA,WAAAA;AAAAA,MACf1B,cAAAA;AAAAA,KACD,CACDiB,GAAAA,YAAAA,CAAajB,cAAe6B,CAAAA,QAAAA,CAASf,IAAI,CAAC,CAAA;AAAA,IAAC,kBAC/BR,EAAAA,gBAAAA;AAAAA,IAAgB,eACrBN,cAAegB,CAAAA,QAAAA;AAAAA,IAAQ,WAAA,EACzBF,CACTa,IAAAA,KAAAA,oBAAAA,CAAYb,IAAM,EAAA;AAAA,MAChBjB,MAAAA;AAAAA,MACA+B,MAAQ,EAAA,SAAA;AAAA,MACR5B,cAAAA;AAAAA,KACD,CAAA;AAAA,KAAC,IAAA,CAAA,CAAA;AAGV,CAAA;AAEAR,SAAAA,CAAUsC,WAAc,GAAA,WAAA,CAAA;AACxBtC,SAAAA,CAAUuC,YAAe,GAAA,KAAA;;;;;"}