element-plus
Version:
A Component Library for Vue 3
34 lines (33 loc) • 1.26 kB
JavaScript
import { inject, computed, getCurrentInstance, unref } from 'vue';
import { elFormKey, elFormItemKey } from 'element-plus/es/tokens';
import { buildProps } from 'element-plus/es/utils/props';
import { useGlobalConfig } from 'element-plus/es/utils/util';
const sizes = ['', 'large', 'medium', 'small', 'mini'];
export const useFormItemProps = buildProps({
size: {
type: String,
values: sizes,
default: '',
},
disabled: Boolean,
});
export const useFormItem = ({ size, disabled }) => {
const vm = getCurrentInstance();
const $ELEMENT = useGlobalConfig();
const props = vm.proxy.$props;
const form = inject(elFormKey, undefined);
const formItem = inject(elFormItemKey, undefined);
return {
size: computed(() => {
return (props.size ||
unref(size) ||
(formItem === null || formItem === void 0 ? void 0 : formItem.size) ||
(form === null || form === void 0 ? void 0 : form.size) ||
$ELEMENT.size ||
'');
}),
disabled: computed(() => {
return (props.disabled === true || unref(disabled) || (form === null || form === void 0 ? void 0 : form.disabled) || false);
}),
};
};