import { extractPropsDefaultValue } from '../_util/utils';

const selectProps = {
  modelValue: {
    type: [String, Number, Array, Boolean, Object],
    default() {
      return void 0;
    }
  },
  placeholder: {
    type: String
  },
  disabled: {
    type: Boolean,
    default: false
  },
  clearable: {
    type: Boolean,
    default: false
  },
  multiple: {
    type: Boolean,
    default: false
  },
  multipleLimit: {
    type: Number,
    default: 0
  },
  emptyText: {
    type: String
  },
  appendToContainer: {
    type: Boolean,
    default: true
  },
  getContainer: {
    type: Function
  },
  filterable: {
    type: Boolean,
    default: false
  },
  filter: {
    type: Function
  },
  filterTextHighlight: {
    type: Boolean,
    default: false
  },
  collapseTags: {
    type: Boolean,
    default: false
  },
  collapseTagsLimit: {
    type: Number,
    default: 1
  },
  options: {
    type: Array,
    default() {
      return [];
    }
  },
  virtualScroll: {
    type: [Boolean, Number],
    default: true
  },
  remote: {
    type: Boolean,
    default: false
  },
  valueField: {
    type: String,
    default: 'value'
  },
  labelField: {
    type: String,
    default: 'label'
  },
  tagBordered: {
    type: Boolean,
    default: false
  },
  tag: {
    type: Boolean,
    default: false
  },
  popperClass: [String, Array, Object],
  triggerClass: [String, Array, Object],
  triggerStyle: [Object, String]
};
const selectPropsDefaultValue = extractPropsDefaultValue(selectProps);

export { selectProps, selectPropsDefaultValue };
