{"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"}