UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 2.9 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,cAAe,CAAA;AAAA,EAC7B,gBAAA;AAAA,EACA,IAAA;AACF,CAA0B,EAAA;AACxB,EAAM,MAAA,WAAA,GAAc,IAAI,KAAK,CAAA,CAAA;AAE7B,EAAM,MAAA,sBAAA,GAAyB,CAAC,KAA4B,KAAA;AAC1D,IAAA,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAO,kBAAoB,EAAA,KAAA,CAAA,CAAA;AAC3B,IAAA,WAAA,CAAY,KAAQ,GAAA,IAAA,CAAA;AAAA,GACtB,CAAA;AAEA,EAAM,MAAA,uBAAA,GAA0B,CAAC,KAA4B,KAAA;AArB/D,IAAA,IAAA,EAAA,CAAA;AAsBI,IAAA,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAO,mBAAqB,EAAA,KAAA,CAAA,CAAA;AAC5B,IAAM,MAAA,IAAA,GAAA,CAAQ,EAAM,GAAA,KAAA,CAAA,MAAA,KAAN,IAAmC,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAA,CAAA;AACjD,IAAA,MAAM,aAAgB,GAAA,IAAA,CAAK,IAAK,CAAA,MAAA,GAAS,CAAM,CAAA,IAAA,EAAA,CAAA;AAC/C,IAAY,WAAA,CAAA,KAAA,GAAQ,CAAC,QAAA,CAAS,aAAa,CAAA,CAAA;AAAA,GAC7C,CAAA;AAEA,EAAM,MAAA,oBAAA,GAAuB,CAAC,KAA4B,KAAA;AACxD,IAAA,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAO,gBAAkB,EAAA,KAAA,CAAA,CAAA;AACzB,IAAA,IAAI,YAAY,KAAO,EAAA;AACrB,MAAA,WAAA,CAAY,KAAQ,GAAA,KAAA,CAAA;AACpB,MAAS,QAAA,CAAA,MAAM,gBAAiB,CAAA,KAAK,CAAC,CAAA,CAAA;AAAA,KACxC;AAAA,GACF,CAAA;AAEA,EAAM,MAAA,iBAAA,GAAoB,CAAC,KAA4B,KAAA;AACrD,IAAA,KAAA,CAAM,SAAS,gBACX,GAAA,oBAAA,CAAqB,KAAK,CAAA,GAC1B,wBAAwB,KAAK,CAAA,CAAA;AAAA,GACnC,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,WAAA;AAAA,IACA,iBAAA;AAAA,IACA,sBAAA;AAAA,IACA,uBAAA;AAAA,IACA,oBAAA;AAAA,GACF,CAAA;AACF;;;;"}