{"version":3,"file":"useKeyboard.mjs","sources":["../../src/radio/useKeyboard.ts"],"sourcesContent":["import { onBeforeMount, onMounted, Ref } from 'vue';\nimport { off, on } from '../utils/dom';\nimport isString from 'lodash/isString';\nimport { CHECKED_CODE_REG } from '../checkbox/hooks/useKeyboard';\n\n/** 键盘操作 */\nexport default function useKeyboard(\n  radioGroupRef: Ref<HTMLElement>,\n  setInnerValue: (value: any, context: { e: Event }) => void,\n) {\n  const checkRadioInGroup = (e: KeyboardEvent) => {\n    const isCheckedCode = CHECKED_CODE_REG.test(e.key) || CHECKED_CODE_REG.test(e.code);\n    if (isCheckedCode) {\n      e.preventDefault();\n      const inputNode = (e.target as HTMLElement).querySelector('input');\n      const data = inputNode.dataset;\n      if (inputNode.checked && data.allowUncheck) {\n        setInnerValue(undefined, { e });\n      } else {\n        // Number\n        let value: number | string | boolean = !isNaN(Number(data.value)) ? Number(data.value) : data.value;\n        // Boolean\n        value = (isString(value) && { true: true, false: false }[value]) || value;\n        // String\n        value = isString(value) && value[0] === \"'\" ? value.replace(/'/g, '') : value;\n        setInnerValue(value, { e });\n      }\n    }\n  };\n\n  onMounted(() => {\n    on(radioGroupRef.value, 'keydown', checkRadioInGroup);\n  });\n\n  onBeforeMount(() => {\n    off(radioGroupRef.value, 'keydown', checkRadioInGroup);\n  });\n}\n"],"names":["e","value","onMounted","onBeforeMount"],"mappings":";;;;;;;;;;;;;;;;;;;;AAMA,SAAA,WAAA,CAAA,aAAA,EAAA,aAAA,EAAA;AAIQ,EAAA,IAAA,iBAAA,GAAA,SAAA,iBAAA,CAAA,CAAA,EAAA;AACE,IAAA,IAAA,aAAA,GAAA,gBAAA,CAAA,IAAA,CAAA,CAAA,CAAA,GAAA,CAAA,IAAA,gBAAA,CAAA,IAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA;AACN,IAAA,IAAA,aAAA,EAAA;;;AAGE,MAAA,IAAA,IAAA,GAAA,SAAA,CAAA,OAAA,CAAA;AACI,MAAA,IAAA,SAAA,CAAA,OAAA,IAAA,IAAA,CAAA,YAAA,EAAA;;AACyBA,UAAAA,CAAAA,EAAAA,CAAAA;AAAE,SAAA,CAAA,CAAA;AAC/B,OAAA,MAAA;;AAIWC,QAAAA,KAAAA,GAAAA,UAAAA,CAAAA,KAAAA,CAAAA,IAAAA;AAAqB,UAAA,MAAA,EAAA,IAAA;;AAAyB,SAAA,CAAA,KAAA,CAAA,IAAA,KAAA,CAAA;;;AAGhCD,UAAAA,CAAAA,EAAAA,CAAAA;AAAE,SAAA,CAAA,CAAA;AAC3B,OAAA;AACF,KAAA;;AAGFE,EAAAA,SAAAA,CAAAA,YAAAA;;AAEA,GAAA,CAAA,CAAA;AAEAC,EAAAA,aAAAA,CAAAA,YAAAA;;AAEA,GAAA,CAAA,CAAA;AACF;;;;"}