UNPKG

@opensig/opendesign

Version:

46 lines (45 loc) 1.58 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const vue = require("vue"); require("../form/index.js"); const helper = require("../_utils/helper.js"); const provide = require("../form/provide.js"); function useFormField(props, emit) { const formItem = vue.inject(provide.formItemInjectKey, null); const effectiveColor = vue.computed(() => { const result = formItem == null ? void 0 : formItem.fieldResult.value; return result ? result.type || "normal" : props.color ?? "normal"; }); const inputId = vue.ref(props.inputId); vue.onMounted(() => { if (!inputId.value) { inputId.value = helper.uniqueId(); } }); const isFocus = vue.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 }; } exports.useFormField = useFormField;