{"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 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 { DEFAULT_FORMATS_DATE, DEFAULT_FORMATS_DATEPICKER, CommonPicker } from '@hongluan-ui/components/time-picker'\nimport { ROOT_PICKER_INJECTION_KEY } from '@hongluan-ui/tokens'\nimport { useConsistentProp } from '@hongluan-ui/hooks'\n\nimport { datePickerProps } from './props/date-picker'\nimport { getPanel } from './panel-utils'\nimport type { DatePickerExpose } from './instance'\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: 'DatePicker',\n  install: null,\n  props: datePickerProps,\n  emits: ['update:modelValue'],\n\n  setup(props, { expose, emit, slots }) {\n    provide('PopperOptions', reactive(toRef(props, 'popperOptions')))\n    provide(ROOT_PICKER_INJECTION_KEY, {\n      slots,\n    })\n    const commonPicker = ref<InstanceType<typeof CommonPicker>>()\n    const refProps: DatePickerExpose = {\n      focus: (focusStartInput = true) => {\n        commonPicker.value?.focus(focusStartInput)\n      },\n      handleOpen: () => {\n        commonPicker.value?.handleOpen()\n      },\n      handleClose: () => {\n        commonPicker.value?.handleClose()\n      },\n      popperPaneRef: computed(() => {\n        return commonPicker.value?.popperPaneRef\n      }),\n    }\n\n    expose(refProps)\n    const onModelValueUpdated = (val: any) => {\n      emit('update:modelValue', 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 = props.format ?? (DEFAULT_FORMATS_DATEPICKER[props.type as keyof typeof DEFAULT_FORMATS_DATEPICKER] || DEFAULT_FORMATS_DATE)\n      const { size, disabled, fill } = useConsistentProp()\n      const Component = getPanel(props.type)\n      return (\n        <CommonPicker\n          {...props}\n          format={format}\n          type={props.type}\n          size={size.value}\n          disabled={disabled.value}\n          fill={fill.value}\n          ref={commonPicker}\n          onUpdate:modelValue={onModelValueUpdated}\n        >\n          {{\n            default: (scopedProps: /**FIXME: remove any type */ any) => (\n              <Component {...scopedProps}>\n                {{\n                  'prev-month': slots['prev-month'],\n                  'next-month': slots['next-month'],\n                  'prev-year': slots['prev-year'],\n                  'next-year': slots['next-year'],\n                }}\n              </Component>\n            ),\n            icon: slots.icon,\n            'range-separator': slots['range-separator'],\n          }}\n        </CommonPicker>\n      )\n    }\n  },\n})\n"],"names":["dayjs","extend","localeData","advancedFormat","customParseFormat","weekOfYear","weekYear","dayOfYear","isSameOrAfter","isSameOrBefore","defineComponent","name","install","props","datePickerProps","emits","setup","expose","emit","slots","provide","commonPicker","focus","focusStartInput","handleOpen","handleClose","popperPaneRef","format","size","disabled","fill","useConsistentProp","Component","getPanel","type","value","onModelValueUpdated","default","scopedProps","icon"],"mappings":";;;;;;;;;;;;;;;;;;;;AAkBAA,KAAK,CAACC,MAAN,CAAaC,UAAb;AACAF,KAAK,CAACC,MAAN,CAAaE,cAAb;AACAH,KAAK,CAACC,MAAN,CAAaG,iBAAb;AACAJ,KAAK,CAACC,MAAN,CAAaI,UAAb;AACAL,KAAK,CAACC,MAAN,CAAaK,QAAb;AACAN,KAAK,CAACC,MAAN,CAAaM,SAAb;AACAP,KAAK,CAACC,MAAN,CAAaO,aAAb;AACAR,KAAK,CAACC,MAAN,CAAaQ,cAAb;AAEA,iBAAeC,eAAe,CAAC;AAC7BC,EAAAA,IAAI,EAAE,YADuB;AAE7BC,EAAAA,OAAO,EAAE,IAFoB;AAG7BC,EAAAA,KAAK,EAAEC,eAHsB;AAI7BC,EAAAA,KAAK,EAAE,CAAC,mBAAD,CAJsB;;AAM7BC;AAAeC,IAAAA;AAAQC,IAAAA;AAAMC;AAAhB;AACXC,IAAAA,OAAO,CAAC,yBAAyB;AACjCA,WAAO;AACLD,MAAAA;AADiC;AAGnC,UAAME;AACN;AACEC,cAAQC;AACNF,QAAAA,kBAAA,uBAAA;AACD,OAHgC;AAIjCG,MAAAA,UAAU,EAAE,MAAM;AAChBH,QAAAA;AACD;AACDI;AACEJ;AACD;AACDK;AACE;AACD;AAZgC;AAenCT;;AACA;AACEC,UAAI,CAAC;AACN;;AAED;AACE;AACA;AACA,YAAMS,MAAM,GAAGd,MAAMc,MAAN;AACf,YAAM;AAAEC,QAAAA,IAAF;AAAQC,QAAAA,QAAR;AAAkBC,QAAAA;AAAlB,UAA2BC,iBAAiB,EAAlD;AACA,YAAMC,SAAS,GAAGC,QAAQ,CAACpB,KAAK,CAACqB,IAAP,CAA1B;AACA,+CAEQrB,KAFR;AAAA,kBAGYc,MAHZ;AAAA,gBAIUd,KAAK,CAACqB,IAJhB;AAAA,gBAKUN,IAAI,CAACO,KALf;AAAA,oBAMcN,QAAQ,CAACM,KANvB;AAAA,gBAOUL,IAAI,CAACK,KAPf;AAAA,eAQSd,YART;AAAA,+BASyBe;AATzB;AAYMC,QAAAA,OAAO,EAAGC,sCACOA;AAEX,wBAAcnB,KAAK,CAAC,YAAD,CAHhB;AAIH,wBAAcA,KAAK,CAAC,YAAD,CAJhB;AAKH,uBAAaA,KAAK,CAAC,WAAD,CALf;AAMH,uBAAaA,KAAK,CAAC,WAAD;AANf,UAZf;AAsBMoB,QAAAA,IAAI,EAAEpB,KAAK,CAACoB,IAtBlB;AAuBM,2BAAmBpB,KAAK,CAAC,iBAAD;AAvB9B;AA2BD,KAjCD;AAkCD;;;;;"}