comic-plus
Version:
<p align="center"> <img width="200px" src="./logo.png"/> </p>
36 lines (35 loc) • 1.29 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const vue = require("vue");
const config = require("../../../utils/config.js");
require("@vueuse/core");
const validate = require("../../../hooks/validate.js");
const type$1 = require("../../form/src/type.js");
const type = require("./type.js");
const useRadio = (props, emit) => {
const { itemValidate } = validate.useItemValidate();
const { globalSize } = config.useGlobal();
const radioGroup = vue.inject(type.RADIOGROUP_PROVIDE, void 0);
const form = vue.inject(type$1.FORM_PROVIDE, void 0);
const currentSize = vue.computed(() => {
return props.size ?? (radioGroup == null ? void 0 : radioGroup.props.size) ?? (form == null ? void 0 : form.props.size) ?? (globalSize == null ? void 0 : globalSize.value);
});
const isCheck = vue.computed(() => {
return radioGroup ? radioGroup.props.modelValue === props.value : props.modelValue === props.value;
});
function changeValue() {
if (radioGroup) {
radioGroup.changeItemCheck(props.value);
return;
}
emit("update:modelValue", props.value);
emit("change", isCheck.value);
itemValidate("change");
}
return {
currentSize,
isCheck,
changeValue
};
};
exports.useRadio = useRadio;