UNPKG

vexip-ui

Version:

A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good

3 lines (2 loc) 1.65 kB
"use strict";const i=require("vue"),p=require("@vexip-ui/config"),g=require("./props.cjs"),a=require("./symbol.cjs"),m=["span","offset","pull","push","order"],y=i.defineComponent({name:"Column",props:g.columnProps,setup(d,{slots:c}){const s=p.useProps("column",d,{tag:"div",span:24,offset:null,push:null,pull:null,order:null,xs:null,sm:null,md:null,lg:null,xl:null,xxl:null,flex:null,useFlex:null}),n=i.inject(a.ROW_STATE,null),u=p.useNameHelper("column");i.provide(a.ROW_STATE,null);const x=i.computed(()=>{const e=(s.useFlex||(n==null?void 0:n.columnFlex))&&{...(n==null?void 0:n.columnFlex)||{},...s.useFlex?s.useFlex===!0?{justify:"start",align:"top"}:s.useFlex:{}},l=[u.b(),u.bs("vars"),{[u.bm("flex")]:e,[u.bm("inherit")]:n||s.inherit}];return e&&(e.justify&&l.push(u.bm(e.justify)),e.align&&l.push(u.bm(e.align))),m.forEach(t=>{typeof s[t]=="number"&&l.push(t==="span"?u.bm(`${s[t]}`):u.bm(`${t}-${s[t]}`))}),a.breakPoints.forEach(t=>{const o=s[t];!o&&o!==0||(typeof o=="number"?l.push(u.bm(`${t}-${o}`)):typeof o=="object"&&m.forEach(f=>{const r=o[f];!r&&r!==0||l.push(f==="span"?u.bm(`${r}`):u.bm(`${f}-${r}`))}))}),l}),b=i.computed(()=>{const e=s.flex,l={};return n&&(typeof n.gap=="number"?l.paddingInlineStart=l.paddingInlineEnd=`${n.gap/2}px`:Array.isArray(n.gap)&&(l.paddingInlineStart=l.paddingInlineEnd=`${n.gap[0]/2}px`)),e&&(typeof e=="number"?l.flex=`${e} ${e} auto`:typeof e=="string"&&(/^\d+\s\d+\s\d+(\w+)?$/.test(e)?l.flex=e:l.flex=e==="auto"?"1 1 auto":`0 0 ${e}`)),l});return()=>i.h(s.tag||"div",{class:x.value,style:b.value},{default:()=>c.default&&c.default()})}});module.exports=y; //# sourceMappingURL=column.cjs.map