{"version":3,"file":"props.mjs","sources":["../../../../../../../packages/components/time-picker/src/common/props.ts"],"sourcesContent":["import { buildProps, definePropType } from '@bigin/utils'\nimport { useSizeProp } from '@bigin/hooks'\nimport { Clear } from '@bigin/icons-vue'\nimport { disabledTimeListsProps } from '../props/shared'\n\nimport type { Component, ExtractPropTypes } from 'vue'\nimport type { Options } from '@bigin/popperjs-es'\nimport type { Dayjs } from 'dayjs'\n\nexport type SingleOrRange<T> = T | [T, T]\nexport type DateModelType = number | string | Date\nexport type ModelValueType = SingleOrRange<DateModelType>\nexport type DayOrDays = SingleOrRange<Dayjs>\nexport type DateOrDates = SingleOrRange<Date>\nexport type UserInput = SingleOrRange<string | null>\nexport type GetDisabledHours = (role: string, comparingDate?: Dayjs) => number[]\nexport type GetDisabledMinutes = (\n  hour: number,\n  role: string,\n  comparingDate?: Dayjs\n) => number[]\nexport type GetDisabledSeconds = (\n  hour: number,\n  minute: number,\n  role: string,\n  comparingDate?: Dayjs\n) => number[]\n\nexport const timePickerDefaultProps = buildProps({\n  id: {\n    type: definePropType<SingleOrRange<string>>([Array, String]),\n  },\n  name: {\n    type: definePropType<SingleOrRange<string>>([Array, String]),\n    default: '',\n  },\n  popperClass: {\n    type: String,\n    default: '',\n  },\n  format: String,\n  valueFormat: String,\n  type: {\n    type: String,\n    default: '',\n  },\n  clearable: {\n    type: Boolean,\n    default: true,\n  },\n  clearIcon: {\n    type: definePropType<string | Component>([String, Object]),\n    default: Clear,\n  },\n  editable: {\n    type: Boolean,\n    default: true,\n  },\n  suffixIcon: {\n    type: definePropType<string | Component>([String, Object]),\n    default: '',\n  },\n  size: useSizeProp,\n  readonly: {\n    type: Boolean,\n    default: false,\n  },\n  disabled: {\n    type: Boolean,\n    default: false,\n  },\n  placeholder: {\n    type: String,\n    default: '',\n  },\n  popperOptions: {\n    type: definePropType<Partial<Options>>(Object),\n    default: () => ({}),\n  },\n  modelValue: {\n    type: definePropType<ModelValueType>([Date, Array, String, Number]),\n    default: '',\n  },\n  rangeSeparator: {\n    type: String,\n    default: '—',\n  },\n  startPlaceholder: String,\n  endPlaceholder: String,\n  defaultValue: {\n    type: definePropType<SingleOrRange<Date>>([Date, Array]),\n  },\n  defaultTime: {\n    type: definePropType<SingleOrRange<Date>>([Date, Array]),\n  },\n  isRange: {\n    type: Boolean,\n    default: false,\n  },\n  ...disabledTimeListsProps,\n  disabledDate: {\n    type: Function,\n  },\n  cellClassName: {\n    type: Function,\n  },\n  shortcuts: {\n    type: Array,\n    default: () => [],\n  },\n  arrowControl: {\n    type: Boolean,\n    default: false,\n  },\n  label: {\n    type: String,\n    default: undefined,\n  },\n  tabindex: {\n    type: definePropType<string | number>([String, Number]),\n    default: 0,\n  },\n  validateEvent: {\n    type: Boolean,\n    default: true,\n  },\n  unlinkPanels: Boolean,\n} as const)\n\nexport type TimePickerDefaultProps = ExtractPropTypes<\n  typeof timePickerDefaultProps\n>\n\nexport interface PickerOptions {\n  isValidValue: (date: DayOrDays) => boolean\n  handleKeydownInput: (event: KeyboardEvent) => void\n  parseUserInput: (value: UserInput) => DayOrDays\n  formatToString: (value: DayOrDays) => UserInput\n  getRangeAvailableTime: (date: DayOrDays) => DayOrDays\n  getDefaultValue: () => DayOrDays\n  panelReady: boolean\n  handleClear: () => void\n  handleFocusPicker?: () => void\n}\n"],"names":[],"mappings":"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"}