{"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 '@lit-element/hooks'\nimport {\n  CommonPicker,\n  DEFAULT_FORMATS_DATE,\n  DEFAULT_FORMATS_DATEPICKER,\n} from '@lit-element/components/time-picker'\nimport { ROOT_PICKER_INJECTION_KEY } from './constants'\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: 'LtDatePicker',\n  install: null,\n  props: datePickerProps,\n  emits: ['update:modelValue'],\n  setup(props, { expose, emit, slots }) {\n    const ns = useNamespace('picker-panel')\n\n    provide('LtPopperOptions', reactive(toRef(props, 'popperOptions')))\n    provide(ROOT_PICKER_INJECTION_KEY, {\n      slots,\n      pickerNs: ns,\n    })\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    }\n\n    expose(refProps)\n\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 =\n        props.format ??\n        (DEFAULT_FORMATS_DATEPICKER[props.type] || DEFAULT_FORMATS_DATE)\n\n      const Component = getPanel(props.type)\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              <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            '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","ns","useNamespace","provide","reactive","toRef","ROOT_PICKER_INJECTION_KEY","pickerNs","commonPicker","ref","refProps","focus","focusStartInput","value","onModelValueUpdated","Component","CommonPicker","_mergeProps","default","_createVNode"],"mappings":"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"}