UNPKG

@opensig/opendesign

Version:

46 lines (45 loc) 1.49 kB
import { inject, computed, ref, onMounted } from "vue"; import "../form/index.mjs"; import { uniqueId } from "../_utils/helper.mjs"; import { formItemInjectKey } from "../form/provide.mjs"; function useFormField(props, emit) { const formItem = inject(formItemInjectKey, null); const effectiveColor = computed(() => { const result = formItem == null ? void 0 : formItem.fieldResult.value; return result ? result.type || "normal" : props.color ?? "normal"; }); const inputId = ref(props.inputId); onMounted(() => { if (!inputId.value) { inputId.value = uniqueId(); } }); const isFocus = ref(false); const onFocus = (e) => { var _a, _b; isFocus.value = true; emit("focus", e); (_b = formItem == null ? void 0 : (_a = formItem.fieldHandlers).onFocus) == null ? void 0 : _b.call(_a); }; const onBlur = () => { var _a, _b; isFocus.value = false; emit("blur"); (_b = formItem == null ? void 0 : (_a = formItem.fieldHandlers).onBlur) == null ? void 0 : _b.call(_a); }; const onClear = (e) => { e == null ? void 0 : e.stopPropagation(); emit("clear", e); }; const onPressEnter = () => { emit("pressEnter"); }; const notifyChange = () => { var _a, _b; (_b = formItem == null ? void 0 : (_a = formItem.fieldHandlers).onChange) == null ? void 0 : _b.call(_a); }; return { effectiveColor, inputId, isFocus, onFocus, onBlur, onClear, onPressEnter, notifyChange }; } export { useFormField };