{"version":3,"file":"shared.mjs","sources":["../../../../../../../../packages/components/date-picker-panel/src/props/shared.ts"],"sourcesContent":["import { buildProps, definePropType, isArray } from '@hd-front-end/utils'\nimport { datePickTypes } from '@hd-front-end/constants'\n\nimport type { ExtractPropTypes, __ExtractPublicPropTypes } from 'vue'\nimport type { Dayjs } from 'dayjs'\nimport type { DatePickType } from '@hd-front-end/constants'\nimport type { DayOrDays } from '@hd-front-end/components/time-picker'\n\nconst selectionModes = [\n  'date',\n  'dates',\n  'year',\n  'years',\n  'month',\n  'months',\n  'week',\n  'range',\n]\n\nexport type RangeState = {\n  endDate: null | Dayjs\n  selecting: boolean\n}\n\nexport type DisabledDateType = (date: Date) => boolean\nexport type CellClassNameType = (date: Date) => string\n\nexport const datePickerSharedProps = buildProps({\n  cellClassName: {\n    type: definePropType<CellClassNameType>(Function),\n  },\n  disabledDate: {\n    type: definePropType<DisabledDateType>(Function),\n  },\n  date: {\n    type: definePropType<Dayjs>(Object),\n    required: true,\n  },\n  minDate: {\n    type: definePropType<Dayjs | null>(Object),\n  },\n  maxDate: {\n    type: definePropType<Dayjs | null>(Object),\n  },\n  parsedValue: {\n    type: definePropType<Dayjs | Dayjs[]>([Object, Array]),\n  },\n  rangeState: {\n    type: definePropType<RangeState>(Object),\n    default: () => ({\n      endDate: null,\n      selecting: false,\n    }),\n  },\n  disabled: Boolean,\n} as const)\n\nexport const panelSharedProps = buildProps({\n  type: {\n    type: definePropType<DatePickType>(String),\n    required: true,\n    values: datePickTypes,\n  },\n  dateFormat: String,\n  timeFormat: String,\n  showNow: {\n    type: Boolean,\n    default: true,\n  },\n  showConfirm: Boolean,\n  showFooter: {\n    type: Boolean,\n    default: true,\n  },\n  showWeekNumber: Boolean,\n  border: Boolean,\n  disabled: Boolean,\n} as const)\n\nexport const panelRangeSharedProps = buildProps({\n  unlinkPanels: Boolean,\n  visible: {\n    type: Boolean,\n    default: true,\n  },\n  showConfirm: Boolean,\n  showFooter: {\n    type: Boolean,\n    default: true,\n  },\n  border: Boolean,\n  disabled: Boolean,\n  parsedValue: {\n    type: definePropType<DayOrDays>(Array),\n  },\n} as const)\n\nexport const selectionModeWithDefault = (\n  mode: typeof selectionModes[number]\n) => {\n  return {\n    type: String,\n    values: selectionModes,\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>\nexport type PanelRangeSharedPropsPublic = __ExtractPublicPropTypes<\n  typeof panelRangeSharedProps\n>\n"],"names":[],"mappings":";;;;AAQA,MAAM,cAAiB,GAAA;AAAA,EACrB,MAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AACF,CAAA,CAAA;AAUO,MAAM,wBAAwB,UAAW,CAAA;AAAA,EAC9C,aAAe,EAAA;AAAA,IACb,IAAA,EAAM,eAAkC,QAAQ,CAAA;AAAA,GAClD;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,IAAA,EAAM,eAAiC,QAAQ,CAAA;AAAA,GACjD;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,IAAA,EAAM,eAAsB,MAAM,CAAA;AAAA,IAClC,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EACA,OAAS,EAAA;AAAA,IACP,IAAA,EAAM,eAA6B,MAAM,CAAA;AAAA,GAC3C;AAAA,EACA,OAAS,EAAA;AAAA,IACP,IAAA,EAAM,eAA6B,MAAM,CAAA;AAAA,GAC3C;AAAA,EACA,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,cAAA,CAAgC,CAAC,MAAA,EAAQ,KAAK,CAAC,CAAA;AAAA,GACvD;AAAA,EACA,UAAY,EAAA;AAAA,IACV,IAAA,EAAM,eAA2B,MAAM,CAAA;AAAA,IACvC,SAAS,OAAO;AAAA,MACd,OAAS,EAAA,IAAA;AAAA,MACT,SAAW,EAAA,KAAA;AAAA,KACb,CAAA;AAAA,GACF;AAAA,EACA,QAAU,EAAA,OAAA;AACZ,CAAU,EAAA;AAEH,MAAM,mBAAmB,UAAW,CAAA;AAAA,EACzC,IAAM,EAAA;AAAA,IACJ,IAAA,EAAM,eAA6B,MAAM,CAAA;AAAA,IACzC,QAAU,EAAA,IAAA;AAAA,IACV,MAAQ,EAAA,aAAA;AAAA,GACV;AAAA,EACA,UAAY,EAAA,MAAA;AAAA,EACZ,UAAY,EAAA,MAAA;AAAA,EACZ,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EACA,WAAa,EAAA,OAAA;AAAA,EACb,UAAY,EAAA;AAAA,IACV,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EACA,cAAgB,EAAA,OAAA;AAAA,EAChB,MAAQ,EAAA,OAAA;AAAA,EACR,QAAU,EAAA,OAAA;AACZ,CAAU,EAAA;AAEH,MAAM,wBAAwB,UAAW,CAAA;AAAA,EAC9C,YAAc,EAAA,OAAA;AAAA,EACd,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EACA,WAAa,EAAA,OAAA;AAAA,EACb,UAAY,EAAA;AAAA,IACV,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EACA,MAAQ,EAAA,OAAA;AAAA,EACR,QAAU,EAAA,OAAA;AAAA,EACV,WAAa,EAAA;AAAA,IACX,IAAA,EAAM,eAA0B,KAAK,CAAA;AAAA,GACvC;AACF,CAAU,EAAA;AAEG,MAAA,wBAAA,GAA2B,CACtC,IACG,KAAA;AACH,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,MAAQ,EAAA,cAAA;AAAA,IACR,OAAS,EAAA,IAAA;AAAA,GACX,CAAA;AACF,EAAA;AAEO,MAAM,sBAAyB,GAAA;AAAA,EACpC,IAAM,EAAA,CAAC,KAA0B,KAAA,OAAA,CAAQ,KAAK,CAAA;AAChD;;;;"}