st-common-ui-vue3
Version:
小尾巴通用 Vue3 UI 组件库
2 lines (1 loc) • 2 kB
JavaScript
"use strict";const e=require("vue"),u=require("../../node_modules/.pnpm/@vueuse_core@12.0.0_typescript@5.6.2/node_modules/@vueuse/core/index.js"),d=require("../../hooks/use-element-contact-previous/index.js"),c=require("../../hooks/use-element-parent-children-width/index.js"),f=require("../StPopover/StPopover.vue.js"),p=require("../StIconIconify/StIconIconify.vue.js"),h=require("../../node_modules/.pnpm/@iconify-icons_tabler@1.2.95/node_modules/@iconify-icons/tabler/align-right.js"),_={class:"st-react-collapse__content"},m={class:"st-react-collapse__dropdown"},w={class:"st-react-collapse__dropdown-icon"},S={class:"st-react-collapse__dropdown-content"},C=e.defineComponent({name:"StReactCollapse",__name:"StReactCollapse",props:{dropdownZIndex:{default:1}},setup(x){const s=e.ref(),v=u.useParentElement(),{width:n}=u.useElementSize(v),l=e.ref(!1),t=e.ref(!1),i=e.ref(0),o=e.ref(!1),r=e.ref(0);return e.watch(n,()=>{l.value=d(s),l.value&&!t.value?(i.value=c(s).offsetWidthSum,t.value=!0,e.nextTick(()=>{l.value=d(s),l.value&&t.value&&!o.value&&(r.value=c(s).offsetWidthSum,o.value=!0)})):l.value&&t.value&&!o.value&&(r.value=c(s).offsetWidthSum,o.value=!0),n.value>i.value&&t.value?t.value=!1:n.value>r.value&&t.value&&o.value&&(o.value=!1)},{immediate:!0}),(a,R)=>(e.openBlock(),e.createElementBlock("div",{class:"st-react-collapse",ref_key:"stReactCollapseRef",ref:s},[e.withDirectives(e.createElementVNode("div",_,[e.renderSlot(a.$slots,"default",{isCollapse:t.value},void 0,!0)],512),[[e.vShow,!o.value]]),e.withDirectives(e.createElementVNode("div",m,[e.createVNode(f,{"is-vertical":"","sub-cont-z-index":a.dropdownZIndex},{default:e.withCtx(()=>[e.createElementVNode("div",w,[e.renderSlot(a.$slots,"dropdown-icon",{},()=>[e.createVNode(p,{icon:e.unref(h),width:"24"},null,8,["icon"])],!0)])]),subContent:e.withCtx(()=>[e.createElementVNode("div",S,[e.renderSlot(a.$slots,"dropdown-content",{},void 0,!0)])]),_:3},8,["sub-cont-z-index"])],512),[[e.vShow,o.value]])],512))}});module.exports=C;