{"version":3,"file":"shared.mjs","sources":["../../../../../../packages/components/date-picker/src/props/shared.ts"],"sourcesContent":["import { isArray } from '@element-ultra/utils'\nimport { type DatePickType } from '@element-ultra/shared'\nimport type { ExtractPropTypes, PropType } from 'vue'\nimport type { Dayjs } from 'dayjs'\n\nconst selectionModes = [\n  'date',\n  'dates',\n  'year',\n  'month',\n  'week',\n  'range'\n] as const\n\nexport type RangeState = {\n  endDate: null | Dayjs\n  selecting: boolean\n}\n\nexport const datePickerSharedProps = {\n  disabledDate: {\n    type: Function as PropType<(date: Date) => boolean>\n  },\n  date: {\n    type: Object as PropType<Dayjs>,\n    required: true\n  },\n  minDate: {\n    type: Object as PropType<Dayjs | null>\n  },\n  maxDate: {\n    type: Object as PropType<Dayjs | null>\n  },\n  parsedValue: {\n    type: [Object, Array] as PropType<Dayjs | Dayjs[]>\n  },\n  rangeState: {\n    type: Object as PropType<RangeState>,\n    default: () => ({\n      endDate: null,\n      selecting: false\n    })\n  }\n}\n\nexport const panelSharedProps = {\n  type: {\n    type: String as PropType<DatePickType>,\n    required: true\n  }\n}\n\nexport const panelRangeSharedProps = {\n  unlinkPanels: Boolean,\n  parsedValue: {\n    type: Array as PropType<Dayjs[]>\n  }\n}\n\ntype SelectionMode = typeof selectionModes[number]\nexport const selectionModeWithDefault = <T extends SelectionMode>(mode: T) => {\n  return {\n    type: String as PropType<SelectionMode>,\n    default: mode\n  }\n}\n\nexport const rangePickerSharedEmits = {\n  pick: (range: [Dayjs, Dayjs]) => isArray(range)\n}\n\nexport type RangePickerSharedEmits = typeof rangePickerSharedEmits\nexport type PanelRangeSharedProps = ExtractPropTypes<\n  typeof panelRangeSharedProps\n>\n"],"names":[],"mappings":";;;AAKA,MAAM,cAAiB,GAAA;AAAA,EACrB,MAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AACF,CAAA,CAAA;AAOO,MAAM,qBAAwB,GAAA;AAAA,EACnC,YAAc,EAAA;AAAA,IACZ,IAAM,EAAA,QAAA;AAAA,GACR;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EACA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,MAAA;AAAA,GACR;AAAA,EACA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,MAAA;AAAA,GACR;AAAA,EACA,WAAa,EAAA;AAAA,IACX,IAAA,EAAM,CAAC,MAAA,EAAQ,KAAK,CAAA;AAAA,GACtB;AAAA,EACA,UAAY,EAAA;AAAA,IACV,IAAM,EAAA,MAAA;AAAA,IACN,SAAS,OAAO;AAAA,MACd,OAAS,EAAA,IAAA;AAAA,MACT,SAAW,EAAA,KAAA;AAAA,KACb,CAAA;AAAA,GACF;AACF,EAAA;AAEO,MAAM,gBAAmB,GAAA;AAAA,EAC9B,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AACF,EAAA;AAEO,MAAM,qBAAwB,GAAA;AAAA,EACnC,YAAc,EAAA,OAAA;AAAA,EACd,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,KAAA;AAAA,GACR;AACF,EAAA;AAGa,MAAA,wBAAA,GAA2B,CAA0B,IAAY,KAAA;AAC5E,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX,CAAA;AACF,EAAA;AAEO,MAAM,sBAAyB,GAAA;AAAA,EACpC,IAAM,EAAA,CAAC,KAA0B,KAAA,OAAA,CAAQ,KAAK,CAAA;AAChD;;;;"}