UNPKG

vexip-ui

Version:

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

1 lines 6.02 kB
{"version":3,"file":"column.cjs","sources":["../../../components/row/column.ts"],"sourcesContent":["import { computed, defineComponent, h, inject, provide } from 'vue'\n\nimport { useNameHelper, useProps } from '@vexip-ui/config'\nimport { columnProps } from './props'\nimport { ROW_STATE, breakPoints } from './symbol'\n\nimport type { CSSProperties } from 'vue'\nimport type { ClassType } from '@vexip-ui/config'\n\ntype LayerProp = 'span' | 'offset' | 'pull' | 'push' | 'order'\n\nconst colProps: LayerProp[] = ['span', 'offset', 'pull', 'push', 'order']\n\nexport default defineComponent({\n name: 'Column',\n props: columnProps,\n setup(_props, { slots }) {\n const props = useProps('column', _props, {\n tag: 'div',\n span: 24,\n offset: null,\n push: null,\n pull: null,\n order: null,\n xs: null,\n sm: null,\n md: null,\n lg: null,\n xl: null,\n xxl: null,\n flex: null,\n useFlex: null,\n })\n\n const rowState = inject(ROW_STATE, null)\n const nh = useNameHelper('column')\n\n provide(ROW_STATE, null!)\n\n const className = computed(() => {\n const columnFlex = (props.useFlex || rowState?.columnFlex) && {\n ...(rowState?.columnFlex || {}),\n ...(props.useFlex\n ? props.useFlex === true\n ? { justify: 'start', align: 'top' }\n : props.useFlex\n : {}),\n }\n const className: ClassType = [\n nh.b(),\n nh.bs('vars'),\n {\n [nh.bm('flex')]: columnFlex,\n [nh.bm('inherit')]: rowState || props.inherit,\n },\n ]\n\n if (columnFlex) {\n columnFlex.justify && className.push(nh.bm(columnFlex.justify))\n columnFlex.align && className.push(nh.bm(columnFlex.align))\n }\n\n colProps.forEach(prop => {\n if (typeof props[prop] === 'number') {\n className.push(\n prop === 'span' ? nh.bm(`${props[prop]}`) : nh.bm(`${prop}-${props[prop]}`),\n )\n }\n })\n\n breakPoints.forEach(size => {\n const sizeProp = props[size]\n\n if (!sizeProp && sizeProp !== 0) return\n\n if (typeof sizeProp === 'number') {\n className.push(nh.bm(`${size}-${sizeProp}`))\n } else if (typeof sizeProp === 'object') {\n colProps.forEach(prop => {\n const value = sizeProp[prop]\n\n if (!value && value !== 0) return\n\n className.push(prop === 'span' ? nh.bm(`${value}`) : nh.bm(`${prop}-${value}`))\n })\n }\n })\n\n return className\n })\n const style = computed(() => {\n const flex = props.flex\n const style: CSSProperties = {}\n\n if (rowState) {\n if (typeof rowState.gap === 'number') {\n style.paddingInlineStart = style.paddingInlineEnd = `${rowState.gap / 2}px`\n } else if (Array.isArray(rowState.gap)) {\n style.paddingInlineStart = style.paddingInlineEnd = `${rowState.gap[0] / 2}px`\n }\n }\n\n if (flex) {\n if (typeof flex === 'number') {\n style.flex = `${flex} ${flex} auto`\n } else if (typeof flex === 'string') {\n if (/^\\d+\\s\\d+\\s\\d+(\\w+)?$/.test(flex)) {\n style.flex = flex\n } else {\n style.flex = flex === 'auto' ? '1 1 auto' : `0 0 ${flex}`\n }\n }\n }\n\n return style\n })\n\n return () =>\n h(\n props.tag || 'div',\n {\n class: className.value,\n style: style.value,\n },\n {\n default: () => slots.default && slots.default(),\n },\n )\n },\n})\n"],"names":["colProps","Column","defineComponent","columnProps","_props","slots","props","useProps","rowState","inject","ROW_STATE","nh","useNameHelper","provide","className","computed","columnFlex","prop","breakPoints","size","sizeProp","value","style","flex","h"],"mappings":"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"}