vue-devui
Version:
DevUI components based on Vite and Vue3
2 lines (1 loc) • 3.38 kB
JavaScript
(function(i,n){typeof exports=="object"&&typeof module!="undefined"?n(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],n):(i=typeof globalThis!="undefined"?globalThis:i||self,n(i.index={},i.Vue))})(this,function(i,n){"use strict";const I={name:{type:String,default:"",required:!0},size:{type:[Number,String],default:"inherit"},color:{type:String,default:"inherit"},component:{type:Object,default:null},classPrefix:{type:String,default:"icon"},operable:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},rotate:{type:[Number,String]}},b={name:{type:String,default:"",required:!0},color:{type:String,default:"inherit"},size:{type:[Number,String],default:"inherit"}};function p(l,o,s){let t=l;return o&&(t+=`__${o}`),s&&(t+=`--${s}`),t}function d(l,o=!1){const s=o?`.devui-${l}`:`devui-${l}`;return{b:()=>p(s),e:e=>e?p(s,e):"",m:e=>e?p(s,"",e):"",em:(e,a)=>e&&a?p(s,e,a):""}}var V="",h=n.defineComponent({name:"DSvgIcon",props:b,setup(l){const{name:o,color:s,size:t}=n.toRefs(l),c=d("svg-icon"),r=n.computed(()=>`#icon-${o.value}`),u=n.computed(()=>typeof t.value=="number"?`${t.value}px`:t.value),e={width:u.value,height:u.value};return()=>n.createVNode("svg",{class:c.b(),style:e},[n.createVNode("use",{"xlink:href":r.value,fill:s.value},null)])}});function D(l){return/^((http|https):)?\/\//.test(l)}function S(l,o){const{component:s,name:t,size:c,color:r,classPrefix:u,rotate:e}=n.toRefs(l),a=d("icon"),m=n.computed(()=>typeof c.value=="number"?`${c.value}px`:c.value),f=s.value?n.resolveDynamicComponent(s.value):n.resolveDynamicComponent(h),v=()=>n.createVNode("img",n.mergeProps({src:t.value,alt:t.value.split("/")[t.value.split("/").length-1],class:[(e==null?void 0:e.value)==="infinite"&&a.m("spin")],style:{width:m.value||"",transform:`rotate(${e==null?void 0:e.value}deg)`,verticalAlign:"middle"}},o.attrs),null),P=()=>n.createVNode(f,n.mergeProps({name:t.value,color:r.value,size:m.value,class:[(e==null?void 0:e.value)==="infinite"&&a.m("spin")],style:{transform:`rotate(${e==null?void 0:e.value}deg)`}},o.attrs),null),$=()=>{const C=/^icon-/.test(t.value)?t.value:`${u.value}-${t.value}`;return n.createVNode("i",n.mergeProps({class:[u.value,C,(e==null?void 0:e.value)==="infinite"&&a.m("spin")],style:{fontSize:m.value,color:r.value,transform:`rotate(${e==null?void 0:e.value}deg)`}},o.attrs),null)};return{iconDom:()=>s.value?P():D(t.value)?v():$()}}var g=n.defineComponent({name:"DIcon",props:I,emits:["click"],setup(l,o){const{disabled:s,operable:t}=n.toRefs(l),{iconDom:c}=S(l,o),r=d("icon"),u=n.computed(()=>({[r.e("container")]:!0,[r.m("disabled")]:s.value,[r.m("operable")]:t.value,[r.m("no-slots")]:!Object.keys(o.slots).length})),e=a=>{s.value||o.emit("click",a)};return()=>{var a,m,f,v;return n.createVNode("div",{class:u.value,onClick:e},[(m=(a=o.slots).prefix)==null?void 0:m.call(a),c(),(v=(f=o.slots).suffix)==null?void 0:v.call(f)])}}}),_="",y=n.defineComponent({name:"DIconGroup",setup(l,o){const s=d("icon-group");return()=>{var t,c;return n.createVNode("div",{class:s.b()},[(c=(t=o.slots).default)==null?void 0:c.call(t)])}}}),N={title:"Icon \u56FE\u6807",category:"\u901A\u7528",status:"100%",install(l){l.component(g.name,g),l.component(y.name,y)}};i.Icon=g,i.IconGroup=y,i.default=N,i.iconProps=I,i.svgIconProps=b,Object.defineProperty(i,"__esModule",{value:!0}),i[Symbol.toStringTag]="Module"});