{"version":3,"file":"symbol.mjs","sources":["../../../components/select/symbol.ts"],"sourcesContent":["import type { OptionKeyConfig, OptionState, RawOption } from '@/components/option'\r\n\r\nexport interface SelectKeyConfig extends OptionKeyConfig {\r\n  group?: string,\r\n  children?: string,\r\n}\r\n\r\nexport type SelectRawOption = RawOption\r\nexport type SelectBaseValue = string | number | boolean\r\nexport type SelectValue = SelectBaseValue | SelectBaseValue[] | null\r\n\r\nexport interface SelectOptionState extends OptionState {\r\n  group: boolean,\r\n  depth: number,\r\n  parent: SelectOptionState | null,\r\n  data: SelectRawOption,\r\n}\r\n\r\nexport type SelectFilter = (value: string, option: SelectOptionState) => boolean\r\n\r\nexport type SelectFilterPosition = 'in-control' | 'in-list'\r\n\r\nexport type SelectEvent = (value: SelectBaseValue, data: any) => void\r\nexport type ChangeEvent = (value: SelectValue, data: any | any[]) => void\r\n\r\nexport interface SelectListSlotParams {\r\n  options: SelectOptionState[],\r\n  isSelected: (option: SelectOptionState) => boolean,\r\n  handleSelect: (option?: SelectOptionState | null) => void,\r\n}\r\n\r\nexport interface SelectSlots {\r\n  selected?: (params: {\r\n    value: SelectBaseValue,\r\n    option: SelectOptionState | null,\r\n    preview?: boolean,\r\n  }) => any,\r\n  prefix?: () => any,\r\n  suffix?: () => any,\r\n  control?: () => any,\r\n  tag?: (params: {\r\n    value: SelectBaseValue,\r\n    option: SelectOptionState | null,\r\n    handleClose: () => void,\r\n  }) => any,\r\n  restTag?: (params: { restCount: number }) => any,\r\n  list?: (params: SelectListSlotParams) => any,\r\n  prepend?: () => any,\r\n  append?: () => any,\r\n  /**\r\n   * Option content slot.\r\n   */\r\n  default?: (params: { option: SelectOptionState, index: number, selected: boolean }) => any,\r\n  group?: (params: { option: SelectOptionState, index: number }) => any,\r\n  empty?: () => any,\r\n}\r\n\r\nexport const defaultKeyConfig: Required<SelectKeyConfig> = Object.freeze({\r\n  value: 'value',\r\n  label: 'label',\r\n  disabled: 'disabled',\r\n  divided: 'divided',\r\n  title: 'title',\r\n  group: 'group',\r\n  children: 'children',\r\n})\r\n"],"names":["defaultKeyConfig"],"mappings":"AAyDa,MAAAA,IAA8C,OAAO,OAAO;AAAA,EACvE,OAAO;AAAA,EACP,OAAO;AAAA,EACP,UAAU;AAAA,EACV,SAAS;AAAA,EACT,OAAO;AAAA,EACP,OAAO;AAAA,EACP,UAAU;AACZ,CAAC;"}