index.fc11b05c.js 4.6 KB

12
  1. import{c as W,_ as E}from"./index.6ed0cd31.js";import{L,aC as F,i as N,a2 as R,m as G,l as $,j,al as s,o as h,a as g,Z as i,T as f,S as M,O as U,b as S,Y,u as x,n as Z}from"./vue.e1d8f8c6.js";import{i as v}from"./getStyleSheets.7d821089.js";const q={class:"icon-selector w100 h100"},H={class:"icon-selector-warp"},J={class:"icon-selector-warp-title"},K=L({name:"iconSelector"}),Q=L({...K,props:{prepend:{type:String,default:()=>"ele-Pointer"},placeholder:{type:String,default:()=>"请输入内容搜索图标或者选择图标"},size:{type:String,default:()=>"default"},title:{type:String,default:()=>"请选择图标"},disabled:{type:Boolean,default:()=>!1},clearable:{type:Boolean,default:()=>!0},emptyDescription:{type:String,default:()=>"无相关图标"},modelValue:String},emits:["update:modelValue","get","clear"],setup(n,{emit:d}){const l=n,u=F(()=>W(()=>import("./list.5de139a4.js"),["./list.5de139a4.js","./vue.e1d8f8c6.js","./index.6ed0cd31.js","./index.bafb3a08.css","./list.0c8c1af3.css"],import.meta.url)),r=N(),e=R({fontIconPrefix:"",fontIconWidth:0,fontIconSearch:"",fontIconPlaceholder:"",fontIconTabActive:"ali",fontIconList:{ali:[],ele:[],awe:[]}}),C=()=>{if(!l.modelValue)return!1;e.fontIconSearch="",e.fontIconPlaceholder=l.modelValue},T=()=>{const o=w();setTimeout(()=>{o.filter(a=>a===e.fontIconSearch).length<=0&&(e.fontIconSearch="")},300)},p=G(()=>{const o=w();if(!e.fontIconSearch)return o;let t=e.fontIconSearch.trim().toLowerCase();return o.filter(a=>{if(a.toLowerCase().indexOf(t)!==-1)return a})}),w=()=>{let o=[];return e.fontIconTabActive==="ali"?o=e.fontIconList.ali:e.fontIconTabActive==="ele"?o=e.fontIconList.ele:e.fontIconTabActive==="awe"&&(o=e.fontIconList.awe),o},P=()=>{if(l.modelValue==="")return e.fontIconPlaceholder=l.placeholder;e.fontIconPlaceholder=l.modelValue,e.fontIconPrefix=l.modelValue},b=()=>{let o="ali";return l.modelValue.indexOf("iconfont")>-1?o="ali":l.modelValue.indexOf("ele-")>-1?o="ele":l.modelValue.indexOf("fa")>-1&&(o="awe"),e.fontIconTabActive=o,o},y=async o=>{if(o==="ali"){if(e.fontIconList.ali.length>0)return;await v.ali().then(t=>{e.fontIconList.ali=t.map(a=>`iconfont ${a}`)})}else if(o==="ele"){if(e.fontIconList.ele.length>0)return;await v.ele().then(t=>{e.fontIconList.ele=t})}else if(o==="awe"){if(e.fontIconList.awe.length>0)return;await v.awe().then(t=>{e.fontIconList.awe=t.map(a=>`fa ${a}`)})}e.fontIconPlaceholder=l.placeholder,P()},z=o=>{y(o.paneName),r.value.focus()},I=o=>{e.fontIconPlaceholder=o,e.fontIconPrefix=o,d("get",e.fontIconPrefix),d("update:modelValue",e.fontIconPrefix),r.value.focus()},k=()=>{e.fontIconPrefix="",d("clear",e.fontIconPrefix),d("update:modelValue",e.fontIconPrefix)},_=()=>{Z(()=>{e.fontIconWidth=r.value.$el.offsetWidth})},A=()=>{window.addEventListener("resize",()=>{_()})};return $(()=>{y(b()),A(),_()}),j(()=>l.modelValue,()=>{P(),b()}),(o,t)=>{const a=s("SvgIcon"),B=s("el-input"),m=s("el-tab-pane"),O=s("el-tabs"),D=s("el-popover");return h(),g("div",q,[i(B,{modelValue:e.fontIconSearch,"onUpdate:modelValue":t[0]||(t[0]=c=>e.fontIconSearch=c),placeholder:e.fontIconPlaceholder,clearable:n.clearable,disabled:n.disabled,size:n.size,ref_key:"inputWidthRef",ref:r,onClear:k,onFocus:C,onBlur:T},{prepend:f(()=>{var c,V;return[(e.fontIconPrefix===""?((c=n.prepend)==null?void 0:c.indexOf("ele-"))>-1:((V=e.fontIconPrefix)==null?void 0:V.indexOf("ele-"))>-1)?(h(),M(a,{key:0,name:e.fontIconPrefix===""?n.prepend:e.fontIconPrefix,class:"font14"},null,8,["name"])):(h(),g("i",{key:1,class:U([e.fontIconPrefix===""?n.prepend:e.fontIconPrefix,"font14"])},null,2))]}),_:1},8,["modelValue","placeholder","clearable","disabled","size"]),i(D,{placement:"bottom",width:e.fontIconWidth,transition:"el-zoom-in-top","popper-class":"icon-selector-popper",trigger:"click","virtual-ref":r.value,"virtual-triggering":""},{default:f(()=>[S("div",H,[S("div",J,Y(n.title),1),i(O,{modelValue:e.fontIconTabActive,"onUpdate:modelValue":t[1]||(t[1]=c=>e.fontIconTabActive=c),onTabClick:z},{default:f(()=>[i(m,{lazy:"",label:"ali",name:"ali"},{default:f(()=>[i(x(u),{list:p.value,empty:n.emptyDescription,prefix:e.fontIconPrefix,onGetIcon:I},null,8,["list","empty","prefix"])]),_:1}),i(m,{lazy:"",label:"ele",name:"ele"},{default:f(()=>[i(x(u),{list:p.value,empty:n.emptyDescription,prefix:e.fontIconPrefix,onGetIcon:I},null,8,["list","empty","prefix"])]),_:1}),i(m,{lazy:"",label:"awe",name:"awe"},{default:f(()=>[i(x(u),{list:p.value,empty:n.emptyDescription,prefix:e.fontIconPrefix,onGetIcon:I},null,8,["list","empty","prefix"])]),_:1})]),_:1},8,["modelValue"])])]),_:1},8,["width","virtual-ref"])])}}}),te=E(Q,[["__file","E:/code/wwwroot/local81.lzj/simple_storage/vue-next-admin/src/components/iconSelector/index.vue"]]);export{te as default};