UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 1.81 kB
{"version":3,"file":"index.mjs","sources":["../../../../../packages/hooks/use-same-target/index.ts"],"sourcesContent":["import { NOOP } from '@element-plus/utils'\n\nexport const useSameTarget = (handleClick?: (e: MouseEvent) => void) => {\n if (!handleClick) {\n return { onClick: NOOP, onMousedown: NOOP, onMouseup: NOOP }\n }\n\n let mousedownTarget = false\n let mouseupTarget = false\n // refer to this https://javascript.info/mouse-events-basics\n // events fired in the order: mousedown -> mouseup -> click\n // we need to set the mousedown handle to false after click fired.\n const onClick = (e: MouseEvent) => {\n // if and only if\n if (mousedownTarget && mouseupTarget) {\n handleClick(e)\n }\n mousedownTarget = mouseupTarget = false\n }\n\n const onMousedown = (e: MouseEvent) => {\n // marking current mousedown target.\n mousedownTarget = e.target === e.currentTarget\n }\n const onMouseup = (e: MouseEvent) => {\n // marking current mouseup target.\n mouseupTarget = e.target === e.currentTarget\n }\n\n return { onClick, onMousedown, onMouseup }\n}\n"],"names":[],"mappings":";;AAEO,MAAM,aAAA,GAAgB,CAAC,WAAA,KAA0C;AACtE,EAAA,IAAI,CAAC,WAAA,EAAa;AAChB,IAAA,OAAO,EAAE,OAAA,EAAS,IAAA,EAAM,WAAA,EAAa,IAAA,EAAM,WAAW,IAAA,EAAK;AAAA,EAC7D;AAEA,EAAA,IAAI,eAAA,GAAkB,KAAA;AACtB,EAAA,IAAI,aAAA,GAAgB,KAAA;AAIpB,EAAA,MAAM,OAAA,GAAU,CAAC,CAAA,KAAkB;AAEjC,IAAA,IAAI,mBAAmB,aAAA,EAAe;AACpC,MAAA,WAAA,CAAY,CAAC,CAAA;AAAA,IACf;AACA,IAAA,eAAA,GAAkB,aAAA,GAAgB,KAAA;AAAA,EACpC,CAAA;AAEA,EAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAAkB;AAErC,IAAA,eAAA,GAAkB,CAAA,CAAE,WAAW,CAAA,CAAE,aAAA;AAAA,EACnC,CAAA;AACA,EAAA,MAAM,SAAA,GAAY,CAAC,CAAA,KAAkB;AAEnC,IAAA,aAAA,GAAgB,CAAA,CAAE,WAAW,CAAA,CAAE,aAAA;AAAA,EACjC,CAAA;AAEA,EAAA,OAAO,EAAE,OAAA,EAAS,WAAA,EAAa,SAAA,EAAU;AAC3C;;;;"}