yanzhen-design-vue
Version:
51 lines (50 loc) • 1.43 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const vue = require("vue");
const utilsVue = require("@yanzhen-libs/utils-vue");
const lodashEs = require("lodash-es");
const utils = require("@yanzhen-libs/utils");
const antDesignVue = require("ant-design-vue");
const textarea = require("./textarea.cjs");
function useTextarea(props, emit) {
const _ref = vue.ref(null);
const attrs = vue.useAttrs();
const slots = vue.useSlots();
const config = vue.computed(() => {
return lodashEs.pick(props, ...Object.keys(textarea.AntTextArea.props));
});
const handleBlur = (e) => {
const trimValue = lodashEs.isString(props.value) ? lodashEs.trim(props.value) : props.value;
if (!utils.isEmptyValue(trimValue) && trimValue !== props.value) {
emit("update:value", String(trimValue));
}
emit("blur", e);
};
const proxyProps = utilsVue.useProxyProps(config, textarea.AntTextArea.emits, {
emit(event, ...args) {
switch (event) {
case "blur":
return handleBlur(args[0]);
}
emit(event, ...args);
},
exclude: [],
filter: true
});
return [
{
_ref,
proxyProps
},
(props2) => {
return vue.createVNode(
antDesignVue.Textarea,
vue.mergeProps(attrs, props2 ?? {}, {
ref: _ref
}),
slots
);
}
];
}
exports.useTextarea = useTextarea;