UNPKG

epic-designer

Version:

基于vue3的设计器,可视化开发页面表单

2 lines (1 loc) 1.29 kB
"use strict";const o=require("vue"),v=require("./collapseContext.cjs"),m=o.defineComponent({__name:"collapse",props:{accordion:{type:Boolean,default:!1},bordered:{type:Boolean,default:!0},customClass:{default:""},defaultExpandAll:{type:Boolean,default:!1},modelValue:{default:()=>[]}},emits:["change","update:modelValue"],setup(u,{emit:r}){const l=u,c=r,a=o.ref(Array.isArray(l.modelValue)?l.modelValue:l.modelValue?[l.modelValue]:[]);o.watch(()=>l.modelValue,e=>{a.value=Array.isArray(e)?e:e?[e]:[]},{deep:!0});const n=e=>{if(l.accordion)a.value=a.value[0]===e?[]:[e];else{const d=a.value.indexOf(e);d===-1?a.value.push(e):a.value.splice(d,1)}const t=l.accordion?a.value[0]||"":[...a.value];c("update:modelValue",t),c("change",t)},i=e=>a.value.includes(e),s=o.ref([]),p=e=>{s.value.includes(e)||s.value.push(e)},f=e=>{const t=s.value.indexOf(e);t!==-1&&s.value.splice(t,1)};return o.provide(v.COLLAPSE_CONTEXT_KEY,{accordion:l.accordion,activeKeys:a,bordered:l.bordered,defaultExpandAll:l.defaultExpandAll,isPanelActive:i,registerPanel:p,togglePanel:n,unregisterPanel:f}),(e,t)=>(o.openBlock(),o.createElementBlock("div",{class:o.normalizeClass(["ep-collapse",`ep-collapse--${u.accordion?"accordion":"default"}`])},[o.renderSlot(e.$slots,"default",{},void 0,!0)],2))}});module.exports=m;