ant-design-x-vue-next
Version:
Ant Design X for Vue — community continuation aligned with @ant-design/x
2 lines (1 loc) • 8.49 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("vue"),ae=require("ant-design-vue"),y=require("../chunks/module-chunk.js"),Je=require("../_util/pick-attrs.js"),Qe=require("../_util/hooks/use-x-component-config.js");require("../x-provider/index.js");const Ue=require("./context.js"),We=require("./components/ActionButton/context.js"),Ye=require("./components/ClearButton.js"),ue=require("./components/LoadingButton.js"),re=require("./components/SendButton.js"),Ze=require("./components/SlotTextArea.js"),ie=require("./components/SpeechButton/index.js"),et=require("./style/index.js"),tt=require("./useSpeech.js"),nt=require("../_util/getValue.js"),ot=require("../x-provider/hooks/use-x-provider-context.js"),lt=n.defineComponent({name:"AXSender",__name:"Sender",props:{onKeyPress:{type:Function},onFocus:null,onBlur:null,prefixCls:null,defaultValue:null,value:null,loading:{type:Boolean,default:void 0},placeholder:null,readOnly:{type:Boolean},submitType:{type:[String,Boolean],default:"enter"},disabled:{type:Boolean,default:void 0},sendDisabled:{type:Boolean,default:void 0},slotConfig:null,skill:null,onSubmit:{type:Function},onChange:{type:Function},onCancel:null,onKeyDown:{type:Function},onPaste:{type:Function},onPasteFile:{type:Function},components:null,styles:{default:()=>({})},rootClassName:null,classNames:{default:()=>({})},style:null,className:null,actions:{type:[Function,Boolean],default:void 0},suffix:{type:[Function,Boolean],default:void 0},allowSpeech:null,prefix:{type:Function},footer:{type:Function},header:{type:Function},autoSize:{default:()=>({maxRows:8})}},emits:["update:value"],setup(ce,{expose:de,emit:fe}){function pe(e,t,o){return nt.default(e,t)||o}const P={SendButton:re.default,ClearButton:Ye.default,LoadingButton:ue.default,SpeechButton:ie.default},d=ce,ve=fe,{prefixCls:me,styles:f,classNames:p,className:ye,rootClassName:ge,style:Ce,defaultValue:he,value:B,placeholder:K,readOnly:T,submitType:E,onSubmit:S,sendDisabled:v,loading:D,components:xe,onCancel:_e,onChange:z,actions:x,suffix:b,onKeyPress:M,onKeyDown:j,disabled:N,allowSpeech:g,prefix:q,footer:V,header:$,onPaste:k,onPasteFile:L,autoSize:Se,slotConfig:st,skill:at,...be}=d,i=n.useSlots(),{direction:Ne,getPrefixCls:Ve}=ot.default(),u=n.computed(()=>Ve("sender",me)),I=n.ref(null),C=n.ref(null),a=n.ref(null),r=n.computed(()=>{var e;return!!((e=d.slotConfig)!=null&&e.length||d.skill)}),s=Qe.default("sender"),X=n.computed(()=>`${u.value}-input`),[Pe,Be,De]=et.default(u.value),qe=n.computed(()=>{var e;return y.classnames(u.value,s.value.className,(e=s.value.classNames)==null?void 0:e.root,p.root,ye,ge,Be.value,De,{[`${u.value}-rtl`]:Ne.value==="rtl",[`${u.value}-disabled`]:N})}),$e=n.computed(()=>{var e;return{...s.value.style,...Ce,...((e=s.value.styles)==null?void 0:e.root)||{},...f.root||{}}}),ke=()=>{var e,t,o;if(r.value){const l=(e=a.value)==null?void 0:e.nativeElement;return l&&typeof l=="object"&&"value"in l?l.value??null:l??null}return((o=(t=C.value)==null?void 0:t.resizableTextArea)==null?void 0:o.textArea)??null},Ie=n.computed(()=>`${u.value}-actions-btn`),H=n.computed(()=>`${u.value}-actions-list`),m=n.ref(B??he??""),O=e=>{m.value=e};n.watch(()=>B,()=>{O(B)});const h=(e,t,o,l)=>{O(e),ve("update:value",e),z&&z(e,t,o,l)},Fe=(e,t,o,l)=>{h(e,t,o,l)},{speechPermission:we,triggerSpeech:G,recording:Re}=tt.default(e=>{h(`${m.value} ${e}`)},()=>g),Ae=pe(xe,["input"],ae.Input.TextArea),Ke=n.computed(()=>Je.default(be,{attr:!0,aria:!0,data:!0})),Te=n.computed(()=>({...Ke.value,ref:C})),F=()=>{var o;if(r.value&&a.value){const l=a.value.getValue();(v!==void 0?!v:!!(l.value||(o=d.slotConfig)!=null&&o.length))&&!!S&&S(l.value,l.slotConfig,l.skill);return}(v!==void 0?!v:!!(m.value&&!D))&&!!S&&S(m.value)},J=()=>{if(r.value&&a.value){a.value.clear();return}h("")},Ee=()=>{var t,o,l;if(v!==void 0)return v;const e=(o=(t=a.value)==null?void 0:t.getValue)==null?void 0:o.call(t);return!(e!=null&&e.value||(l=d.slotConfig)!=null&&l.length)},ze=()=>{var t,o,l;const e=(o=(t=a.value)==null?void 0:t.getValue)==null?void 0:o.call(t);return!(e!=null&&e.value)&&!((l=d.slotConfig)!=null&&l.length)&&!d.skill},w=n.ref(!1),Me=()=>{w.value=!0},je=()=>{w.value=!1},Q=e=>{const t=e.key==="Enter"&&!w.value;switch(E){case"enter":t&&!e.shiftKey&&(e.preventDefault(),F());break;case"shiftEnter":t&&e.shiftKey&&(e.preventDefault(),F());break}M&&M(e)},Le=e=>{var o;const t=(o=e.clipboardData)==null?void 0:o.files;t!=null&&t.length&&L&&(L(t[0],t),e.preventDefault()),k==null||k(e)},Xe=e=>{var t,o,l;if(e.target!==((t=I.value)==null?void 0:t.querySelector(`.${X.value}`))&&e.preventDefault(),r.value){(o=a.value)==null||o.focus({cursor:"end"});return}(l=C.value)==null||l.focus()},U=n.computed(()=>{let e=n.createVNode(ae.Flex,{class:`${H.value}-presets`},{default:()=>[g&&n.createVNode(ie.default,typeof g=="object"?{audioIcon:g.audioIcon,audioDisabledIcon:g.audioDisabledIcon,audioRecordingIcon:g.audioRecordingIcon}:{},null),D?n.createVNode(ue.default,null,null):n.createVNode(re.default,null,null)]});const t={components:P};return i.suffix?e=i.suffix({ori:e,info:t}):b!==void 0?typeof b=="function"?e=b(e,t):e=b:i.actions?e=i.actions({ori:e,info:t}):typeof x=="function"?e=x(e,t):(x||x===!1)&&(e=x),e}),He=n.computed(()=>({prefixCls:Ie.value,onSend:F,onSendDisabled:r.value?Ee():v!==void 0?v:!m.value,onClear:J,onClearDisabled:r.value?ze():!m.value,onCancel:_e,onCancelDisabled:!D,onSpeech:()=>G(!1),onSpeechDisabled:!we.value,speechRecording:Re.value,disabled:N})),W=n.computed(()=>{let e=null;const t={components:P};return i.footer?e=i.footer({info:t}):typeof V=="function"?e=V({components:P}):V&&(e=V),e}),Y=n.computed(()=>i.header?i.header():typeof $=="function"?$():$),Z=n.computed(()=>i.prefix?i.prefix():typeof q=="function"?q():q);return de({nativeElement:I,get inputElement(){return ke()},focus:e=>{var t,o;if(r.value){(t=a.value)==null||t.focus(e);return}(o=C.value)==null||o.focus(e)},blur:()=>{var e,t;if(r.value){(e=a.value)==null||e.blur();return}(t=C.value)==null||t.blur()},insert:(e,t,o,l)=>{var ee,te,ne,oe;if(r.value){if(typeof e=="string"){(ee=a.value)==null||ee.insert(e);return}(te=a.value)==null||te.insert(e,t,o,l);return}const _=typeof e=="string"?e:"";if(!_)return;const c=(oe=(ne=C.value)==null?void 0:ne.resizableTextArea)==null?void 0:oe.textArea,R=m.value??"";if(c&&typeof c.selectionStart=="number"){const A=c.selectionStart,Oe=c.selectionEnd??A,Ge=`${R.slice(0,A)}${_}${R.slice(Oe)}`;h(Ge),n.nextTick(()=>{var se;const le=A+_.length;c.focus(),c.setSelectionRange(le,le),l||(se=c.scrollIntoView)==null||se.call(c,{block:"nearest"})});return}h(`${R}${_}`)},clear:()=>{var e;if(r.value){(e=a.value)==null||e.clear();return}J()},getValue:()=>{var e;return(e=a.value)==null?void 0:e.getValue()}}),()=>Pe(n.createVNode("div",{ref:I,class:qe.value,style:$e.value},[Y.value&&n.createVNode(Ue.SenderHeaderContextProvider,{value:{prefixCls:u.value}},{default:()=>[Y.value]}),n.createVNode(We.ActionButtonContextProvider,{value:He.value},{default:()=>{var e,t;return[n.createVNode("div",{class:y.classnames(`${u.value}-content`,(e=s.value.classNames)==null?void 0:e.content,p.content),style:{...((t=s.value.styles)==null?void 0:t.content)||{},...f.content||{}},onMousedown:Xe},[Z.value&&n.createVNode("div",{class:y.classnames(`${u.value}-prefix`,s.value.classNames.prefix,p.prefix),style:{...s.value.styles.prefix,...f.prefix}},[Z.value]),r.value?n.createVNode(Ze.default,{ref:a,prefixCls:u.value,slotConfig:d.slotConfig,skill:d.skill,disabled:N,readOnly:T,placeholder:K,submitType:E,style:{...s.value.styles.input,...f.input},class:y.classnames(s.value.classNames.input,p.input),onChange:Fe,onKeyPress:Q,onKeyDown:j},null):n.createVNode(Ae,n.mergeProps(Te.value,{disabled:N,style:{...s.value.styles.input,...f.input},class:y.classnames(X.value,s.value.classNames.input,p.input),autoSize:Se,value:m.value,onChange:o=>{h(o.target.value,o),G(!0)},onPressEnter:Q,onCompositionstart:Me,onCompositionend:je,onKeydown:j,placeholder:K,onPaste:Le,bordered:!1,readOnly:T}),null),U.value&&n.createVNode("div",{class:y.classnames(H.value,s.value.classNames.suffix,s.value.classNames.actions,p.suffix,p.actions),style:{...s.value.styles.actions,...s.value.styles.suffix,...f.actions,...f.suffix}},[U.value])]),W.value&&n.createVNode("div",{class:y.classnames(`${u.value}-footer`,s.value.classNames.footer,p.footer),style:{...s.value.styles.footer,...f.footer}},[W.value])]}})]))}});exports.default=lt;