{"version":3,"file":"select.mjs","sources":["../../../../../../packages/components/select/src/select.ts"],"sourcesContent":["import { isNil } from 'lodash-unified'\nimport { useColorProp } from '@vuesax-alpha/hooks'\nimport {\n  buildProps,\n  definePropType,\n  isArray,\n  isBoolean,\n  isNumber,\n  isObject,\n  isString,\n} from '@vuesax-alpha/utils'\nimport { popperProps } from '@vuesax-alpha/components/popper'\nimport type { EmitFn } from '@vuesax-alpha/utils'\nimport type { SelectOptionValue, SelectValue } from './tokens'\n\nimport type { ExtractPropTypes } from 'vue'\nimport type Select from './select.vue'\n\nexport const selectProps = buildProps({\n  showAfter: {\n    type: Number,\n    default: 0,\n    validator: (val: number) => isNumber(val) && val >= 0,\n  },\n  hideAfter: {\n    type: Number,\n    default: 0,\n    validator: (val: number) => isNumber(val) && val >= 0,\n  },\n  flip: {\n    ...popperProps.flip,\n    default: true,\n  },\n  fit: {\n    ...popperProps.fit,\n    default: true,\n  },\n  disabled: popperProps.disabled,\n  onClick: popperProps.onClick,\n  onBlur: popperProps.onBlur,\n  onFocus: popperProps.onFocus,\n  onMouseenter: popperProps.onMouseenter,\n  onMouseleave: popperProps.onMouseleave,\n  onContextmenu: popperProps.onContextmenu,\n  onKeydown: popperProps.onKeydown,\n  strategy: { ...popperProps.strategy, default: 'absolute' },\n  teleported: popperProps.teleported,\n  /**\n   * @description binding value\n   */\n  modelValue: {\n    type: definePropType<SelectValue>([Array, String, Number, Object]),\n    default: '',\n  },\n  notValue: {\n    type: definePropType<SelectOptionValue>([String, Number, Object]),\n    default: '',\n  },\n  loadingText: { type: String },\n  noMatchText: { type: String },\n  noDataText: { type: String },\n  allowCreate: { type: Boolean, default: false },\n  multiple: { type: Boolean, default: false },\n  multipleLimit: {\n    type: Number,\n    default: 0,\n  },\n  filter: { type: Boolean },\n  filterMethod: {\n    type: definePropType<(val: string) => void>(Function),\n  },\n  collapseChips: { type: Boolean },\n  maxCollapseChips: {\n    type: Number,\n    default: 1,\n    validator: (value: number) => isNumber(value) && value >= 0,\n  },\n  /**\n   * @description set default select is firt option\n   */\n  defaultFirstOption: { type: Boolean },\n\n  /**\n   * @description Add a loading animation to the input.\n   */\n  loading: { type: Boolean },\n  /**\n   * @description Select color - Accept Vuesax's color, Hex, rgb\n   */\n  color: { ...useColorProp, default: 'primary' },\n  /**\n   * @description State color - Accept Vuesax's color, Hex, rgb\n   */\n  state: useColorProp,\n  /**\n   * @description make select width full\n   */\n  block: { type: Boolean },\n  /**\n   * @description hide scrollbar\n   */\n  hideScrollbar: { type: Boolean },\n\n  /**\n   * @description label is placeholder when input empty\n   */\n  labelFloat: { type: Boolean },\n\n  /**\n   * @description a label above the component.\n   */\n  label: {\n    type: String,\n    default: null,\n  },\n\n  /**\n   * @description input placeholder\n   */\n  placeholder: {\n    type: String,\n    default: null,\n  },\n  shape: {\n    type: String,\n    values: ['square'] as const,\n    default: '',\n  },\n  id: {\n    type: String,\n  },\n  /**\n   * @description show native scrollbar\n   */\n  nativeScrollbar: { type: Boolean },\n  /**\n   * @description native input readonly\n   */\n  clearable: { type: Boolean },\n} as const)\n\nexport type SelectProps = ExtractPropTypes<typeof selectProps>\n\nexport const selectEmits = {\n  'update:modelValue': (val: SelectValue) =>\n    isArray(val) ||\n    isString(val) ||\n    isNumber(val) ||\n    isBoolean(val) ||\n    isObject(val) ||\n    isNil(val),\n  'visible-change': (val: boolean) => isBoolean(val),\n  'remove-tag': (val: SelectOptionValue) => val,\n  focus: (event: FocusEvent | Event) => event instanceof Event,\n  blur: (event: FocusEvent | Event) => event instanceof Event,\n  change: (val: SelectValue) =>\n    isArray(val) ||\n    isString(val) ||\n    isNumber(val) ||\n    isBoolean(val) ||\n    isObject(val) ||\n    isNil(val),\n  clear: () => true,\n}\n\nexport type SelectEmits = typeof selectEmits\n\nexport type SelectEmitsFn = EmitFn<SelectEmits>\n\nexport type SelectInstance = InstanceType<typeof Select>\n\nexport interface SelectExpose {\n  /** focus to select */\n  readonly focus: () => void\n  /** blur select */\n  readonly blur: () => void\n}\n"],"names":[],"mappings":"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"}