tass-ui
Version:
A high quality UI Toolkit built on Vue.js3+.
76 lines (75 loc) • 2.78 kB
JavaScript
;
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
const vue = require("vue");
require("../../../theme-chalk/src/checkbox.scss.js");
const useCheckboxProps = require("../composables/use-checkbox-props.js");
const event = require("../../../constants/event.js");
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__ */ vue.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: [event.UPDATE_MODEL_EVENT, event.CHANGE_EVENT],
setup(__props) {
const props = __props;
const { model, isChecked, handlerChange } = useCheckboxProps.useCheckBoxProps(props);
const classList = vue.computed(() => {
const { disabled, isChecked: isChecked2 } = props;
return [
{
["is-disabled"]: disabled,
["is-checked"]: isChecked2
}
];
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("div", {
class: vue.normalizeClass(["tas-checkbox", vue.unref(classList)])
}, [
vue.createElementVNode("span", _hoisted_1, [
vue.withDirectives(vue.createElementVNode("input", {
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.isRef(model) ? model.value = $event : null),
type: "checkbox",
indeterminate: __props.indeterminate,
disabled: __props.disabled,
name: __props.name,
value: __props.label,
isChecked: vue.unref(isChecked),
onChange: _cache[1] || (_cache[1] = //@ts-ignore
(...args) => vue.unref(handlerChange) && vue.unref(handlerChange)(...args)),
id: "inputId"
}, null, 40, _hoisted_2), [
[vue.vModelCheckbox, vue.unref(model)]
])
]),
_ctx.$slots.default || __props.label ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3, [
vue.renderSlot(_ctx.$slots, "default"),
!_ctx.$slots.default ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
vue.createTextVNode(vue.toDisplayString(__props.label), 1)
], 64)) : vue.createCommentVNode("", true)
])) : vue.createCommentVNode("", true)
], 2);
};
}
});
exports.default = _sfc_main;