{"version":3,"file":"index.mjs","sources":["../../../../../../../../packages/vue-components/vc-picker/src/panels/MonthPanel/index.tsx"],"sourcesContent":["import type { PanelSharedProps } from '../../interface';\nimport type { MonthCellRender } from './MonthBody';\nimport useMergeProps from '../../hooks/useMergeProps';\nimport { createKeydownHandler } from '../../utils/uiUtil';\nimport MonthBody, { MONTH_COL_COUNT } from './MonthBody';\nimport MonthHeader from './MonthHeader';\n\nexport type MonthPanelProps<DateType> = {\n  monthCellContentRender?: MonthCellRender<DateType>;\n} & PanelSharedProps<DateType>;\n\nfunction MonthPanel<DateType>(_props: MonthPanelProps<DateType>) {\n  const props = useMergeProps(_props);\n  const {\n    prefixCls,\n    operationRef,\n    onViewDateChange,\n    generateConfig,\n    value,\n    viewDate,\n    onPanelChange,\n    onSelect,\n  } = props;\n\n  const panelPrefixCls = `${prefixCls}-month-panel`;\n\n  // ======================= Keyboard =======================\n  operationRef.value = {\n    onKeydown: (event: KeyboardEvent) =>\n      createKeydownHandler(event, {\n        onLeftRight: (diff) => {\n          onSelect(generateConfig.addMonth(value || viewDate, diff), 'key');\n        },\n        onCtrlLeftRight: (diff) => {\n          onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n        },\n        onUpDown: (diff) => {\n          onSelect(generateConfig.addMonth(value || viewDate, diff * MONTH_COL_COUNT), 'key');\n        },\n        onEnter: () => {\n          onPanelChange('date', value || viewDate);\n        },\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\n  return (\n    <div class={panelPrefixCls}>\n      <MonthHeader\n        {...props}\n        prefixCls={prefixCls}\n        onPrevYear={() => {\n          onYearChange(-1);\n        }}\n        onNextYear={() => {\n          onYearChange(1);\n        }}\n        onYearClick={() => {\n          onPanelChange('year', viewDate);\n        }}\n      />\n      <MonthBody<DateType>\n        {...props}\n        prefixCls={prefixCls}\n        onSelect={(date) => {\n          onSelect(date, 'mouse');\n          onPanelChange('date', date);\n        }}\n      />\n    </div>\n  );\n}\n\nMonthPanel.displayName = 'MonthPanel';\nMonthPanel.inheritAttrs = false;\n\nexport default MonthPanel;\n"],"names":["MonthPanel","_props","props","useMergeProps","prefixCls","operationRef","onViewDateChange","generateConfig","value","viewDate","onPanelChange","onSelect","panelPrefixCls","onKeydown","event","createKeydownHandler","onLeftRight","diff","addMonth","onCtrlLeftRight","addYear","onUpDown","MONTH_COL_COUNT","onEnter","onYearChange","newDate","_createVNode","MonthHeader","onPrevYear","onNextYear","onYearClick","MonthBody","date","displayName","inheritAttrs"],"mappings":";;;;;;AAWA,SAASA,WAAqBC,MAAmC,EAAA;AAC/D,EAAMC,MAAAA,KAAAA,GAAQC,cAAcF,MAAM,CAAA,CAAA;AAClC,EAAM,MAAA;AAAA,IACJG,SAAAA;AAAAA,IACAC,YAAAA;AAAAA,IACAC,gBAAAA;AAAAA,IACAC,cAAAA;AAAAA,IACAC,KAAAA;AAAAA,IACAC,QAAAA;AAAAA,IACAC,aAAAA;AAAAA,IACAC,QAAAA;AAAAA,GACET,GAAAA,KAAAA,CAAAA;AAEJ,EAAMU,MAAAA,cAAAA,GAAkB,GAAER,SAAU,CAAA,YAAA,CAAA,CAAA;AAGpCC,EAAAA,YAAAA,CAAaG,KAAQ,GAAA;AAAA,IACnBK,SAAAA,EAAYC,CACVC,KAAAA,KAAAA,oBAAAA,CAAqBD,KAAO,EAAA;AAAA,MAC1BE,aAAcC,CAAS,IAAA,KAAA;AACrBN,QAAAA,QAAAA,CAASJ,eAAeW,QAASV,CAAAA,KAAAA,IAASC,QAAUQ,EAAAA,IAAI,GAAG,KAAK,CAAA,CAAA;AAAA,OAClE;AAAA,MACAE,iBAAkBF,CAAS,IAAA,KAAA;AACzBN,QAAAA,QAAAA,CAASJ,eAAea,OAAQZ,CAAAA,KAAAA,IAASC,QAAUQ,EAAAA,IAAI,GAAG,KAAK,CAAA,CAAA;AAAA,OACjE;AAAA,MACAI,UAAWJ,CAAS,IAAA,KAAA;AAClBN,QAAAA,QAAAA,CAASJ,eAAeW,QAASV,CAAAA,KAAAA,IAASC,UAAUQ,IAAOK,GAAAA,eAAe,GAAG,KAAK,CAAA,CAAA;AAAA,OACpF;AAAA,MACAC,SAASA,MAAM;AACbb,QAAc,aAAA,CAAA,MAAA,EAAQF,SAASC,QAAQ,CAAA,CAAA;AAAA,OACzC;AAAA,KACD,CAAA;AAAA,GACL,CAAA;AAGA,EAAA,MAAMe,eAAgBP,CAAiB,IAAA,KAAA;AACrC,IAAA,MAAMQ,OAAUlB,GAAAA,cAAAA,CAAea,OAAQX,CAAAA,QAAAA,EAAUQ,IAAI,CAAA,CAAA;AACrDX,IAAAA,gBAAAA,CAAiBmB,OAAO,CAAA,CAAA;AACxBf,IAAAA,aAAAA,CAAc,MAAMe,OAAO,CAAA,CAAA;AAAA,GAC7B,CAAA;AAEA,EAAA,OAAAC,YAAA,KAAA,EAAA;AAAA,IAAA,OACcd,EAAAA,cAAAA;AAAAA,GAAc,EAAAc,CAAAA,WAAAA,CAAAC,WAAA,EAAA;AAAA,IAAA,GAElBzB,KAAAA;AAAAA,IAAK,WACEE,EAAAA,SAAAA;AAAAA,IAAS,cACRwB,MAAM;AAChBJ,MAAAA,YAAAA,CAAa,CAAE,CAAA,CAAA,CAAA;AAAA,KACjB;AAAA,IAAC,cACWK,MAAM;AAChBL,MAAAA,YAAAA,CAAa,CAAC,CAAA,CAAA;AAAA,KAChB;AAAA,IAAC,eACYM,MAAM;AACjBpB,MAAAA,aAAAA,CAAc,QAAQD,QAAQ,CAAA,CAAA;AAAA,KAChC;AAAA,GAACiB,EAAAA,IAAAA,CAAAA,EAAAA,WAAAA,CAAAK,SAAA,EAAA;AAAA,IAAA,GAGG7B,KAAAA;AAAAA,IAAK,WACEE,EAAAA,SAAAA;AAAAA,IAAS,YACT4B,CAAS,IAAA,KAAA;AAClBrB,MAAAA,QAAAA,CAASqB,MAAM,OAAO,CAAA,CAAA;AACtBtB,MAAAA,aAAAA,CAAc,QAAQsB,IAAI,CAAA,CAAA;AAAA,KAC5B;AAAA,GAAC,EAAA,IAAA,CAAA,CAAA,CAAA,CAAA;AAIT,CAAA;AAEAhC,UAAAA,CAAWiC,WAAc,GAAA,YAAA,CAAA;AACzBjC,UAAAA,CAAWkC,YAAe,GAAA,KAAA;;;;"}