xdesign-vue-next
Version:
XDesign Component for vue-next
58 lines (50 loc) • 1.86 kB
JavaScript
/**
* xdesign v1.0.6
* (c) 2023 xdesign
* @license MIT
*/
;
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
var utils_dom = require('../utils/dom.js');
var isString = require('lodash/isString');
var checkbox_hooks_useKeyboard = require('../checkbox/hooks/useKeyboard.js');
require('../_chunks/dep-8d10b59f.js');
require('lodash/isFunction');
require('lodash/isArray');
require('../utils/easing.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var isString__default = /*#__PURE__*/_interopDefaultLegacy(isString);
function useKeyboard(radioGroupRef, setInnerValue) {
var checkRadioInGroup = function checkRadioInGroup(e) {
var isCheckedCode = checkbox_hooks_useKeyboard.CHECKED_CODE_REG.test(e.key) || checkbox_hooks_useKeyboard.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__default["default"](value) && {
"true": true,
"false": false
}[value] || value;
value = isString__default["default"](value) && value[0] === "'" ? value.replace(/'/g, "") : value;
setInnerValue(value, {
e: e
});
}
}
};
vue.onMounted(function () {
utils_dom.on(radioGroupRef.value, "keydown", checkRadioInGroup);
});
vue.onBeforeMount(function () {
utils_dom.off(radioGroupRef.value, "keydown", checkRadioInGroup);
});
}
exports["default"] = useKeyboard;
//# sourceMappingURL=useKeyboard.js.map