UNPKG

vuux

Version:

Vue3 Nuxt3 Nuxt4 组件库

2 lines (1 loc) 991 B
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("vue"),f=require("../../Toast/src/toast.cjs"),m=(o,n,l)=>{const r=u.ref(o.modelValue),t=u.ref(!1),a=()=>{u.nextTick(()=>{if(n.value){n.value.focus();const e=document.createRange(),i=window.getSelection();e.selectNodeContents(n.value),e.collapse(!1),i?.removeAllRanges(),i?.addRange(e)}})},v=()=>{o.disabled||t.value||(t.value=!0,a())},c=()=>{if(!t.value||!n.value)return;const e=n.value.innerText.trim();if(!e){f.open("内容不能为空"),a();return}r.value=e,l("update:modelValue",e),l("finish",e),t.value=!1},s=e=>{!t.value||!n.value||n.value.contains(e.target)||c()};u.watch(()=>o.modelValue,e=>{t.value||(r.value=e)});const d=e=>{n.value&&e.key==="Enter"&&(e.preventDefault(),c())};return u.onMounted(()=>{document.addEventListener("click",s)}),u.onBeforeUnmount(()=>{document.removeEventListener("click",s)}),{innerValue:r,editing:t,enableEdit:v,handleKeydown:d}};exports.useEditorText=m;