UNPKG

tdesign-vue-next

Version:
1 lines 4.29 kB
{"version":3,"file":"useItemEvents.mjs","sources":["../../../../components/tree/hooks/useItemEvents.ts"],"sourcesContent":["import { TypeCheckboxProps, usePrefixClass } from '../utils/adapt';\nimport { TypeEventState, TypeTreeItemState } from '../types';\n// 这里封装 tree-item 的一般事件\n// 拖动事件,虚拟滚动事件不要安排到这里\nexport default function useItemEvents(state: TypeTreeItemState) {\n const { context } = state;\n const classPrefix = usePrefixClass().value;\n\n const handleChange: TypeCheckboxProps['onChange'] = (_, ctx) => {\n const { node } = state;\n const event = new Event('change');\n const evtContext: TypeEventState = {\n event,\n node,\n };\n context.emit('change', evtContext, ctx);\n };\n\n let clicked = false;\n\n const handleClick = (evt: MouseEvent) => {\n const { node, treeScope } = state;\n const { treeProps = {} } = treeScope;\n const { expandOnClickNode } = treeProps;\n const srcTarget = evt.target as HTMLElement;\n const isBranchTrigger =\n node.children &&\n expandOnClickNode &&\n (srcTarget.className === `${classPrefix}-checkbox__input` || srcTarget.tagName.toLowerCase() === 'input');\n\n // checkbox 上也有 emit click 事件\n // 用这个逻辑避免重复的 click 事件被触发\n if (clicked || isBranchTrigger) return;\n clicked = true;\n // 为保持事件响应敏捷,立即还原 clicked 状态\n setTimeout(() => {\n clicked = false;\n });\n\n // 处理expandOnClickNode时与checkbox的选中的逻辑冲突\n if (expandOnClickNode && node.children && srcTarget.className?.indexOf?.(`${classPrefix}-tree__label`) !== -1)\n evt.preventDefault();\n\n const evtContext: TypeEventState = {\n mouseEvent: evt,\n event: evt,\n node,\n path: node.getPath(),\n };\n context.emit('click', evtContext);\n };\n\n return {\n handleChange,\n handleClick,\n };\n}\n"],"names":["useItemEvents","state","context","classPrefix","usePrefixClass","value","handleChange","_","ctx","node","event","Event","evtContext","emit","clicked","handleClick","evt","_srcTarget$className","_srcTarget$className$","treeScope","_treeScope$treeProps","treeProps","expandOnClickNode","srcTarget","target","isBranchTrigger","children","className","concat","tagName","toLowerCase","setTimeout","indexOf","call","preventDefault","mouseEvent","path","getPath"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,SAAwBA,cAAcC,KAA0B,EAAA;AACxD,EAAA,IAAEC,UAAYD,KAAA,CAAZC;AACF,EAAA,IAAAC,WAAA,GAAcC,gBAAiB,CAAAC,KAAA,CAAA;EAE/B,IAAAC,YAAA,GAA8C,SAA9CA,YAAAA,CAA+CC,CAAA,EAAGC,GAAQ,EAAA;AACxD,IAAA,IAAEC,OAASR,KAAA,CAATQ;AACF,IAAA,IAAAC,KAAA,GAAQ,IAAIC,KAAA,CAAM,QAAQ,CAAA,CAAA;AAChC,IAAA,IAAMC,UAA6B,GAAA;AACjCF,MAAAA,KAAA,EAAAA,KAAA;AACAD,MAAAA,IAAA,EAAAA,IAAAA;KACF,CAAA;IACQP,OAAA,CAAAW,IAAA,CAAK,QAAU,EAAAD,UAAA,EAAYJ,GAAG,CAAA,CAAA;GACxC,CAAA;EAEA,IAAIM,OAAU,GAAA,KAAA,CAAA;AAER,EAAA,IAAAC,WAAA,GAAc,SAAdA,WAAAA,CAAeC,GAAoB,EAAA;IAAA,IAAAC,oBAAA,EAAAC,qBAAA,CAAA;AACjC,IAAA,IAAET,IAAM,GAAcR,KAAA,CAApBQ,IAAM;MAAAU,SAAA,GAAclB,KAAA,CAAdkB,SAAA,CAAA;AACd,IAAA,IAAAC,oBAAA,GAA2BD,SAAA,CAAnBE,SAAA;AAAAA,MAAAA,SAAA,GAAAD,oBAAA,KAAA,KAAA,CAAA,GAAY,EAAC,GAAAA,oBAAA,CAAA;AACf,IAAA,IAAEE,oBAAsBD,SAAA,CAAtBC;AACR,IAAA,IAAMC,YAAYP,GAAI,CAAAQ,MAAA,CAAA;IAChB,IAAAC,eAAA,GACJhB,IAAK,CAAAiB,QAAA,IACLJ,iBACC,KAAAC,SAAA,CAAUI,SAAc,KAAAC,EAAAA,CAAAA,MAAA,CAAGzB,WAAiC,EAAA,kBAAA,CAAA,IAAAoB,SAAA,CAAUM,OAAQ,CAAAC,WAAA,EAAkB,KAAA,OAAA,CAAA,CAAA;IAInG,IAAIhB,OAAW,IAAAW,eAAA,EAAiB,OAAA;AACtBX,IAAAA,OAAA,GAAA,IAAA,CAAA;AAEViB,IAAAA,UAAA,CAAW,YAAM;AACLjB,MAAAA,OAAA,GAAA,KAAA,CAAA;AACZ,KAAC,CAAA,CAAA;AAGG,IAAA,IAAAQ,iBAAA,IAAqBb,KAAKiB,QAAY,IAAA,EAAAT,oBAAA,GAAAM,SAAA,CAAUI,mFAAVV,oBAAA,CAAqBe,OAAU,MAAA,IAAA,IAAAd,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA/BA,qBAAA,CAAAe,IAAA,CAAAhB,oBAAA,EAAA,EAAA,CAAAW,MAAA,CAAkCzB,4BAAyB,CAAM,MAAA,CAAA,CAAA,EACzGa,GAAA,CAAIkB,cAAe,EAAA,CAAA;AAErB,IAAA,IAAMtB,UAA6B,GAAA;AACjCuB,MAAAA,UAAY,EAAAnB,GAAA;AACZN,MAAAA,KAAO,EAAAM,GAAA;AACPP,MAAAA,IAAA,EAAAA,IAAA;AACA2B,MAAAA,IAAA,EAAM3B,KAAK4B,OAAQ,EAAA;KACrB,CAAA;AACQnC,IAAAA,OAAA,CAAAW,IAAA,CAAK,SAASD,UAAU,CAAA,CAAA;GAClC,CAAA;EAEO,OAAA;AACLN,IAAAA,YAAA,EAAAA,YAAA;AACAS,IAAAA,WAAA,EAAAA,WAAAA;GACF,CAAA;AACF;;;;"}