UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 3.17 kB
{"version":3,"file":"event.mjs","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"],"names":[],"mappings":";;;AAGO,MAAM,oBAAA,GAAuB,CAClC,aAAA,EACA,WAAA,EACA,EAAE,wBAAA,GAA2B,IAAA,EAAK,GAAI,EAAC,KACpC;AACH,EAAA,MAAM,WAAA,GAAc,CAAC,KAAA,KAAa;AAChC,IAAA,MAAM,gBAAgB,aAAA,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,CAAgB,KAAA,CAAA;AAEtC,IAAA,IAAI,wBAAA,KAA6B,KAAA,IAAS,CAAC,aAAA,EAAe;AACxD,MAAA,OAAO,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAc,KAAA,CAAA;AAAA,IACvB;AAAA,EACF,CAAA;AACA,EAAA,OAAO,WAAA;AACT;AAGO,MAAM,SAAA,GAAY,CAAC,OAAA,KAAgD;AACxE,EAAA,OAAO,CAAC,CAAA,KACN,CAAA,CAAE,gBAAgB,OAAA,GAAU,OAAA,CAAQ,CAAC,CAAA,GAAI,MAAA;AAC7C;AAEO,MAAM,YAAA,GAAe,CAAC,KAAA,KAAiC;AAC5D,EAAA,IAAI,MAAM,IAAA,IAAQ,KAAA,CAAM,IAAA,KAAS,cAAA,SAAuB,KAAA,CAAM,IAAA;AAE9D,EAAA,MAAM,GAAA,GAAM,YAAY,KAAK,CAAA;AAE7B,EAAA,IAAI,GAAA,EAAK;AACP,IAAA,IAAI,OAAO,MAAA,CAAO,UAAU,EAAE,QAAA,CAAS,GAAG,GAAG,OAAO,GAAA;AAEpD,IAAA,QAAQ,GAAA;AAAK,MACX,KAAK,GAAA;AACH,QAAA,OAAO,UAAA,CAAW,KAAA;AAAA,MACpB;AACE,QAAA,OAAO,EAAA;AAAA;AACX,EACF;AAEA,EAAA,OAAO,EAAA;AACT;AAEO,MAAM,WAAA,GAAc,CAAC,KAAA,KAAiC;AAC3D,EAAA,IAAI,MAAM,KAAA,CAAM,GAAA,IAAO,MAAM,GAAA,KAAQ,cAAA,GAAiB,MAAM,GAAA,GAAM,EAAA;AAKlE,EAAA,IAAI,CAAC,GAAA,IAAO,KAAA,CAAM,IAAA,KAAS,OAAA,IAAW,WAAU,EAAG;AACjD,IAAA,MAAM,SAAS,KAAA,CAAM,MAAA;AACrB,IAAA,GAAA,GAAM,MAAA,CAAO,KAAA,CAAM,MAAA,CAAO,MAAA,CAAO,iBAAkB,CAAC,CAAA;AAAA,EACtD;AAEA,EAAA,OAAO,GAAA;AACT;;;;"}