vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
3 lines (2 loc) • 5.76 kB
JavaScript
"use strict";const l=require("vue");require("../badge/index.cjs");require("../collapse-transition/index.cjs");require("../icon/index.cjs");const F=require("../form/symbol.cjs");require("../renderer/index.cjs");const d=require("@vexip-ui/config"),n=require("@vexip-ui/utils"),U=require("./props.cjs"),A=require("./symbol.cjs"),v=require("../renderer/renderer.cjs"),N=require("../icon/icon.cjs"),D=require("../collapse/collapse-transition.cjs"),G=require("../badge/badge.vue2.cjs"),H=l.defineComponent({name:"Button",props:U.buttonProps,emits:[],setup(P,{slots:u}){const b=l.inject(F.FIELD_OPTIONS,null),e=d.useProps("button",P,{size:d.createSizeProp(b?b.size:void 0),type:{default:null,validator:o=>A.buttonTypes.includes(o)},dashed:!1,text:!1,simple:!1,ghost:!1,disabled:()=>b?b.disabled.value:!1,loading:()=>b?b.loading.value:!1,circle:!1,loadingIcon:d.createIconProp(),loadingEffect:null,icon:d.createIconProp(),color:null,buttonType:{default:"button",validator:o=>["button","submit","reset"].includes(o)},block:!1,tag:"button",noPulse:!1,badge:null,slots:()=>({})}),s=l.inject(A.GROUP_STATE,null),t=d.useNameHelper("button"),h=d.useIcons(),f=l.ref(!1),q=l.ref(0),V=l.ref(!1),g=l.computed(()=>!u.default&&!e.slots.default),C=l.computed(()=>e.type??(s==null?void 0:s.type)??"default"),I=l.computed(()=>(s==null?void 0:s.size)??e.size),T=l.computed(()=>({[t.b()]:!0,[t.bs("vars")]:!0,[t.bm("inherit")]:e.inherit,[t.bm(C.value)]:C.value!=="default",[t.bm("simple")]:!e.ghost&&e.simple,[t.bm("ghost")]:e.ghost,[t.bm("text")]:e.text,[t.bm("dashed")]:e.dashed,[t.bm("disabled")]:e.disabled,[t.bm("loading")]:e.loading,[t.bm("circle")]:e.circle,[t.bm("icon-only")]:g.value,[t.bm(I.value)]:I.value!=="default",[t.bm("pulsing")]:f.value,[t.bm("first")]:q.value===1,[t.bm("last")]:V.value,[t.bm("block")]:e.block})),S=l.computed(()=>{if(!e.color)return null;const o=n.isClient?getComputedStyle(document.documentElement):null,a=n.parseColorToRgba((o==null?void 0:o.getPropertyValue(t.nv("color-black")))||"#000"),r=n.parseColorToRgba((o==null?void 0:o.getPropertyValue(t.nv("color-white")))||"#fff"),i=n.parseColorToRgba(e.color);return{base:i.toString(),light2:n.mixColor(r,i,.2).toString(),dark1:n.mixColor(a,i,.1).toString(),opacity1:n.adjustAlpha(i,.9).toString(),opacity3:n.adjustAlpha(i,.7).toString(),opacity4:n.adjustAlpha(i,.6).toString(),opacity7:n.adjustAlpha(i,.3).toString(),opacity8:n.adjustAlpha(i,.2).toString(),white8:n.adjustAlpha(r,.2).toString(),white9:n.adjustAlpha(r,.1).toString()}}),j=l.computed(()=>{if(!S.value)return{};const{base:o,light2:a,dark1:r,opacity1:i,opacity3:k,opacity4:y,opacity7:O,opacity8:R,white8:L,white9:w}=S.value,{cvm:p,gnv:c}=t;return e.ghost?p({color:o,"color-hover":o,"color-focus":o,"color-active":o,"color-disabled":o,"bg-color":"transparent","bg-color-hover":w,"bg-color-focus":w,"bg-color-active":L,"bg-color-disabled":"transparent","b-color":o,"b-color-hover":a,"b-color-focus":a,"b-color-active":r,"b-color-disabled":c("content-color-disabled"),"pulse-s-color":r}):e.simple?p({color:o,"color-hover":o,"color-focus":c("color-white"),"color-active":c("color-white"),"color-disabled":c("content-color-disabled"),"bg-color":R,"bg-color-hover":O,"bg-color-focus":i,"bg-color-active":i,"bg-color-disabled":c("fill-color-background"),"b-color":y,"b-color-hover":y,"b-color-focus":k,"b-color-active":k,"b-color-disabled":c("border-color-light-1"),"pulse-s-color":r}):e.text||e.dashed?p({...e.dashed?{"b-color":o,"b-color-hover":a,"b-color-focus":a,"b-color-active":r,"pulse-s-color":r}:{},color:o,"color-hover":a,"color-focus":a,"color-active":r,"color-disabled":y}):p({color:c("color-white"),"color-hover":c("color-white"),"color-focus":c("color-white"),"color-active":c("color-white"),"color-disabled":c("content-color-disabled"),"bg-color":o,"bg-color-hover":a,"bg-color-focus":a,"bg-color-active":r,"bg-color-disabled":c("fill-color-background"),"b-color":o,"b-color-hover":a,"b-color-focus":a,"b-color-active":r,"b-color-disabled":c("border-color-light-1"),"pulse-s-color":r})});if(s){const o=l.reactive({index:q,isLast:V});s.increaseItem(o),l.onBeforeUnmount(()=>{s.decreaseItem(o)})}function _(o){e.disabled||e.loading||o.button||(e.noPulse||(f.value=!1,requestAnimationFrame(()=>{f.value=!0})),d.emitEvent(e.onClick,o))}function x(){f.value=!1}function m(){return l.createVNode("div",{class:[t.be("icon"),t.bem("icon","loading")]},[l.renderSlot(u,"loading",void 0,()=>[l.createVNode(v,{renderer:e.slots.loading},{default:()=>[l.createVNode(N,l.mergeProps(h.value.loading,{effect:e.loadingEffect||h.value.loading.effect,icon:e.loadingIcon||h.value.loading.icon,label:"loading"}),null)]})])])}function z(){return e.loading?m():l.createVNode("div",{class:t.be("icon")},[l.renderSlot(u,"icon",void 0,()=>[l.createVNode(v,{renderer:e.slots.icon},{default:()=>[e.icon?l.createVNode(N,{icon:e.icon},null):null]})])])}function E(){return e.icon||u.icon||e.slots.icon?e.loading?m():l.createVNode("div",{class:t.be("icon")},[l.renderSlot(u,"icon",void 0,()=>[l.createVNode(v,{renderer:e.slots.icon},{default:()=>[l.createVNode(N,{icon:e.icon},null)]})])]):l.createVNode(D,{appear:!0,horizontal:!0,"fade-effect":!0},{default:()=>[e.loading&&m()]})}function B(){const o=e.disabled?"disabled":e.type==="default"?"error":e.type;return l.createVNode(G,{inherit:!0,class:[t.be("badge"),t.bem("badge",o)],content:e.badge,type:o},null)}return()=>{const o=e.tag||"button";return l.createVNode(o,{type:e.buttonType,class:T.value,role:"button",style:j.value,disabled:e.disabled,onClick:_,onAnimationend:x},{default:()=>[g.value?z():E(),!g.value&&l.renderSlot(u,"default",void 0,()=>[l.createVNode(v,{renderer:e.slots.default},null)]),!g.value&&(e.badge||e.badge===0)?B():null]})}}});module.exports=H;
//# sourceMappingURL=button.cjs.map