xdesign-vue-next
Version:
XDesign Component for vue-next
55 lines (51 loc) • 1.72 kB
JavaScript
/**
* xdesign v1.0.6
* (c) 2023 xdesign
* @license MIT
*/
import { onMounted, onBeforeMount } from 'vue';
import { on, off } from '../utils/dom.mjs';
import { i as isString_1 } from '../_chunks/dep-11fa9c2c.mjs';
import { CHECKED_CODE_REG } from '../checkbox/hooks/useKeyboard.mjs';
import '../_chunks/dep-10a947a6.mjs';
import '../_chunks/dep-1cc1c24f.mjs';
import '../_chunks/dep-b75d8d74.mjs';
import '../_chunks/dep-82805301.mjs';
import '../_chunks/dep-6ad18815.mjs';
import '../_chunks/dep-a95026f2.mjs';
import '../utils/easing.mjs';
import '../_chunks/dep-068e912d.mjs';
import '../_chunks/dep-addc2a84.mjs';
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_1(value) && {
"true": true,
"false": false
}[value] || value;
value = isString_1(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.mjs.map