@opensig/opendesign
Version:
46 lines (45 loc) • 1.58 kB
JavaScript
;
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;