UNPKG

dk-plus

Version:
68 lines (67 loc) 1.91 kB
import { defineComponent as o, reactive as k, ref as m, watch as l, nextTick as f, toRefs as x } from "vue"; import { switchProps as r } from "./index3.js"; import "../../_icon/index.js"; import { getSwitch as g } from "../../_hooks/get-switch/index.js"; const V = o({ name: "DkSwitch", props: r, emits: ["change", "update:modelValue"], setup(e, { emit: u }) { const { classList: d, styleList: s } = g(e), t = k({ modelValue: e.modelValue, disabled: e.disabled, checkedText: e.checkedText, uncheckedText: e.uncheckedText, checkText: e.uncheckedText, checkIcon: e.uncheckedIcon, loading: e.loading, customIcon: e.checkedIcon }), n = { handleChange: (c) => { const h = c.target; let i = h.checked; h.checked = i, u("update:modelValue", i), u("change", i); }, refreshStatus: () => { if (t.disabled = e.disabled || e.loading, t.disabled) { if (d.value.includes("dk-switch_disabled")) return; d.value.push("dk-switch_disabled"); } else { const c = d.value.indexOf("dk-switch_disabled"); if (c === -1) return; d.value.splice(c, 1); } } }, a = m(); return l( () => e.modelValue, (c) => { t.modelValue = c, t.checkText = c ? t.checkedText : t.uncheckedText, t.checkIcon = c ? e.checkedIcon : e.uncheckedIcon, t.customIcon = c ? e.checkedCustomIcon : e.uncheckedCustomIcon, n.refreshStatus(), f(() => { a.value && (a.value.checked = c); }); }, { immediate: !0 } ), l( () => e.loading, (c) => { t.loading = c, n.refreshStatus(); }, { immediate: !0 } ), { classList: d, styleList: s, ...x(t), ...n, switchRef: a }; } }); export { V as default };