UNPKG

tass-ui

Version:

A high quality UI Toolkit built on Vue.js3+.

53 lines (52 loc) 1.42 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const vue = require("vue"); const event = require("../../../constants/event.js"); function useModel(props) { const { emit } = vue.getCurrentInstance(); const useProvide = vue.inject("TassCheckboxGroup", {}); const model = vue.computed({ get() { return useProvide.modelValue ? useProvide.modelValue.value : props.modelValue; }, set(val) { var _a; if (useProvide.modelValue) { return (_a = useProvide.handlerChange) == null ? void 0 : _a.call(useProvide, val); } emit(event.UPDATE_MODEL_EVENT, val); } }); return model; } function useCheckbox(props, model) { const isChecked = vue.computed(() => { const value = model.value; if (Array.isArray(value)) { return value.includes(props.label); } else { return value; } }); return isChecked; } function useEvent() { const { emit } = vue.getCurrentInstance(); function handlerChange(e) { const target = e.target; const val = target.checked ? true : false; emit(event.CHANGE_EVENT, val); } return handlerChange; } const useCheckBoxProps = (props) => { const model = useModel(props); const isChecked = useCheckbox(props, model); const handlerChange = useEvent(); return { model, isChecked, handlerChange }; }; exports.useCheckBoxProps = useCheckBoxProps;