@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
2 lines (1 loc) • 7.43 kB
JavaScript
(function(i,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("../dynamic-resolver/index.umd.js"),require("../common/index.umd.js"),require("../designer-canvas/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","../dynamic-resolver/index.umd.js","../common/index.umd.js","../designer-canvas/index.umd.js"],e):(i=typeof globalThis<"u"?globalThis:i||self,e(i.accordion={},i.Vue,i.dynamicResolver,i.common,i.designerCanvas))})(this,function(i,e,C,A,V){"use strict";const I=new Map([["appearance",C.resolveAppearance],["size",(t,o)=>{const s={};return o.width&&(s.width=Number(o.width)),o.height&&(s.height=Number(o.height)),s}]]),w={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/accordion.schema.json",title:"accordion",description:"A Farris Container Component",type:"object",properties:{id:{description:"The unique identifier for a Accordion",type:"string"},type:{description:"The type string of Accordion component",type:"string",default:"accordion"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},contents:{description:"",type:"array",default:[]},customClass:{description:"",type:"string",default:""},size:{description:"",type:"object",properties:{width:{type:"number"},height:{type:"number"}},default:null},enableFold:{description:"",type:"boolean",default:!0},expanded:{description:"",type:"boolean",default:!1}},required:["id","type","contents"]};function S(t,o,s){return o}const F={title:"accordion",description:"A Farris Component",type:"object",categories:{basic:{description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"select",editor:{type:"waiting for modification",enum:[]}}}}}},h={customClass:{type:String,default:""},enableFold:{type:Boolean,default:!0},expanded:{type:Boolean,default:!1},height:{type:Number},width:{type:Number}},b=C.createPropsResolver(h,w,I,S,F),d=e.defineComponent({name:"FAccordion",props:h,emits:[],setup(t,o){const s=e.computed(()=>({height:t.height?`${t.height}px`:"",width:t.width?`${t.width}px`:""}));e.provide("accordionContext",{parentProps:t});const n=e.computed(()=>{const a={"farris-panel":!0,accordion:!0};return A.getCustomClass(a,t.customClass)});return()=>e.createVNode("div",{class:n.value,style:s.value},[o.slots.default&&o.slots.default()])}}),P={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/accordion-item.schema.json",title:"AccordionItem",description:"A Farris Container Component",type:"object",properties:{id:{description:"The unique identifier for a Accordion Item",type:"string"},type:{description:"The type string of Accordion Item component",type:"string"},contents:{description:"",type:"array",default:[]},size:{description:"",type:"object",properties:{width:{type:"number"},height:{type:"number"}},default:null},title:{description:"",type:"string",default:""},disable:{description:"",type:"boolean",default:!1}},required:["id","type","contents"]},g={active:{type:Boolean,default:!1},customClass:{type:String,default:""},disabled:{type:Boolean,default:!1},height:{type:Number},iconUri:{type:String,default:""},maxHeight:{type:Number},title:{type:String,default:""},width:{type:Number}},$=C.createPropsResolver(g,P,I),y=e.defineComponent({name:"FAccordionItem",props:g,emits:["ClickHeader"],setup(t,o){const s=e.ref(),n=e.inject("accordionContext"),a=e.ref(t.title),r=e.ref(t.active);function l(){var c;t.disabled||!((c=n==null?void 0:n.parentProps)!=null&&c.enableFold)||(r.value=!r.value)}function m(c){o.emit("ClickHeader"),l()}const u=e.computed(()=>{const c={card:!0,"farris-panel-item":!0,"f-state-disabled":t.disabled,"f-state-selected":r.value};return A.getCustomClass(c,t.customClass)}),p=e.computed(()=>!0),f=e.computed(()=>({"f-icon":!0,"f-accordion-collapse":!r.value,"f-accordion-expand":r.value}));function v(){return s.value?s.value.getBoundingClientRect().height:0}const N=e.computed(()=>{const c=t.maxHeight?{transition:"maxHeight 0.36s ease 0s","max-height":r.value?`${t.maxHeight}px`:0}:{transition:"height 0.36s ease 0s",height:r.value?`${v()}px`:0};return r.value||(c.overflow="hidden"),c});return e.onMounted(()=>{var c;(c=n==null?void 0:n.parentProps)!=null&&c.expanded&&(r.value=!0)}),()=>e.createVNode("div",{class:u.value},[e.createVNode("div",{class:"card-header",onClick:m},[e.createVNode("div",{class:"panel-item-title"},[t.iconUri&&e.createVNode("img",{class:"panel-item-title-image",src:t.iconUri,title:"title-icon"},null),p.value&&e.createVNode("span",null,[a.value]),o.slots.head&&o.slots.head(),e.createVNode("i",{class:f.value},null)]),e.createVNode("div",{class:"panel-item-tool"},[o.slots.toolbar&&o.slots.toolbar()]),e.createVNode("div",{class:"panel-item-clear"},null)]),e.createVNode("div",{style:N.value},[e.createVNode("div",{class:"card-body",ref:s},[o.slots.default&&o.slots.default()])])])}}),x=e.defineComponent({name:"FAccordionDesign",props:h,emits:[],setup(t,o){const s=e.computed(()=>({height:t.height?`${t.height}px`:"",width:t.width?`${t.width}px`:""})),n=e.computed(()=>{const m=t.customClass.split(" "),u={"farris-panel":!0,accordion:!0};return m.reduce((p,f)=>(p[f]=!0,p),u),u}),a=e.ref(),r=e.inject("design-item-context"),l=V.useDesignerComponent(a,r);return e.onMounted(()=>{a.value.componentInstance=l}),o.expose(l.value),()=>e.createVNode("div",{ref:a,class:n.value,style:s.value},[o.slots.default&&o.slots.default()])}}),H=e.defineComponent({name:"FAccordionItemDesign",props:g,emits:[],setup(t,o){const s=e.ref(t.title),n=e.ref(!1),a=e.ref(!1);function r(){n.value=!n.value}function l(j){r()}const m=e.computed(()=>({"f-state-disabled":a.value,card:!0,"farris-panel-item":!0,"f-state-selected":n.value})),u=e.computed(()=>!0),p=e.computed(()=>!1),f=e.computed(()=>({"f-icon":!0,"f-accordion-collapse":!n.value,"f-accordion-expand":n.value})),v=e.computed(()=>{const j=t.maxHeight?{transition:"maxHeight 0.36s ease 0s","max-height":n.value?`${t.maxHeight}px`:0}:{transition:"height 0.36s ease 0s",height:n.value?`${t.height}px`:0};return n.value||(j.overflow="hidden"),j});function N(){return!0}function c(){return!1}function q(){return!0}return o.expose({canMove:N(),canSelectParent:c(),canDelete:q(),canNested:!0}),()=>e.createVNode("div",{class:m.value},[e.createVNode("div",{class:"card-header",onClick:l},[e.createVNode("div",{class:"panel-item-title"},[u.value&&e.createVNode("span",null,[s.value]),p.value&&o.slots.head&&o.slots.head(),e.createVNode("span",{class:f.value},null)]),e.createVNode("div",{class:"panel-item-tool"},[o.slots.toolbar&&o.slots.toolbar()]),e.createVNode("div",{class:"panel-item-clear"},null)]),e.createVNode("div",{style:v.value},[e.createVNode("div",{class:"card-body drag-container"},[o.slots.default&&o.slots.default()])])])}});d.install=t=>{t.component(d.name,d),t.component(y.name,y)},d.register=(t,o,s,n)=>{t.accordion=d,t["accordion-item"]=y,o.accordion=b,o["accordion-item"]=$},d.registerDesigner=(t,o,s)=>{t.accordion=x,t["accordion-item"]=H,o.accordion=b,o["accordion-item"]=$},i.FAccordion=d,i.FAccordionItem=y,i.accordionItemProps=g,i.accordionItemPropsResolver=$,i.accordionProps=h,i.accordionPropsResolver=b,i.default=d,Object.defineProperties(i,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});