{"version":3,"file":"date-picker.mjs","names":["defineComponent","provide","reactive","ref","toRef","mergeProps","_mergeProps","isVNode","_isVNode","createVNode","_createVNode","CommonPicker","DEFAULT_FORMATS_DATE","DEFAULT_FORMATS_DATEPICKER","PICKER_POPPER_OPTIONS_INJECTION_KEY","UPDATE_MODEL_EVENT","ElDatePickerPanel","datePickerProps","_isSlot","s","Object","prototype","toString","call","name","install","props","emits","setup","expose","emit","slots","commonPicker","refProps","focus","value","blur","handleOpen","handleClose","onModelValueUpdated","val","format","type","default","scopedProps","disabled","editable"],"sources":["../../../../../../packages/components/date-picker/src/date-picker.tsx"],"sourcesContent":["import { 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 '@element-plus/components/time-picker'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { ElDatePickerPanel } from '@element-plus/components/date-picker-panel'\nimport { datePickerProps } from './props'\n\nimport type {\n  DateModelType,\n  SingleOrRange,\n} from '@element-plus/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    provide(\n      PICKER_POPPER_OPTIONS_INJECTION_KEY,\n      reactive(toRef(props, 'popperOptions'))\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\n                disabled={props.disabled}\n                editable={props.editable}\n                border={false}\n                {...scopedProps}\n              >\n                {slots}\n              </ElDatePickerPanel>\n            ),\n            'range-separator': slots['range-separator'],\n          }}\n        </CommonPicker>\n      )\n    }\n  },\n})\n"],"mappings":";;;;;;;AASyC,SAAAkB,QAAAC,GAAA;CAAA,OAAA,OAAAA,MAAA,cAAAC,OAAAC,UAAAC,SAAAC,KAAAJ,CAAA,MAAA,qBAAA,CAAAX,QAAAW,CAAA;AAAA;AAQzC,IAAA,sBAAenB,gCAAgB;CAC7BwB,MAAM;CACNC,SAAS;CACTC,OAAOT;CACPU,OAAO,CAACZ,kBAAkB;CAC1Ba,MAAMF,OAAO,EAAEG,QAAQC,MAAMC,SAAS;EACpC9B,QACEa,qCACAZ,SAASE,MAAMsB,OAAO,eAAe,CAAC,CACxC;EACA,MAAMM,eAAe7B,IAAuC;EAgB5D0B,OAAOI;GAdLC,aAAa;IACXF,aAAaG,OAAOD,MAAM;GAC5B;GACAE,YAAY;IACVJ,aAAaG,OAAOC,KAAK;GAC3B;GACAC,kBAAkB;IAChBL,aAAaG,OAAOE,WAAW;GACjC;GACAC,mBAAmB;IACjBN,aAAaG,OAAOG,YAAY;GAClC;EAGKL,CAAQ;EAEf,MAAMM,uBAAuBC,QAA6C;GACxEV,KAAKf,oBAAoByB,GAAG;EAC9B;EAEA,aAAa;GAGX,MAAMC,SACJf,MAAMe,WACL5B,2BAA2Ba,MAAMgB,SAAAA;GAEpC,OAAAhC,YAAAC,gBAAAL,WAEQoB,OAAK;IAAA,UACDe;IAAM,QACRf,MAAMgB;IAAI,OACXV;IAAY,uBACIO;GAAmB,CAAA,GAAA;IAGtCI,UAAUC,gBAA6ClC,YAAAM,mBAAAV,WAAA;KAAA,YAEzCoB,MAAMmB;KAAQ,YACdnB,MAAMoB;KAAQ,UAChB;IAAK,GACTF,WAAW,GAAA1B,QAEda,KAAK,IAALA,QAAK,EAAAY,eAAA,CAALZ,KAAK,EAAA,CAAA;IAGV,mBAAmBA,MAAM;GAAkB,CAAA;EAInD;CACF;AACF,CAAC"}