UNPKG

double-ui-vue

Version:
87 lines (86 loc) 1.93 kB
import { defineComponent, getCurrentInstance, createVNode } from "vue"; var style = ""; var V = (e, t) => { let r = e.tagName.toLocaleLowerCase(); return r === "body" || t.some((o) => o.toLocaleLowerCase() === r) ? e : V(e.parentNode, t); }, M = V; var _t = (e, t) => { let r = e.target; t && (r = M(r, [t])); let { clientWidth: o, scrollWidth: n } = r; n > o ? r.title = r.innerText : r.title = ""; }, Kt = _t; const Checkbox = defineComponent({ name: "DCheckbox", props: { checked: { type: String, default: "uncheck" }, disabled: { type: Boolean, default: false }, stopPropagation: { type: Boolean, default: false }, attr: { type: String }, onChange: { type: Function, default: () => { } } }, setup(props, { emit }) { const { vnode } = getCurrentInstance(); const handleChange = (e) => { const { disabled, checked, stopPropagation, attr } = props; if (stopPropagation) e.stopPropagation(); if (disabled) return; let status; if (checked === "checked") status = "uncheck"; else status = "checked"; if (vnode.props.onChange) emit("change", status, attr, e); else emit("update:checked", status); }; return { handleChange }; }, render() { const { $slots: slots, disabled, checked, handleChange } = this; return createVNode("div", { "class": ["d-checkbox", disabled && "d-checkbox-disabled"], "onClick": handleChange }, [createVNode("i", { "class": ["d-checkbox-box", `d-checkbox-${checked}`] }, null), slots.default && createVNode("span", { "class": "d-checkbox-text", "onMouseenter": Kt }, [slots.default()])]); } }); export { Checkbox as default };