UNPKG

xdesign-vue-next

Version:

XDesign Component for vue-next

50 lines (46 loc) 1.47 kB
/** * xdesign v1.0.6 * (c) 2023 xdesign * @license MIT */ import { onMounted, onBeforeMount } from 'vue'; import { on, off } from '../utils/dom.js'; import isString from 'lodash/isString'; import { CHECKED_CODE_REG } from '../checkbox/hooks/useKeyboard.js'; import '../_chunks/dep-3a1cce9f.js'; import 'lodash/isFunction'; import 'lodash/isArray'; import '../utils/easing.js'; function useKeyboard(radioGroupRef, setInnerValue) { var checkRadioInGroup = function checkRadioInGroup(e) { var isCheckedCode = CHECKED_CODE_REG.test(e.key) || CHECKED_CODE_REG.test(e.code); if (isCheckedCode) { e.preventDefault(); var inputNode = e.target.querySelector("input"); var data = inputNode.dataset; if (inputNode.checked && data.allowUncheck) { setInnerValue(void 0, { e: e }); } else { var value = !isNaN(Number(data.value)) ? Number(data.value) : data.value; value = isString(value) && { "true": true, "false": false }[value] || value; value = isString(value) && value[0] === "'" ? value.replace(/'/g, "") : value; setInnerValue(value, { e: e }); } } }; onMounted(function () { on(radioGroupRef.value, "keydown", checkRadioInGroup); }); onBeforeMount(function () { off(radioGroupRef.value, "keydown", checkRadioInGroup); }); } export { useKeyboard as default }; //# sourceMappingURL=useKeyboard.js.map