layui-vue/es/radio/index2.js

105 lines
4.0 KiB
JavaScript
Raw Normal View History

2022-11-14 03:59:26 +00:00
import { w as withInstall } from "../badge/index2.js";
import { defineComponent, inject, computed, openBlock, createElementBlock, createElementVNode, unref, normalizeClass, withModifiers, renderSlot, createTextVNode, toDisplayString } from "vue";
var index = /* @__PURE__ */ (() => ".layui-radio[size=lg] .layui-form-radio>i{font-size:24px}.layui-radio[size=md] .layui-form-radio>i{font-size:22px}.layui-radio[size=sm] .layui-form-radio>i{font-size:20px}.layui-radio[size=xs] .layui-form-radio>i{font-size:18px}.layui-radio input[type=radio]{display:none}.layui-form-radio,.layui-form-radio *{display:inline-block;vertical-align:middle}.layui-form-radio{line-height:28px;margin:6px 10px 0 0;padding-right:10px;cursor:pointer;font-size:0}.layui-form-radio *{font-size:14px}.layui-form-radio>i{margin-right:8px;font-size:22px;color:var(--global-neutral-color-8)}.layui-form-radio:hover *,.layui-form-radioed,.layui-form-radioed>i{color:var(--global-checked-color)}.layui-radio-disabled>i{color:var(--global-neutral-color-3)!important}.layui-radio-disabled *{color:var(--global-neutral-color-8)!important}\n")();
const _hoisted_1 = ["size"];
const _hoisted_2 = ["value", "name"];
const _hoisted_3 = ["onClick"];
const _hoisted_4 = {
key: 0,
class: "layui-anim layui-icon layui-anim-scaleSpring"
};
const _hoisted_5 = {
key: 1,
class: "layui-icon layui-form-radioed"
};
const __default__ = {
name: "LayRadio"
};
const _sfc_main = defineComponent({
...__default__,
props: {
name: null,
size: { default: "md" },
disabled: { type: Boolean },
modelValue: { type: [String, Boolean, Number] },
value: { type: [String, Boolean, Number] },
label: null
},
emits: ["update:modelValue", "change"],
setup(__props, { emit }) {
const props = __props;
const radioGroup = inject("radioGroup", {});
const isGroup = computed(() => {
return radioGroup != void 0 && (radioGroup == null ? void 0 : radioGroup.name) === "LayRadioGroup";
});
const naiveName = computed(() => {
if (radioGroup.naiveName) {
return radioGroup.naiveName;
} else {
return props.name;
}
});
const isChecked = computed({
get() {
if (isGroup.value) {
return radioGroup.modelValue.value === props.value;
} else {
return props.modelValue === props.value;
}
},
set(val) {
if (isGroup.value) {
radioGroup.modelValue.value = props.value;
} else {
if (val) {
emit("change", props.value);
emit("update:modelValue", props.value);
}
}
}
});
const handleClick = function() {
if (!ifDisabled.value) {
isChecked.value = !isChecked.value;
}
};
const ifDisabled = computed(() => {
if (props.disabled) {
return true;
}
if (radioGroup.hasOwnProperty("disabled") && radioGroup.disabled.value) {
return true;
}
return false;
});
return (_ctx, _cache) => {
return openBlock(), createElementBlock("span", {
class: "layui-radio",
size: __props.size
}, [
createElementVNode("input", {
type: "radio",
value: __props.value,
name: unref(naiveName)
}, null, 8, _hoisted_2),
createElementVNode("div", {
class: normalizeClass(["layui-unselect layui-form-radio", {
"layui-form-radioed": unref(isChecked),
"layui-radio-disabled layui-disabled": unref(ifDisabled)
}]),
onClick: withModifiers(handleClick, ["stop"])
}, [
unref(isChecked) ? (openBlock(), createElementBlock("i", _hoisted_4, "\uE643")) : (openBlock(), createElementBlock("i", _hoisted_5, "\uE63F")),
createElementVNode("span", null, [
renderSlot(_ctx.$slots, "default", {}, () => [
createTextVNode(toDisplayString(__props.label), 1)
])
])
], 10, _hoisted_3)
], 8, _hoisted_1);
};
}
});
const component = withInstall(_sfc_main);
export { _sfc_main as _, component as c };