UNPKG

element-plus

Version:

A Component Library for Vue 3

200 lines (198 loc) 4.26 kB
import { CHANGE_EVENT, UPDATE_MODEL_EVENT } from "../../../constants/event.mjs"; import { isBoolean, isNumber } from "../../../utils/types.mjs"; import { buildProps, definePropType } from "../../../utils/vue/props/runtime.mjs"; import { iconPropType } from "../../../utils/vue/icon.mjs"; import { useSizeProp } from "../../../hooks/use-size/index.mjs"; import { useEmptyValuesProps } from "../../../hooks/use-empty-values/index.mjs"; import { useAriaProps } from "../../../hooks/use-aria/index.mjs"; import { useTooltipContentProps } from "../../tooltip/src/content.mjs"; import { tagProps } from "../../tag/src/tag.mjs"; import { defaultProps } from "./useProps.mjs"; import { ArrowDown, CircleClose } from "@element-plus/icons-vue"; import { placements } from "@popperjs/core"; //#region ../../packages/components/select-v2/src/defaults.ts const selectV2Props = buildProps({ allowCreate: Boolean, autocomplete: { type: definePropType(String), default: "none" }, automaticDropdown: Boolean, clearable: Boolean, clearIcon: { type: iconPropType, default: CircleClose }, effect: { type: definePropType(String), default: "light" }, collapseTags: Boolean, collapseTagsTooltip: Boolean, tagTooltip: { type: definePropType(Object), default: () => ({}) }, maxCollapseTags: { type: Number, default: 1 }, defaultFirstOption: Boolean, disabled: { type: Boolean, default: void 0 }, estimatedOptionHeight: { type: Number, default: void 0 }, filterable: Boolean, filterMethod: { type: definePropType(Function) }, height: { type: Number, default: 274 }, itemHeight: { type: Number, default: 34 }, id: String, loading: Boolean, loadingText: String, modelValue: { type: definePropType([ Array, String, Number, Boolean, Object ]), default: void 0 }, multiple: Boolean, multipleLimit: { type: Number, default: 0 }, name: String, noDataText: String, noMatchText: String, remoteMethod: { type: definePropType(Function) }, reserveKeyword: { type: Boolean, default: true }, options: { type: definePropType(Array), required: true }, placeholder: { type: String }, teleported: useTooltipContentProps.teleported, persistent: { type: Boolean, default: true }, popperClass: useTooltipContentProps.popperClass, popperStyle: useTooltipContentProps.popperStyle, popperOptions: { type: definePropType(Object), default: () => ({}) }, remote: Boolean, debounce: { type: Number, default: 300 }, size: useSizeProp, props: { type: definePropType(Object), default: () => defaultProps }, valueKey: { type: String, default: "value" }, scrollbarAlwaysOn: Boolean, validateEvent: { type: Boolean, default: true }, offset: { type: Number, default: 12 }, remoteShowSuffix: Boolean, showArrow: { type: Boolean, default: true }, placement: { type: definePropType(String), values: placements, default: "bottom-start" }, fallbackPlacements: { type: definePropType(Array), default: [ "bottom-start", "top-start", "right", "left" ] }, tagType: { ...tagProps.type, default: "info" }, tagEffect: { ...tagProps.effect, default: "light" }, tabindex: { type: [String, Number], default: 0 }, appendTo: useTooltipContentProps.appendTo, fitInputWidth: { type: [Boolean, Number], default: true, validator(val) { return isBoolean(val) || isNumber(val); } }, suffixIcon: { type: iconPropType, default: ArrowDown }, ...useEmptyValuesProps, ...useAriaProps(["ariaLabel"]) }); const optionV2Props = buildProps({ data: Array, disabled: Boolean, hovering: Boolean, item: { type: definePropType(Object), required: true }, index: Number, style: Object, selected: Boolean, created: Boolean }); const selectV2Emits = { [UPDATE_MODEL_EVENT]: (val) => true, [CHANGE_EVENT]: (val) => true, "remove-tag": (val) => true, "visible-change": (visible) => true, focus: (evt) => evt instanceof FocusEvent, blur: (evt) => evt instanceof FocusEvent, clear: () => true }; const optionV2Emits = { hover: (index) => isNumber(index), select: (val, index) => true }; //#endregion export { optionV2Emits, optionV2Props, selectV2Emits, selectV2Props }; //# sourceMappingURL=defaults.mjs.map