{"version":3,"file":"SinglePanel.mjs","sources":["../../../../../components/date-picker/components/panel/SinglePanel.tsx"],"sourcesContent":["import { defineComponent, PropType, computed } from 'vue';\nimport { useConfig, usePrefixClass } from '@tdesign/shared-hooks';\nimport TPanelContent from './PanelContent';\nimport TExtraContent from './ExtraContent';\nimport { getDefaultFormat, parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { useTableData, useDisableDate } from '../../hooks';\n\nimport type { TdDatePickerProps, DateMultipleValue, DateValue } from '../../type';\n\nexport default defineComponent({\n  name: 'TSinglePanel',\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    multiple: Boolean,\n    needConfirm: Boolean,\n    defaultTime: [String, Array] as PropType<TdDatePickerProps['defaultTime']>,\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 = computed(\n      () =>\n        getDefaultFormat({\n          mode: props.mode,\n          format: props.format,\n          enableTimePicker: props.enableTimePicker,\n        })?.format,\n    );\n\n    const disableDateOptions = computed(() =>\n      useDisableDate({\n        format: format.value,\n        mode: props.mode,\n        disableDate: props.disableDate,\n      }),\n    );\n    const tableData = computed(() =>\n      useTableData({\n        year: props.year,\n        month: props.month,\n        mode: props.mode,\n        start: props.value\n          ? parseToDayjs(\n              props.multiple ? (props.value as DateMultipleValue)[0] : (props.value as DateValue),\n              format.value,\n            ).toDate()\n          : undefined,\n        firstDayOfWeek: props.firstDayOfWeek || globalConfig.value.firstDayOfWeek,\n        multiple: props.multiple,\n        value: props.value,\n        ...disableDateOptions.value,\n      }),\n    );\n\n    const panelContentProps = computed(() => ({\n      format: format.value,\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      multiple: props.multiple,\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      defaultTime: props.defaultTime,\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      needConfirm: props.needConfirm,\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":["defineComponent","name","props","disableDate","Object","Array","Function","mode","type","String","format","presetsPlacement","value","Number","Date","timePickerProps","presets","enableTimePicker","Boolean","firstDayOfWeek","year","month","time","popupVisible","multiple","needConfirm","defaultTime","onPanelClick","onCellClick","onCellMouseEnter","onCellMouseLeave","onJumperClick","onConfirmClick","onPresetClick","onYearChange","onMonthChange","onTimePickerChange","setup","COMPONENT_NAME","usePrefixClass","_useConfig","useConfig","globalConfig","computed","_getDefaultFormat","getDefaultFormat","disableDateOptions","useDisableDate","tableData","useTableData","_objectSpread","start","parseToDayjs","toDate","panelContentProps","extraProps","selectedValue","_createVNode","_defineProperty","concat","includes","onClick","e","_props$onPanelClick","call","TExtraContent","TPanelContent"],"mappings":"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"}