UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 2.59 kB
{"version":3,"file":"event.mjs","names":[],"sources":["../../../../../packages/utils/dom/event.ts"],"sourcesContent":["import { EVENT_CODE } from '@element-plus/constants'\nimport { isAndroid } from '../browser'\n\nexport const composeEventHandlers = <E>(\n theirsHandler?: (event: E) => boolean | void,\n oursHandler?: (event: E) => void,\n { checkForDefaultPrevented = true } = {}\n) => {\n const handleEvent = (event: E) => {\n const shouldPrevent = theirsHandler?.(event)\n\n if (checkForDefaultPrevented === false || !shouldPrevent) {\n return oursHandler?.(event)\n }\n }\n return handleEvent\n}\n\ntype WhenMouseHandler = (e: PointerEvent) => any\nexport const whenMouse = (handler: WhenMouseHandler): WhenMouseHandler => {\n return (e: PointerEvent) =>\n e.pointerType === 'mouse' ? handler(e) : undefined\n}\n\nexport const getEventCode = (event: KeyboardEvent): string => {\n if (event.code && event.code !== 'Unidentified') return event.code\n // On android, event.code is always '' (see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code#browser_compatibility)\n const key = getEventKey(event)\n\n if (key) {\n if (Object.values(EVENT_CODE).includes(key)) return key\n\n switch (key) {\n case ' ':\n return EVENT_CODE.space\n default:\n return ''\n }\n }\n\n return ''\n}\n\nexport const getEventKey = (event: KeyboardEvent): string => {\n let key = event.key && event.key !== 'Unidentified' ? event.key : ''\n\n // On Android, event.key and event.code may not be useful when entering characters or space\n // So here we directly get the last character of the input\n // **only takes effect in the keyup event**\n if (!key && event.type === 'keyup' && isAndroid()) {\n const target = event.target as HTMLInputElement\n key = target.value.charAt(target.selectionStart! - 1)\n }\n\n return key\n}\n"],"mappings":";;;;AAGA,MAAa,wBACX,eACA,aACA,EAAE,2BAA2B,SAAS,EAAE,KACrC;CACH,MAAM,eAAe,UAAa;EAChC,MAAM,gBAAgB,gBAAgB,MAAM;AAE5C,MAAI,6BAA6B,SAAS,CAAC,cACzC,QAAO,cAAc,MAAM;;AAG/B,QAAO;;AAIT,MAAa,aAAa,YAAgD;AACxE,SAAQ,MACN,EAAE,gBAAgB,UAAU,QAAQ,EAAE,GAAG;;AAG7C,MAAa,gBAAgB,UAAiC;AAC5D,KAAI,MAAM,QAAQ,MAAM,SAAS,eAAgB,QAAO,MAAM;CAE9D,MAAM,MAAM,YAAY,MAAM;AAE9B,KAAI,KAAK;AACP,MAAI,OAAO,OAAO,WAAW,CAAC,SAAS,IAAI,CAAE,QAAO;AAEpD,UAAQ,KAAR;GACE,KAAK,IACH,QAAO,WAAW;GACpB,QACE,QAAO;;;AAIb,QAAO;;AAGT,MAAa,eAAe,UAAiC;CAC3D,IAAI,MAAM,MAAM,OAAO,MAAM,QAAQ,iBAAiB,MAAM,MAAM;AAKlE,KAAI,CAAC,OAAO,MAAM,SAAS,WAAW,WAAW,EAAE;EACjD,MAAM,SAAS,MAAM;AACrB,QAAM,OAAO,MAAM,OAAO,OAAO,iBAAkB,EAAE;;AAGvD,QAAO"}