{"version":3,"file":"date-picker.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker.tsx"],"sourcesContent":["import { computed, defineComponent, provide, reactive, ref, toRef } from 'vue'\nimport {\n  CommonPicker,\n  DEFAULT_FORMATS_DATE,\n  DEFAULT_FORMATS_DATEPICKER,\n  PICKER_POPPER_OPTIONS_INJECTION_KEY,\n} from '@hd-front-end/components/time-picker'\nimport { UPDATE_MODEL_EVENT } from '@hd-front-end/constants'\nimport {\n  ElDatePickerPanel,\n  ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY,\n} from '@hd-front-end/components/date-picker-panel'\nimport { datePickerProps } from './props'\n\nimport type {\n  DateModelType,\n  SingleOrRange,\n} from '@hd-front-end/components/time-picker'\nimport type { DatePickerExpose } from './instance'\n\nexport default defineComponent({\n  name: 'ElDatePicker',\n  install: null,\n  props: datePickerProps,\n  emits: [UPDATE_MODEL_EVENT],\n  setup(props, { expose, emit, slots }) {\n    const isDefaultFormat = computed(() => {\n      return !props.format\n    })\n    provide(ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY, isDefaultFormat)\n    provide(\n      PICKER_POPPER_OPTIONS_INJECTION_KEY,\n      reactive(toRef(props, 'popperOptions'))\n    )\n\n    const commonPicker = ref<InstanceType<typeof CommonPicker>>()\n    const refProps: DatePickerExpose = {\n      focus: () => {\n        commonPicker.value?.focus()\n      },\n      blur: () => {\n        commonPicker.value?.blur()\n      },\n      handleOpen: () => {\n        commonPicker.value?.handleOpen()\n      },\n      handleClose: () => {\n        commonPicker.value?.handleClose()\n      },\n    }\n\n    expose(refProps)\n\n    const onModelValueUpdated = (val: SingleOrRange<DateModelType> | null) => {\n      emit(UPDATE_MODEL_EVENT, val)\n    }\n\n    return () => {\n      // since props always have all defined keys on it, {format, ...props} will always overwrite format\n      // pick props.format or provide default value here before spreading\n      const format =\n        props.format ??\n        (DEFAULT_FORMATS_DATEPICKER[props.type] || DEFAULT_FORMATS_DATE)\n\n      return (\n        <CommonPicker\n          {...props}\n          format={format}\n          type={props.type}\n          ref={commonPicker}\n          onUpdate:modelValue={onModelValueUpdated}\n        >\n          {{\n            default: (scopedProps: /**FIXME: remove any type */ any) => (\n              <ElDatePickerPanel border={false} {...scopedProps}>\n                {slots}\n              </ElDatePickerPanel>\n            ),\n            'range-separator': slots['range-separator'],\n          }}\n        </CommonPicker>\n      )\n    }\n  },\n})\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","defineComponent","name","install","props","datePickerProps","emits","UPDATE_MODEL_EVENT","setup","expose","emit","slots","isDefaultFormat","computed","format","provide","ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY","PICKER_POPPER_OPTIONS_INJECTION_KEY","reactive","toRef","commonPicker","ref","refProps","focus","value","blur","handleOpen","handleClose","onModelValueUpdated","val","DEFAULT_FORMATS_DATEPICKER","type","DEFAULT_FORMATS_DATE","_createVNode","CommonPicker","_mergeProps","default","scopedProps","ElDatePickerPanel"],"mappings":"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"}