@vuesax-alpha/nightly
Version:
A Component Library for Vue 3
1 lines • 7.59 kB
Source Map (JSON)
{"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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"}