@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
2 lines (1 loc) • 9.94 kB
JavaScript
(function(m,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("vue"),require("lodash-es"),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","lodash-es","../dynamic-resolver/index.umd.js","../common/index.umd.js","../designer-canvas/index.umd.js"],n):(m=typeof globalThis<"u"?globalThis:m||self,n(m.accordion={},m.Vue,m.LodashES,m.dynamicResolver,m.common,m.designerCanvas))})(this,function(m,n,N,w,I,x){"use strict";const S={},k={};function P(e){const{properties:t,title:s,ignore:o}=e,i=o&&Array.isArray(o),u=Object.keys(t).reduce((p,f)=>((!i||!o.find(h=>h===f))&&(p[f]=t[f].type==="object"&&t[f].properties?P(t[f]):N.cloneDeep(t[f].default)),p),{});if(s&&(!i||!o.find(p=>p==="id"))){const p=s.toLowerCase().replace(/-/g,"_");u.id=`${p}_${Math.random().toString().slice(2,6)}`}return u}function H(e,t){const s=P(t);return Object.keys(s).reduce((o,i)=>(Object.prototype.hasOwnProperty.call(e,i)&&(o[i]&&N.isPlainObject(o[i])&&N.isPlainObject(e[i]||!e[i])?Object.assign(o[i],e[i]||{}):o[i]=e[i]),o),s),s}function V(e,t){return Object.keys(e).filter(o=>e[o]!=null).reduce((o,i)=>{if(t.has(i)){const u=t.get(i);if(typeof u=="string")o[u]=e[i];else{const p=u(i,e[i],e);Object.assign(o,p)}}else o[i]=e[i];return o},{})}function q(e,t,s=new Map){const o=H(e,t);return V(o,s)}function R(e={}){function t(r,c,a,d){if(typeof a=="number")return d[r].length===a;if(typeof a=="object"){const l=Object.keys(a)[0],g=a[l];if(l==="not")return Number(d[r].length)!==Number(g);if(l==="moreThan")return Number(d[r].length)>=Number(g);if(l==="lessThan")return Number(d[r].length)<=Number(g)}return!1}function s(r,c,a,d){return d[r]&&d[r].propertyValue&&String(d[r].propertyValue.value)===String(a)}const o=new Map([["length",t],["getProperty",s]]);Object.keys(e).reduce((r,c)=>(r.set(c,e[c]),r),o);function i(r,c){const a=r;return typeof c=="number"?[{target:a,operator:"length",param:null,value:Number(c)}]:typeof c=="boolean"?[{target:a,operator:"getProperty",param:r,value:!!c}]:typeof c=="object"?Object.keys(c).map(d=>{if(d==="length")return{target:a,operator:"length",param:null,value:c[d]};const l=d,g=c[d];return{target:a,operator:"getProperty",param:l,value:g}}):[]}function u(r){return Object.keys(r).reduce((a,d)=>{const l=i(d,r[d]);return a.push(...l),a},[])}function p(r,c){if(o.has(r.operator)){const a=o.get(r.operator);return a&&a(r.target,r.param,r.value,c)||!1}return!1}function f(r,c){return u(r).reduce((l,g)=>l&&p(g,c),!0)}function h(r,c){const a=Object.keys(r),d=a.includes("allOf"),l=a.includes("anyOf"),g=d||l,F=(g?r[g?d?"allOf":"anyOf":"allOf"]:[r]).map(G=>f(G,c));return d?!F.includes(!1):F.includes(!0)}return{parseValueSchema:h}}const M={},T={};R();function D(e,t,s=new Map,o=(p,f,h,r)=>f,i={},u=p=>p){return S[t.title]=t,k[t.title]=o,M[t.title]=i,T[t.title]=u,(p={},f=!0)=>{if(!f)return V(p,s);const h=q(p,t,s),r=Object.keys(e).reduce((c,a)=>(c[a]=e[a].default,c),{});return Object.assign(r,h)}}const v=new Map([["appearance",w.resolveAppearance],["size",(e,t)=>{const s={};return t.width&&(s.width=Number(t.width)),t.height&&(s.height=Number(t.height)),s}]]),E={$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 B(e,t,s){return t}const z={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:[]}}}}}},C={customClass:{type:String,default:""},enableFold:{type:Boolean,default:!0},expanded:{type:Boolean,default:!1},height:{type:Number},width:{type:Number}},A=D(C,E,v,B,z),y=n.defineComponent({name:"FAccordion",props:C,emits:[],setup(e,t){const s=n.computed(()=>({height:e.height?`${e.height}px`:"",width:e.width?`${e.width}px`:""}));n.provide("accordionContext",{parentProps:e});const o=n.computed(()=>{const i={"farris-panel":!0,accordion:!0};return I.getCustomClass(i,e.customClass)});return()=>n.createVNode("div",{class:o.value,style:s.value},[t.slots.default&&t.slots.default()])}}),L={$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"]},$={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}},O=w.createPropsResolver($,L,v),j=n.defineComponent({name:"FAccordionItem",props:$,emits:["ClickHeader"],setup(e,t){const s=n.ref(),o=n.inject("accordionContext"),i=n.ref(e.title),u=n.ref(e.active);function p(){var l;e.disabled||!((l=o==null?void 0:o.parentProps)!=null&&l.enableFold)||(u.value=!u.value)}function f(l){t.emit("ClickHeader"),p()}const h=n.computed(()=>{const l={card:!0,"farris-panel-item":!0,"f-state-disabled":e.disabled,"f-state-selected":u.value};return I.getCustomClass(l,e.customClass)}),r=n.computed(()=>!0),c=n.computed(()=>({"f-icon":!0,"f-accordion-collapse":!u.value,"f-accordion-expand":u.value}));function a(){return s.value?s.value.getBoundingClientRect().height:0}const d=n.computed(()=>{const l=e.maxHeight?{transition:"maxHeight 0.36s ease 0s","max-height":u.value?`${e.maxHeight}px`:0}:{transition:"height 0.36s ease 0s",height:u.value?`${a()}px`:0};return u.value||(l.overflow="hidden"),l});return n.onMounted(()=>{var l;(l=o==null?void 0:o.parentProps)!=null&&l.expanded&&(u.value=!0)}),()=>n.createVNode("div",{class:h.value},[n.createVNode("div",{class:"card-header",onClick:f},[n.createVNode("div",{class:"panel-item-title"},[e.iconUri&&n.createVNode("img",{class:"panel-item-title-image",src:e.iconUri,title:"title-icon"},null),r.value&&n.createVNode("span",null,[i.value]),t.slots.head&&t.slots.head(),n.createVNode("i",{class:c.value},null)]),n.createVNode("div",{class:"panel-item-tool"},[t.slots.toolbar&&t.slots.toolbar()]),n.createVNode("div",{class:"panel-item-clear"},null)]),n.createVNode("div",{style:d.value},[n.createVNode("div",{class:"card-body",ref:s},[t.slots.default&&t.slots.default()])])])}}),_=n.defineComponent({name:"FAccordionDesign",props:C,emits:[],setup(e,t){const s=n.computed(()=>({height:e.height?`${e.height}px`:"",width:e.width?`${e.width}px`:""})),o=n.computed(()=>{const f=e.customClass.split(" "),h={"farris-panel":!0,accordion:!0};return f.reduce((r,c)=>(r[c]=!0,r),h),h}),i=n.ref(),u=n.inject("design-item-context"),p=x.useDesignerComponent(i,u);return n.onMounted(()=>{i.value.componentInstance=p}),t.expose(p.value),()=>n.createVNode("div",{ref:i,class:o.value,style:s.value},[t.slots.default&&t.slots.default()])}}),U=n.defineComponent({name:"FAccordionItemDesign",props:$,emits:[],setup(e,t){const s=n.ref(e.title),o=n.ref(!1),i=n.ref(!1);function u(){o.value=!o.value}function p(b){u()}const f=n.computed(()=>({"f-state-disabled":i.value,card:!0,"farris-panel-item":!0,"f-state-selected":o.value})),h=n.computed(()=>!0),r=n.computed(()=>!1),c=n.computed(()=>({"f-icon":!0,"f-accordion-collapse":!o.value,"f-accordion-expand":o.value})),a=n.computed(()=>{const b=e.maxHeight?{transition:"maxHeight 0.36s ease 0s","max-height":o.value?`${e.maxHeight}px`:0}:{transition:"height 0.36s ease 0s",height:o.value?`${e.height}px`:0};return o.value||(b.overflow="hidden"),b});function d(){return!0}function l(){return!1}function g(){return!0}return t.expose({canMove:d(),canSelectParent:l(),canDelete:g(),canNested:!0}),()=>n.createVNode("div",{class:f.value},[n.createVNode("div",{class:"card-header",onClick:p},[n.createVNode("div",{class:"panel-item-title"},[h.value&&n.createVNode("span",null,[s.value]),r.value&&t.slots.head&&t.slots.head(),n.createVNode("span",{class:c.value},null)]),n.createVNode("div",{class:"panel-item-tool"},[t.slots.toolbar&&t.slots.toolbar()]),n.createVNode("div",{class:"panel-item-clear"},null)]),n.createVNode("div",{style:a.value},[n.createVNode("div",{class:"card-body drag-container"},[t.slots.default&&t.slots.default()])])])}});y.install=e=>{e.component(y.name,y),e.component(j.name,j)},y.register=(e,t,s,o)=>{e.accordion=y,e["accordion-item"]=j,t.accordion=A,t["accordion-item"]=O},y.registerDesigner=(e,t,s)=>{e.accordion=_,e["accordion-item"]=U,t.accordion=A,t["accordion-item"]=O},m.FAccordion=y,m.FAccordionItem=j,m.accordionItemProps=$,m.accordionItemPropsResolver=O,m.accordionProps=C,m.accordionPropsResolver=A,m.default=y,Object.defineProperties(m,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});