{"version":3,"file":"date-picker.mjs","sources":["../../../../../packages/components/date-picker/src/date-picker.tsx"],"sourcesContent":["import { defineComponent, provide, reactive, ref, toRef } from 'vue'\nimport dayjs from 'dayjs'\nimport customParseFormat from 'dayjs/plugin/customParseFormat.js'\nimport advancedFormat from 'dayjs/plugin/advancedFormat.js'\nimport localeData from 'dayjs/plugin/localeData.js'\nimport weekOfYear from 'dayjs/plugin/weekOfYear.js'\nimport weekYear from 'dayjs/plugin/weekYear.js'\nimport dayOfYear from 'dayjs/plugin/dayOfYear.js'\nimport isSameOrAfter from 'dayjs/plugin/isSameOrAfter.js'\nimport isSameOrBefore from 'dayjs/plugin/isSameOrBefore.js'\nimport { useNamespace } from '@element-ultra/hooks'\nimport { ROOT_PICKER_INJECTION_KEY } from '@element-ultra/tokens'\nimport {\n  ElCommonPicker,\n  DEFAULT_FORMATS_DATE,\n  DEFAULT_FORMATS_DATEPICKER,\n  timePickerDefaultProps\n} from '@element-ultra/components/time-picker'\n\nimport { datePickerProps } from './props/date-picker'\nimport { getPanel } from './panel-utils'\n\ndayjs.extend(localeData)\ndayjs.extend(advancedFormat)\ndayjs.extend(customParseFormat)\ndayjs.extend(weekOfYear)\ndayjs.extend(weekYear)\ndayjs.extend(dayOfYear)\ndayjs.extend(isSameOrAfter)\ndayjs.extend(isSameOrBefore)\n\nexport default defineComponent({\n  name: 'ElDatePicker',\n  install: null,\n  props: {\n    // FIXME: move this to date-picker.ts\n    ...timePickerDefaultProps,\n    ...datePickerProps\n  },\n  emits: ['update:modelValue', 'update:start', 'update:end'],\n  setup(props, { expose, emit, slots }) {\n    const ns = useNamespace('picker-panel')\n\n    provide('ElPopperOptions', reactive(toRef(props, 'popperOptions')))\n    provide(ROOT_PICKER_INJECTION_KEY, {\n      slots,\n      pickerNs: ns\n    })\n\n    const commonPicker = ref<InstanceType<typeof ElCommonPicker>>()\n    const refProps = {\n      focus: (focusStartInput = true) => {\n        commonPicker.value?.focus(focusStartInput)\n      }\n    }\n\n    expose(refProps)\n\n    const onModelValueUpdated = (val: any) => {\n      emit('update:modelValue', val)\n      if (Array.isArray(val)) {\n        emit('update:start', val[0])\n        emit('update:end', val[1])\n      }\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      // 面板\n      const Component = getPanel(props.type)\n\n      return (\n        <ElCommonPicker\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              return <Component {...scopedProps} />\n            },\n            'range-separator': slots['range-separator']\n          }}\n        </ElCommonPicker>\n      )\n    }\n  }\n})\n"],"names":["dayjs","extend","localeData","advancedFormat","customParseFormat","weekOfYear","weekYear","dayOfYear","isSameOrAfter","isSameOrBefore","name","install","props","timePickerDefaultProps","datePickerProps","emits","setup","expose","emit","slots","ns","useNamespace","provide","reactive","toRef","ROOT_PICKER_INJECTION_KEY","pickerNs","commonPicker","ref","refProps","focus","focusStartInput","value","onModelValueUpdated","val","Array","isArray","format","DEFAULT_FORMATS_DATEPICKER","type","DEFAULT_FORMATS_DATE","Component","getPanel","_createVNode","ElCommonPicker","_mergeProps","default","scopedProps"],"mappings":"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"}