tass-ui
Version:
A high quality UI Toolkit built on Vue.js3+.
76 lines (75 loc) • 2.77 kB
JavaScript
import { defineComponent, computed, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, withDirectives, isRef, vModelCheckbox, renderSlot, Fragment, createTextVNode, toDisplayString, createCommentVNode } from "vue";
import "../../../theme-chalk/src/checkbox.scss.mjs";
import { useCheckBoxProps } from "../composables/use-checkbox-props.mjs";
import { UPDATE_MODEL_EVENT, CHANGE_EVENT } from "../../../constants/event.mjs";
const _hoisted_1 = { class: "tas-checkbox__input" };
const _hoisted_2 = ["indeterminate", "disabled", "name", "value", "isChecked"];
const _hoisted_3 = {
key: 0,
class: "tas-checkbox__label"
};
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "checkbox",
props: {
indeterminate: Boolean,
isChecked: Boolean,
name: {
type: String,
default: void 0
},
disabled: Boolean,
label: {
type: [String, Number, Boolean, Object],
default: void 0
},
modelValue: {
type: [String, Number, Boolean],
default: void 0
}
},
emits: [UPDATE_MODEL_EVENT, CHANGE_EVENT],
setup(__props) {
const props = __props;
const { model, isChecked, handlerChange } = useCheckBoxProps(props);
const classList = computed(() => {
const { disabled, isChecked: isChecked2 } = props;
return [
{
["is-disabled"]: disabled,
["is-checked"]: isChecked2
}
];
});
return (_ctx, _cache) => {
return openBlock(), createElementBlock("div", {
class: normalizeClass(["tas-checkbox", unref(classList)])
}, [
createElementVNode("span", _hoisted_1, [
withDirectives(createElementVNode("input", {
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(model) ? model.value = $event : null),
type: "checkbox",
indeterminate: __props.indeterminate,
disabled: __props.disabled,
name: __props.name,
value: __props.label,
isChecked: unref(isChecked),
onChange: _cache[1] || (_cache[1] = //@ts-ignore
(...args) => unref(handlerChange) && unref(handlerChange)(...args)),
id: "inputId"
}, null, 40, _hoisted_2), [
[vModelCheckbox, unref(model)]
])
]),
_ctx.$slots.default || __props.label ? (openBlock(), createElementBlock("span", _hoisted_3, [
renderSlot(_ctx.$slots, "default"),
!_ctx.$slots.default ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
createTextVNode(toDisplayString(__props.label), 1)
], 64)) : createCommentVNode("", true)
])) : createCommentVNode("", true)
], 2);
};
}
});
export {
_sfc_main as default
};