12345678910111213141516171819202122232425262728293031323334353637383940 |
- import { ref, nextTick } from 'vue';
- import { isKorean } from '../../utils/i18n.mjs';
- function useComposition({
- afterComposition,
- emit
- }) {
- const isComposing = ref(false);
- const handleCompositionStart = (event) => {
- emit == null ? void 0 : emit("compositionstart", event);
- isComposing.value = true;
- };
- const handleCompositionUpdate = (event) => {
- var _a;
- emit == null ? void 0 : emit("compositionupdate", event);
- const text = (_a = event.target) == null ? void 0 : _a.value;
- const lastCharacter = text[text.length - 1] || "";
- isComposing.value = !isKorean(lastCharacter);
- };
- const handleCompositionEnd = (event) => {
- emit == null ? void 0 : emit("compositionend", event);
- if (isComposing.value) {
- isComposing.value = false;
- nextTick(() => afterComposition(event));
- }
- };
- const handleComposition = (event) => {
- event.type === "compositionend" ? handleCompositionEnd(event) : handleCompositionUpdate(event);
- };
- return {
- isComposing,
- handleComposition,
- handleCompositionStart,
- handleCompositionUpdate,
- handleCompositionEnd
- };
- }
- export { useComposition };
- //# sourceMappingURL=index.mjs.map
|