UNPKG

@tuoyuan/web

Version:
2 lines (1 loc) 2.37 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),k=require("@tuoyuan/arco/es/_utils/global-config"),C=require("../trigger/index.js"),v=require("./index.js"),y=e.defineComponent({name:"ButtonStorage",__name:"button-storage",props:{limit:{type:Number,default:4},trigger:{type:[String,Array],default:"click"},hideOnClick:{type:Boolean,default:!0},moreText:{type:String,default:"更多"},moreType:{type:String,default:"text"},moreStatus:{type:String,default:"normal"}},setup(u){const r=k.getPrefixCls("btn-storage"),t=u;e.getCurrentInstance();const n=e.useSlots(),l=e.ref(0),c=e.ref(!1),s=e.ref(!1),m=e.computed(()=>[r]),d=e.computed(()=>[`${r}-popup-arrow`]);e.onMounted(()=>{f()});const f=()=>{if(!n.default)return;n.default().length>t.limit?(l.value=t.limit-1,c.value=!0):l.value=t.limit},g=()=>{t.hideOnClick&&(s.value=!1)};return(a,p)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(m.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.default?n.default():[],(o,i)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[i<l.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o),{key:0})):e.createCommentVNode("",!0)],64))),256)),c.value?(e.openBlock(),e.createBlock(e.unref(C.Trigger),{key:0,"popup-visible":s.value,"onUpdate:popupVisible":p[0]||(p[0]=o=>s.value=o),trigger:u.trigger,position:"bottom","show-arrow":"","popup-offset":4,"opened-class":`${e.unref(r)}-open`,"animation-name":"slide-dynamic-origin","auto-fit-transform-origin":"","arrow-class":d.value},{content:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(`${e.unref(r)}-more-content`),onClick:g},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.$slots.default?a.$slots.default():[],(o,i)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[i>=l.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o),{key:0})):e.createCommentVNode("",!0)],64))),256))],2)]),default:e.withCtx(()=>[e.renderSlot(a.$slots,"more",{},()=>[e.createVNode(e.unref(v.Button),{type:t.moreType,status:t.moreStatus},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.moreText),1)]),_:1},8,["type","status"])])]),_:3},8,["popup-visible","trigger","opened-class","arrow-class"])):e.createCommentVNode("",!0)],2))}});exports.default=y;