@artmate/chat
Version:
**开箱即用的AI组件库(基于 Vue3 + ElementPlus)**
2 lines (1 loc) • 3.08 kB
JavaScript
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),h=require("../../../node_modules/@vueuse/core/index.js"),N=require("element-plus"),S=require("../collapseTransition/index.vue.js");;/* empty css */const V=require("../hooks/useNamespace.js"),B=e.defineComponent({__name:"index",props:{modelValue:{},classNames:{default:void 0},placeholder:{default:""},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},readOnly:{type:Boolean},rootClassName:{default:""},submitType:{type:[String,Boolean],default:"enter"},autoSize:{}},emits:["update:modelValue","submit","change","keyPress"],setup(f,{expose:y,emit:b}){const a=f,r=b,i=e.useSlots(),s=V.useNamespace("sender"),u=e.ref(),p=e.ref(),{width:k}=h.useElementSize(p);e.watch(k,t=>{var l;const n=(l=u.value)==null?void 0:l.$el;if(!n)return;const o=n.querySelector("textarea");o&&(o.style.textIndent=`${t+8}px`)},{flush:"post"});function C(t){r("change",t)}function v(t){C(t)}function c(){a.modelValue&&!a.loading&&r("submit")}function g(t){const n=t.key==="Enter";switch(a.submitType){case"enter":{n&&!t.shiftKey&&(t.preventDefault(),c());break}case"shiftEnter":{n&&t.shiftKey&&(t.preventDefault(),c());break}}r("keyPress",t)}return y({inputRef:u}),(t,n)=>{var o,l;return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(s).b(),t.disabled&&e.unref(s).b("disabled"),t.rootClassName])},[e.createVNode(S.default,null,{default:e.withCtx(()=>[e.renderSlot(t.$slots,"header")]),_:3}),e.createElementVNode("div",{class:e.normalizeClass(e.unref(s).b("content"))},[i.prefix?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass([e.unref(s).b("prefix"),(o=t.classNames)==null?void 0:o.prefix])},[e.renderSlot(t.$slots,"prefix")],2)):e.createCommentVNode("",!0),e.renderSlot(t.$slots,"components",{},()=>{var m;return[e.createElementVNode("div",{class:e.normalizeClass([e.unref(s).b("input"),(m=t.classNames)==null?void 0:m.input])},[i.tip?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"inputTip",ref:p,class:e.normalizeClass(e.unref(s).b("input-tip"))},[e.renderSlot(t.$slots,"tip")],2)):e.createCommentVNode("",!0),e.createVNode(e.unref(N.ElInput),e.mergeProps({ref_key:"inputRef",ref:u,autosize:t.autoSize||{maxRows:8},disabled:t.disabled,"model-value":t.modelValue,readonly:t.readOnly,placeholder:a.placeholder,resize:"none",type:"textarea"},t.$attrs,{onChange:v,onKeydown:n[0]||(n[0]=d=>g(d)),"onUpdate:modelValue":n[1]||(n[1]=d=>r("update:modelValue",d))}),null,16,["autosize","disabled","model-value","readonly","placeholder"])],2)]}),i.actions?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass([e.unref(s).b("actions-list"),(l=t.classNames)==null?void 0:l.actions])},[e.renderSlot(t.$slots,"actions")],2)):e.createCommentVNode("",!0)],2),i.footer?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(s).b("footer"))},[e.renderSlot(t.$slots,"footer")],2)):e.createCommentVNode("",!0)],2)}}});exports.default=B;