{"version":3,"file":"symbol.mjs","sources":["../../../components/date-picker/symbol.ts"],"sourcesContent":["import type { Dateable } from '@vexip-ui/utils'\r\nimport type { CalendarPanelSlots } from '../calendar'\r\nimport type { WheelSlots } from '../wheel'\r\n\r\nexport type DateType = 'year' | 'month' | 'date'\r\nexport type TimeType = 'hour' | 'minute' | 'second'\r\nexport type DateTimeType = DateType | TimeType\r\n\r\nexport type DatePickerType = 'date' | 'datetime' | 'year' | 'month'\r\nexport type DateShortcutsPlacement = 'top' | 'right' | 'bottom' | 'left'\r\nexport type TimeShortcutsPlacement = DateShortcutsPlacement\r\n\r\nexport type DatePickerFormatFn = (timestamp: number, type: 'start' | 'end') => unknown\r\n\r\nexport interface DateShortcut {\r\n  name: string,\r\n  value: Dateable | Dateable[] | (() => Dateable | Dateable[]),\r\n}\r\n\r\nexport interface TimeShortcut {\r\n  name: string,\r\n  value: string | string[] | (() => string | string[]),\r\n}\r\n\r\nexport interface DatePickerState {\r\n  type: DatePickerType,\r\n  currentColumn: DateTimeType,\r\n  enabled: Record<DateTimeType, boolean>,\r\n  activated: Record<DateTimeType, boolean>,\r\n  dateValue: Record<DateTimeType, number>,\r\n  enterColumn(type: 'prev' | 'next'): void,\r\n}\r\n\r\nexport interface DisabledTime {\r\n  hour?(hour: number): boolean,\r\n  minute?(hour: number, minute: number): boolean,\r\n  second?(hour: number, minute: number, second: number): boolean,\r\n}\r\n\r\nexport const enum DisabledType {\r\n  UPSTREAM,\r\n  TRUE,\r\n  AT_MIN_TRUE,\r\n  AT_MAX_TRUE,\r\n  FALSE,\r\n}\r\n\r\nexport type DatePickerChangeEvent = (value: number | number[] | null) => void\r\nexport type TimePickerChangeEvent = (value: string | string[]) => void\r\n\r\nexport const datePickerTypes = Object.freeze<DatePickerType[]>([\r\n  'date',\r\n  'datetime',\r\n  'year',\r\n  'month',\r\n])\r\n\r\nexport const invalidDate = new Date('')\r\n\r\n// export const TIME_REG = /^((?:[01]?[0-9])|(?:2[0-3]))((?::[0-5]?[0-9]))?((?::[0-5]?[0-9]))?$/\r\nexport const TIME_REG = /^((?:\\d{1,2}))((?::\\d{1,2}))?((?::\\d{1,2}))?$/\r\n\r\nexport interface TimeWheelSlots {\r\n  hour?: WheelSlots['default'],\r\n  minute?: WheelSlots['default'],\r\n  second?: WheelSlots['default'],\r\n}\r\n\r\nexport interface DatePanelSlots {\r\n  title?: (params: {\r\n    panel: DateType,\r\n    yearStart: number,\r\n    year: number,\r\n    month: number,\r\n    togglePanel: (panel: DateType) => void,\r\n  }) => any,\r\n  year?: (params: {\r\n    year: number,\r\n    selected: boolean,\r\n    isNext: boolean,\r\n    disabled: boolean,\r\n    inRange: boolean,\r\n  }) => any,\r\n  month?: (params: {\r\n    year: number,\r\n    month: number,\r\n    selected: boolean,\r\n    disabled: boolean,\r\n    inRange: boolean,\r\n  }) => any,\r\n  week?: CalendarPanelSlots['week'],\r\n  date?: CalendarPanelSlots['item'],\r\n}\r\n\r\nexport interface DatePickerSlots {\r\n  prefix?: () => any,\r\n  suffix?: () => any,\r\n  exchange?: () => any,\r\n  panelTitle?: DatePanelSlots['title'],\r\n  panelYear?: DatePanelSlots['year'],\r\n  panelMonth?: DatePanelSlots['month'],\r\n  panelWeek?: DatePanelSlots['week'],\r\n  panelDate?: DatePanelSlots['date'],\r\n}\r\n\r\nexport interface TimePickerSlots {\r\n  prefix?: () => any,\r\n  exchange?: () => any,\r\n  suffix?: () => any,\r\n}\r\n"],"names":["DisabledType","DisabledType2","datePickerTypes","invalidDate","TIME_REG"],"mappings":"AAuCkB,IAAAA,sBAAAA,OAChBA,EAAAC,EAAA,WAAA,CAAA,IAAA,YACAD,EAAAC,EAAA,OAAA,CAAA,IAAA,QACAD,EAAAC,EAAA,cAAA,CAAA,IAAA,eACAD,EAAAC,EAAA,cAAA,CAAA,IAAA,eACAD,EAAAC,EAAA,QAAA,CAAA,IAAA,SALgBD,IAAAA,KAAA,CAAA,CAAA;AAWL,MAAAE,IAAkB,OAAO,OAAyB;AAAA,EAC7D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC,GAEYC,IAAkB,oBAAA,KAAK,EAAE,GAGzBC,IAAW;"}