element-plus
Version:
A Component Library for Vue 3
123 lines (121 loc) • 2.94 kB
JavaScript
import { CHANGE_EVENT, UPDATE_MODEL_EVENT } from "../../../constants/event.mjs";
import { isBoolean } 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 { useTooltipContentProps } from "../../tooltip/src/content.mjs";
import { tagProps } from "../../tag/src/tag.mjs";
import { CommonProps } from "../../cascader-panel/src/config.mjs";
import { CircleClose } from "@element-plus/icons-vue";
import { placements } from "@popperjs/core";
//#region ../../packages/components/cascader/src/cascader.ts
/**
* @deprecated Removed after 3.0.0, Use `CascaderComponentProps` instead.
*/
const cascaderProps = buildProps({
...CommonProps,
size: useSizeProp,
placeholder: String,
disabled: {
type: Boolean,
default: void 0
},
clearable: Boolean,
clearIcon: {
type: iconPropType,
default: CircleClose
},
filterable: Boolean,
filterMethod: {
type: definePropType(Function),
default: (node, keyword) => node.text.includes(keyword)
},
separator: {
type: String,
default: " / "
},
showAllLevels: {
type: Boolean,
default: true
},
collapseTags: Boolean,
maxCollapseTags: {
type: Number,
default: 1
},
collapseTagsTooltip: Boolean,
maxCollapseTagsTooltipHeight: { type: [String, Number] },
debounce: {
type: Number,
default: 300
},
beforeFilter: {
type: definePropType(Function),
default: () => true
},
placement: {
type: definePropType(String),
values: placements,
default: "bottom-start"
},
fallbackPlacements: {
type: definePropType(Array),
default: [
"bottom-start",
"bottom",
"top-start",
"top",
"right",
"left"
]
},
popperClass: useTooltipContentProps.popperClass,
popperStyle: useTooltipContentProps.popperStyle,
teleported: useTooltipContentProps.teleported,
effect: {
type: definePropType(String),
default: "light"
},
tagType: {
...tagProps.type,
default: "info"
},
tagEffect: {
...tagProps.effect,
default: "light"
},
validateEvent: {
type: Boolean,
default: true
},
persistent: {
type: Boolean,
default: true
},
showCheckedStrategy: {
type: String,
values: ["parent", "child"],
default: "child"
},
checkOnClickNode: Boolean,
showPrefix: {
type: Boolean,
default: true
},
...useEmptyValuesProps
});
const emitChangeFn = (value) => true;
const cascaderEmits = {
[UPDATE_MODEL_EVENT]: emitChangeFn,
[CHANGE_EVENT]: emitChangeFn,
focus: (evt) => evt instanceof FocusEvent,
blur: (evt) => evt instanceof FocusEvent,
clear: () => true,
visibleChange: (val) => isBoolean(val),
expandChange: (val) => !!val,
removeTag: (val) => !!val
};
//#endregion
export { cascaderEmits, cascaderProps };
//# sourceMappingURL=cascader.mjs.map