{"version":3,"file":"SinglePanel.mjs","sources":["../../../src/date-picker/panel/SinglePanel.tsx"],"sourcesContent":["import { defineComponent, PropType, computed } from 'vue';\nimport { useConfig, usePrefixClass } from '../../hooks/useConfig';\nimport TPanelContent from './PanelContent';\nimport TExtraContent from './ExtraContent';\nimport { TdDatePickerProps } from '../type';\nimport { getDefaultFormat, parseToDayjs } from '../../_common/js/date-picker/format';\nimport useTableData from '../hooks/useTableData';\nimport useDisableDate from '../hooks/useDisableDate';\n\nexport default defineComponent({\n  name: 'XSinglePanel',\n  props: {\n    disableDate: [Object, Array, Function] as PropType<TdDatePickerProps['disableDate']>,\n    mode: {\n      type: String as PropType<TdDatePickerProps['mode']>,\n      default: 'date',\n    },\n    format: String as PropType<TdDatePickerProps['format']>,\n    presetsPlacement: {\n      type: String as PropType<TdDatePickerProps['presetsPlacement']>,\n      default: 'bottom',\n    },\n    value: [String, Number, Array, Date] as PropType<TdDatePickerProps['value']>,\n    timePickerProps: Object as PropType<TdDatePickerProps['timePickerProps']>,\n    presets: Object as PropType<TdDatePickerProps['presets']>,\n    enableTimePicker: Boolean,\n    firstDayOfWeek: Number,\n    year: Number,\n    month: Number,\n    time: String,\n    popupVisible: Boolean,\n    onPanelClick: Function,\n    onCellClick: Function,\n    onCellMouseEnter: Function,\n    onCellMouseLeave: Function,\n    onJumperClick: Function,\n    onConfirmClick: Function,\n    onPresetClick: Function,\n    onYearChange: Function,\n    onMonthChange: Function,\n    onTimePickerChange: Function,\n  },\n  setup(props) {\n    const COMPONENT_NAME = usePrefixClass('date-picker__panel');\n    const { globalConfig } = useConfig('datePicker');\n\n    const { format } = getDefaultFormat({\n      mode: props.mode,\n      format: props.format,\n      enableTimePicker: props.enableTimePicker,\n    });\n\n    const disableDateOptions = computed(() =>\n      useDisableDate({\n        format,\n        mode: props.mode,\n        disableDate: props.disableDate,\n      }),\n    );\n\n    const tableData = computed(() =>\n      useTableData({\n        year: props.year,\n        month: props.month,\n        mode: props.mode,\n        start: props.value ? parseToDayjs(props.value, format).toDate() : undefined,\n        firstDayOfWeek: props.firstDayOfWeek || globalConfig.value.firstDayOfWeek,\n        ...disableDateOptions.value,\n      }),\n    );\n\n    const panelContentProps = computed(() => ({\n      format,\n      value: props.value,\n      mode: props.mode,\n      year: props.year,\n      month: props.month,\n      firstDayOfWeek: props.firstDayOfWeek || globalConfig.value.firstDayOfWeek,\n      tableData: tableData.value,\n      popupVisible: props.popupVisible,\n\n      enableTimePicker: props.enableTimePicker,\n      timePickerProps: props.timePickerProps,\n      time: props.time,\n      onMonthChange: props.onMonthChange,\n      onYearChange: props.onYearChange,\n      onJumperClick: props.onJumperClick,\n      onCellClick: props.onCellClick,\n      onCellMouseEnter: props.onCellMouseEnter,\n      onCellMouseLeave: props.onCellMouseLeave,\n      onTimePickerChange: props.onTimePickerChange,\n    }));\n\n    const extraProps = computed(() => ({\n      presets: props.presets,\n      enableTimePicker: props.enableTimePicker,\n      presetsPlacement: props.presetsPlacement,\n      onPresetClick: props.onPresetClick,\n      onConfirmClick: props.onConfirmClick,\n      selectedValue: props.value,\n    }));\n\n    return () => (\n      <div\n        class={[\n          COMPONENT_NAME.value,\n          {\n            [`${COMPONENT_NAME.value}--direction-row`]: ['left', 'right'].includes(props.presetsPlacement),\n          },\n        ]}\n        onClick={(e) => props.onPanelClick?.({ e })}\n      >\n        {['top', 'left'].includes(props.presetsPlacement) ? <TExtraContent {...extraProps.value} /> : null}\n        <TPanelContent {...panelContentProps.value} />\n        {['bottom', 'right'].includes(props.presetsPlacement) ? <TExtraContent {...extraProps.value} /> : null}\n      </div>\n    );\n  },\n});\n"],"names":["name","props","disableDate","mode","type","format","presetsPlacement","timePickerProps","presets","enableTimePicker","firstDayOfWeek","year","month","time","popupVisible","onPanelClick","onCellClick","onCellMouseEnter","onCellMouseLeave","onJumperClick","onConfirmClick","onPresetClick","onYearChange","onMonthChange","onTimePickerChange","start","_createVNode","e"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,mBAAA,eAAA,CAAA;AACEA,EAAAA,IAAAA,EAAAA,cAAAA;AACAC,EAAAA,KAAAA,EAAAA;AACEC,IAAAA,WAAAA,EAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,QAAAA,CAAAA;AACAC,IAAAA,IAAAA,EAAAA;AACEC,MAAAA,IAAAA,EAAAA,MAAAA;;;AAGFC,IAAAA,MAAAA,EAAAA,MAAAA;AACAC,IAAAA,gBAAAA,EAAAA;AACEF,MAAAA,IAAAA,EAAAA,MAAAA;;;;AAIFG,IAAAA,eAAAA,EAAAA,MAAAA;AACAC,IAAAA,OAAAA,EAAAA,MAAAA;AACAC,IAAAA,gBAAAA,EAAAA,OAAAA;AACAC,IAAAA,cAAAA,EAAAA,MAAAA;AACAC,IAAAA,IAAAA,EAAAA,MAAAA;AACAC,IAAAA,KAAAA,EAAAA,MAAAA;AACAC,IAAAA,IAAAA,EAAAA,MAAAA;AACAC,IAAAA,YAAAA,EAAAA,OAAAA;AACAC,IAAAA,YAAAA,EAAAA,QAAAA;AACAC,IAAAA,WAAAA,EAAAA,QAAAA;AACAC,IAAAA,gBAAAA,EAAAA,QAAAA;AACAC,IAAAA,gBAAAA,EAAAA,QAAAA;AACAC,IAAAA,aAAAA,EAAAA,QAAAA;AACAC,IAAAA,cAAAA,EAAAA,QAAAA;AACAC,IAAAA,aAAAA,EAAAA,QAAAA;AACAC,IAAAA,YAAAA,EAAAA,QAAAA;AACAC,IAAAA,aAAAA,EAAAA,QAAAA;AACAC,IAAAA,kBAAAA,EAAAA,QAAAA;;;AAGM,IAAA,IAAA,cAAA,GAAA,cAAA,CAAA,oBAAA,CAAA,CAAA;AACN,IAAA,IAAA,UAAA,GAAA,SAAA,CAAA,YAAA,CAAA;;;;;;AAMA,OAAA,CAAA;;;AAEoC,MAAA,OAAA,cAAA,CAAA;AAEhCnB,QAAAA,MAAAA,EAAAA,MAAAA;;;AAGF,OAAA,CAAA,CAAA;AAAC,KAAA,CAAA,CAAA;;;;;;AAQCoB,QAAAA,KAAAA,EAAAA,KAAAA,CAAAA,KAAAA,GAAAA,YAAAA,CAAAA,KAAAA,CAAAA,KAAAA,EAAAA,MAAAA,CAAAA,CAAAA,MAAAA,EAAAA,GAAAA,KAAAA,CAAAA;;AAC2D,OAAA,EAAA,kBAAA,CAAA,KAAA,CAAA,CAAA,CAAA;AAE5D,KAAA,CAAA,CAAA;;;AAIDpB,QAAAA,MAAAA,EAAAA,MAAAA;;;;;;;;;;;;;;;;;;;AAmBA,KAAA,CAAA,CAAA;;;;;;;;;;AASA,KAAA,CAAA,CAAA;;AAEK,MAAA,OAAAqB,WAAA,CAAA,KAAA,EAAA;;;AAQO,UAAA,IAAA,mBAAA,CAAA;AAAA,UAAA,OAAA,CAAA,mBAAA,GAAA,KAAA,CAAA,YAAA,MAAA,IAAA,IAAA,mBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,mBAAA,CAAA,IAAA,CAAA,KAAA,EAAA;AAA6BC,YAAAA,CAAAA,EAAAA,CAAAA;AAAE,WAAA,CAAA,CAAA;AAAC,SAAA;;;AAOhD,GAAA;AACF,CAAA,CAAA;;;;"}