UNPKG

tdesign-vue-next

Version:
48 lines (44 loc) 1.42 kB
/** * tdesign v1.11.5 * (c) 2025 tdesign * @license MIT */ import { onMounted, onBeforeMount } from 'vue'; import { isString } from 'lodash-es'; import { on, off } from '../../utils/dom.js'; import { C as CHECKED_CODE_REG } from '../../_chunks/dep-d2f3d117.js'; import '../../_chunks/dep-caecb55d.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"); if (!inputNode) return; 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 }; //# sourceMappingURL=useKeyboard.js.map