73 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import { defineComponent, computed, provide, reactive, toRef, ref, createVNode, mergeProps, isVNode } from 'vue';
 | |
| import '../../time-picker/index.mjs';
 | |
| import { ElDatePickerPanel } from '../../date-picker-panel/index.mjs';
 | |
| import { datePickerProps } from './props.mjs';
 | |
| import { ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY } from '../../date-picker-panel/src/constants.mjs';
 | |
| import { PICKER_POPPER_OPTIONS_INJECTION_KEY, DEFAULT_FORMATS_DATEPICKER, DEFAULT_FORMATS_DATE } from '../../time-picker/src/constants.mjs';
 | |
| import CommonPicker from '../../time-picker/src/common/picker.mjs';
 | |
| import { UPDATE_MODEL_EVENT } from '../../../constants/event.mjs';
 | |
| 
 | |
| function _isSlot(s) {
 | |
|   return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
 | |
| }
 | |
| var DatePicker = defineComponent({
 | |
|   name: "ElDatePicker",
 | |
|   install: null,
 | |
|   props: datePickerProps,
 | |
|   emits: [UPDATE_MODEL_EVENT],
 | |
|   setup(props, {
 | |
|     expose,
 | |
|     emit,
 | |
|     slots
 | |
|   }) {
 | |
|     const isDefaultFormat = computed(() => {
 | |
|       return !props.format;
 | |
|     });
 | |
|     provide(ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY, isDefaultFormat);
 | |
|     provide(PICKER_POPPER_OPTIONS_INJECTION_KEY, reactive(toRef(props, "popperOptions")));
 | |
|     const commonPicker = ref();
 | |
|     const refProps = {
 | |
|       focus: () => {
 | |
|         var _a;
 | |
|         (_a = commonPicker.value) == null ? void 0 : _a.focus();
 | |
|       },
 | |
|       blur: () => {
 | |
|         var _a;
 | |
|         (_a = commonPicker.value) == null ? void 0 : _a.blur();
 | |
|       },
 | |
|       handleOpen: () => {
 | |
|         var _a;
 | |
|         (_a = commonPicker.value) == null ? void 0 : _a.handleOpen();
 | |
|       },
 | |
|       handleClose: () => {
 | |
|         var _a;
 | |
|         (_a = commonPicker.value) == null ? void 0 : _a.handleClose();
 | |
|       }
 | |
|     };
 | |
|     expose(refProps);
 | |
|     const onModelValueUpdated = (val) => {
 | |
|       emit(UPDATE_MODEL_EVENT, val);
 | |
|     };
 | |
|     return () => {
 | |
|       var _a;
 | |
|       const format = (_a = props.format) != null ? _a : DEFAULT_FORMATS_DATEPICKER[props.type] || DEFAULT_FORMATS_DATE;
 | |
|       return createVNode(CommonPicker, mergeProps(props, {
 | |
|         "format": format,
 | |
|         "type": props.type,
 | |
|         "ref": commonPicker,
 | |
|         "onUpdate:modelValue": onModelValueUpdated
 | |
|       }), {
 | |
|         default: (scopedProps) => createVNode(ElDatePickerPanel, mergeProps({
 | |
|           "border": false
 | |
|         }, scopedProps), _isSlot(slots) ? slots : {
 | |
|           default: () => [slots]
 | |
|         }),
 | |
|         "range-separator": slots["range-separator"]
 | |
|       });
 | |
|     };
 | |
|   }
 | |
| });
 | |
| 
 | |
| export { DatePicker as default };
 | |
| //# sourceMappingURL=date-picker.mjs.map
 |