UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 2.81 kB
{"version":3,"file":"index.mjs","sources":["../../../../../packages/hooks/use-composition/index.ts"],"sourcesContent":["import { nextTick, ref } from 'vue'\nimport { isKorean } from '@element-plus/utils'\n\ninterface UseCompositionOptions {\n afterComposition: (event: CompositionEvent) => void\n emit?: ((event: 'compositionstart', evt: CompositionEvent) => void) &\n ((event: 'compositionupdate', evt: CompositionEvent) => void) &\n ((event: 'compositionend', evt: CompositionEvent) => void)\n}\n\nexport function useComposition({\n afterComposition,\n emit,\n}: UseCompositionOptions) {\n const isComposing = ref(false)\n\n const handleCompositionStart = (event: CompositionEvent) => {\n emit?.('compositionstart', event)\n isComposing.value = true\n }\n\n const handleCompositionUpdate = (event: CompositionEvent) => {\n emit?.('compositionupdate', event)\n const text = (event.target as HTMLInputElement)?.value\n const lastCharacter = text[text.length - 1] || ''\n isComposing.value = !isKorean(lastCharacter)\n }\n\n const handleCompositionEnd = (event: CompositionEvent) => {\n emit?.('compositionend', event)\n if (isComposing.value) {\n isComposing.value = false\n nextTick(() => afterComposition(event))\n }\n }\n\n const handleComposition = (event: CompositionEvent) => {\n event.type === 'compositionend'\n ? handleCompositionEnd(event)\n : handleCompositionUpdate(event)\n }\n\n return {\n isComposing,\n handleComposition,\n handleCompositionStart,\n handleCompositionUpdate,\n handleCompositionEnd,\n }\n}\n"],"names":[],"mappings":";;;AAUO,SAAS,cAAA,CAAe;AAAA,EAC7B,gBAAA;AAAA,EACA;AACF,CAAA,EAA0B;AACxB,EAAA,MAAM,WAAA,GAAc,IAAI,KAAK,CAAA;AAE7B,EAAA,MAAM,sBAAA,GAAyB,CAAC,KAAA,KAA4B;AAC1D,IAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAO,kBAAA,EAAoB,KAAA,CAAA;AAC3B,IAAA,WAAA,CAAY,KAAA,GAAQ,IAAA;AAAA,EACtB,CAAA;AAEA,EAAA,MAAM,uBAAA,GAA0B,CAAC,KAAA,KAA4B;AArB/D,IAAA,IAAA,EAAA;AAsBI,IAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAO,mBAAA,EAAqB,KAAA,CAAA;AAC5B,IAAA,MAAM,IAAA,GAAA,CAAQ,EAAA,GAAA,KAAA,CAAM,MAAA,KAAN,IAAA,GAAA,MAAA,GAAA,EAAA,CAAmC,KAAA;AACjD,IAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,IAAA,CAAK,MAAA,GAAS,CAAC,CAAA,IAAK,EAAA;AAC/C,IAAA,WAAA,CAAY,KAAA,GAAQ,CAAC,QAAA,CAAS,aAAa,CAAA;AAAA,EAC7C,CAAA;AAEA,EAAA,MAAM,oBAAA,GAAuB,CAAC,KAAA,KAA4B;AACxD,IAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAO,gBAAA,EAAkB,KAAA,CAAA;AACzB,IAAA,IAAI,YAAY,KAAA,EAAO;AACrB,MAAA,WAAA,CAAY,KAAA,GAAQ,KAAA;AACpB,MAAA,QAAA,CAAS,MAAM,gBAAA,CAAiB,KAAK,CAAC,CAAA;AAAA,IACxC;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,iBAAA,GAAoB,CAAC,KAAA,KAA4B;AACrD,IAAA,KAAA,CAAM,SAAS,gBAAA,GACX,oBAAA,CAAqB,KAAK,CAAA,GAC1B,wBAAwB,KAAK,CAAA;AAAA,EACnC,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,WAAA;AAAA,IACA,iBAAA;AAAA,IACA,sBAAA;AAAA,IACA,uBAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}