UNPKG

ll-package

Version:

2 lines (1 loc) 2.33 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const m=require("../../../@babel/runtime/helpers/esm/objectSpread2.js"),i=require("vue"),s=require("../_util/KeyCode.js"),T=require("../input/TextArea.js"),$=require("../../../@ant-design/icons-vue/es/icons/EnterOutlined.js"),q=require("../_util/classNames.js"),z=require("./style/index.js"),R=()=>({prefixCls:String,value:String,maxlength:Number,autoSize:{type:[Boolean,Object]},onSave:Function,onCancel:Function,onEnd:Function,onChange:Function,originContent:String,direction:String,component:String}),w=i.defineComponent({compatConfig:{MODE:3},name:"Editable",inheritAttrs:!1,props:R(),setup(t,v){let{emit:l,slots:d,attrs:f}=v;const{prefixCls:a}=i.toRefs(t),n=i.reactive({current:t.value||"",lastKeyCode:void 0,inComposition:!1,cancelFlag:!1});i.watch(()=>t.value,e=>{n.current=e});const c=i.ref();i.onMounted(()=>{var e;if(c.value){const o=(e=c.value)===null||e===void 0?void 0:e.resizableTextArea,r=o==null?void 0:o.textArea;r.focus();const{length:u}=r.value;r.setSelectionRange(u,u)}});function g(e){c.value=e}function S(e){let{target:{value:o}}=e;n.current=o.replace(/[\r\n]/g,""),l("change",n.current)}function x(){n.inComposition=!0}function y(){n.inComposition=!1}function h(e){const{keyCode:o}=e;o===s.default.ENTER&&e.preventDefault(),!n.inComposition&&(n.lastKeyCode=o)}function E(e){const{keyCode:o,ctrlKey:r,altKey:u,metaKey:N,shiftKey:p}=e;n.lastKeyCode===o&&!n.inComposition&&!r&&!u&&!N&&!p&&(o===s.default.ENTER?(C(),l("end")):o===s.default.ESC&&(n.current=t.originContent,l("cancel")))}function K(){C()}function C(){l("save",n.current.trim())}const[b,A]=z.default(a);return()=>{const e=q.default({[`${a.value}`]:!0,[`${a.value}-edit-content`]:!0,[`${a.value}-rtl`]:t.direction==="rtl",[t.component?`${a.value}-${t.component}`:""]:!0},f.class,A.value);return b(i.createVNode("div",m.default(m.default({},f),{},{class:e}),[i.createVNode(T.default,{ref:g,maxlength:t.maxlength,value:n.current,onChange:S,onKeydown:h,onKeyup:E,onCompositionstart:x,onCompositionend:y,onBlur:K,rows:1,autoSize:t.autoSize===void 0||t.autoSize},null),d.enterIcon?d.enterIcon({className:`${t.prefixCls}-edit-content-confirm`}):i.createVNode($.default,{class:`${t.prefixCls}-edit-content-confirm`},null)]))}}}),F=w;exports.default=F;