element-plus
Version:
A Component Library for Vue 3
43 lines (40 loc) • 1.34 kB
JavaScript
import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
import { mutable } from '../../../utils/typescript.mjs';
import { isNumber } from '../../../utils/types.mjs';
import { isString, isArray } from '@vue/shared';
import { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '../../../constants/event.mjs';
const emitChangeFn = (value) => isNumber(value) || isString(value) || isArray(value);
const collapseProps = buildProps({
/**
* @description whether to activate accordion mode
*/
accordion: Boolean,
/**
* @description currently active panel, the type is `string` in accordion mode, otherwise it is `array`
*/
modelValue: {
type: definePropType([Array, String, Number]),
default: () => mutable([])
},
/**
* @description set expand icon position
*/
expandIconPosition: {
type: definePropType([String]),
default: "right"
},
/**
* @description before-collapse hook before the collapse state changes. If `false` is returned or a `Promise` is returned and then is rejected, will stop collapsing
*/
beforeCollapse: {
type: definePropType(
Function
)
}
});
const collapseEmits = {
[UPDATE_MODEL_EVENT]: emitChangeFn,
[CHANGE_EVENT]: emitChangeFn
};
export { collapseEmits, collapseProps, emitChangeFn };
//# sourceMappingURL=collapse.mjs.map