xdesign-vue-next
Version:
XDesign Component for vue-next
1 lines • 1.5 kB
Source Map (JSON)
{"version":3,"file":"useKeyboard.mjs","sources":["../../../src/checkbox/hooks/useKeyboard.ts"],"sourcesContent":["export const CHECKED_CODE_REG = /(enter|space)/i;\n\nexport function useKeyboardEvent(handleChange: (e: Event) => void) {\n const keyboardEventListener = (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 { disabled } = (e.currentTarget as HTMLElement).querySelector('input');\n !disabled && handleChange(e);\n }\n };\n\n const onCheckboxFocus = (e: FocusEvent) => {\n e.currentTarget.addEventListener('keydown', keyboardEventListener);\n };\n\n const onCheckboxBlur = (e: FocusEvent) => {\n e.currentTarget.removeEventListener('keydown', keyboardEventListener);\n };\n\n return {\n onCheckboxFocus,\n onCheckboxBlur,\n };\n}\n\nexport default useKeyboardEvent;\n"],"names":["onCheckboxFocus","onCheckboxBlur"],"mappings":";;;;;;AAAO,sCAAA,IAAA,gBAAA,GAAA,iBAAA;AAEA,SAAA,gBAAA,CAAA,YAAA,EAAA;AACC,EAAA,IAAA,qBAAA,GAAA,SAAA,qBAAA,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;;;;AAGG,MAAA,CAAA,QAAA,IAAA,YAAA,CAAA,CAAA,CAAA,CAAA;AACH,KAAA;;AAGI,EAAA,IAAA,eAAA,GAAA,SAAA,eAAA,CAAA,CAAA,EAAA;;;AAIA,EAAA,IAAA,cAAA,GAAA,SAAA,cAAA,CAAA,CAAA,EAAA;;;;AAKJA,IAAAA,eAAAA,EAAAA,eAAAA;AACAC,IAAAA,cAAAA,EAAAA,cAAAA;;AAEJ;;;;"}