{"version":3,"file":"index.cjs","sources":["../../../../../../../../packages/vue-components/vc-picker/src/panels/YearPanel/index.tsx"],"sourcesContent":["import type { PanelMode, PanelSharedProps } from '../../interface';\nimport useMergeProps from '../../hooks/useMergeProps';\nimport { createKeydownHandler } from '../../utils/uiUtil';\nimport { YEAR_DECADE_COUNT } from './constant';\nimport YearBody, { YEAR_COL_COUNT } from './YearBody';\nimport YearHeader from './YearHeader';\n\nexport type YearPanelProps<DateType> = {\n  sourceMode: PanelMode;\n} & PanelSharedProps<DateType>;\n\nfunction YearPanel<DateType>(_props: YearPanelProps<DateType>) {\n  const props = useMergeProps(_props);\n  const {\n    prefixCls,\n    operationRef,\n    onViewDateChange,\n    generateConfig,\n    value,\n    viewDate,\n    sourceMode,\n    onSelect,\n    onPanelChange,\n  } = props;\n\n  const panelPrefixCls = `${prefixCls}-year-panel`;\n\n  // ======================= Keyboard =======================\n  operationRef.value = {\n    onKeydown: (event: KeyboardEvent) =>\n      createKeydownHandler(event, {\n        onLeftRight: (diff) => {\n          onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n        },\n        onCtrlLeftRight: (diff) => {\n          onSelect(generateConfig.addYear(value || viewDate, diff * YEAR_DECADE_COUNT), 'key');\n        },\n        onUpDown: (diff) => {\n          onSelect(generateConfig.addYear(value || viewDate, diff * YEAR_COL_COUNT), 'key');\n        },\n        onEnter: () => {\n          onPanelChange(sourceMode === 'date' ? 'date' : 'month', value || viewDate);\n        },\n      }),\n  };\n\n  // ==================== View Operation ====================\n  const onDecadeChange = (diff: number) => {\n    const newDate = generateConfig.addYear(viewDate, diff * 10);\n    onViewDateChange(newDate);\n    onPanelChange(null, newDate);\n  };\n\n  return (\n    <div class={panelPrefixCls}>\n      <YearHeader\n        {...props}\n        prefixCls={prefixCls}\n        onPrevDecade={() => {\n          onDecadeChange(-1);\n        }}\n        onNextDecade={() => {\n          onDecadeChange(1);\n        }}\n        onDecadeClick={() => {\n          onPanelChange('decade', viewDate);\n        }}\n      />\n      <YearBody\n        {...props}\n        prefixCls={prefixCls}\n        onSelect={(date) => {\n          onPanelChange(sourceMode === 'date' ? 'date' : 'month', date);\n          onSelect(date, 'mouse');\n        }}\n      />\n    </div>\n  );\n}\n\nYearPanel.displayName = 'YearPanel';\nYearPanel.inheritAttrs = false;\n\nexport default YearPanel;\n"],"names":["YearPanel","_props","props","useMergeProps","prefixCls","operationRef","onViewDateChange","generateConfig","value","viewDate","sourceMode","onSelect","onPanelChange","panelPrefixCls","onKeydown","event","createKeydownHandler","onLeftRight","diff","addYear","onCtrlLeftRight","YEAR_DECADE_COUNT","onUpDown","YEAR_COL_COUNT","onEnter","onDecadeChange","newDate","_createVNode","YearHeader","onPrevDecade","onNextDecade","onDecadeClick","YearBody","date","displayName","inheritAttrs"],"mappings":"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"}