element-plus
Version:
A Component Library for Vue 3
1 lines • 7.18 kB
Source Map (JSON)
{"version":3,"file":"col.mjs","sources":["../../../../../../packages/components/col/src/col.tsx"],"sourcesContent":["import { computed, defineComponent, inject } from 'vue'\nimport { buildProps, definePropType, mutable } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { rowContextKey } from '@element-plus/tokens'\nimport type { CSSProperties, ExtractPropTypes } from 'vue'\n\nexport type ColSizeObject = {\n span?: number\n offset?: number\n pull?: number\n push?: number\n}\nexport type ColSize = number | ColSizeObject\n\nexport const colProps = buildProps({\n tag: {\n type: String,\n default: 'div',\n },\n span: {\n type: Number,\n default: 24,\n },\n offset: {\n type: Number,\n default: 0,\n },\n pull: {\n type: Number,\n default: 0,\n },\n push: {\n type: Number,\n default: 0,\n },\n xs: {\n type: definePropType<ColSize>([Number, Object]),\n default: () => mutable({} as const),\n },\n sm: {\n type: definePropType<ColSize>([Number, Object]),\n default: () => mutable({} as const),\n },\n md: {\n type: definePropType<ColSize>([Number, Object]),\n default: () => mutable({} as const),\n },\n lg: {\n type: definePropType<ColSize>([Number, Object]),\n default: () => mutable({} as const),\n },\n xl: {\n type: definePropType<ColSize>([Number, Object]),\n default: () => mutable({} as const),\n },\n} as const)\nexport type ColProps = ExtractPropTypes<typeof colProps>\n\nexport default defineComponent({\n name: 'ElCol',\n props: colProps,\n\n setup(props, { slots }) {\n const { gutter } = inject(rowContextKey, { gutter: computed(() => 0) })\n const ns = useNamespace('col')\n\n const style = computed<CSSProperties>(() => {\n if (gutter.value) {\n return {\n paddingLeft: `${gutter.value / 2}px`,\n paddingRight: `${gutter.value / 2}px`,\n }\n }\n return {}\n })\n\n const classes = computed(() => {\n const classes: string[] = []\n\n const pos = ['span', 'offset', 'pull', 'push'] as const\n pos.forEach((prop) => {\n const size = props[prop]\n if (typeof size === 'number') {\n if (prop === 'span') classes.push(ns.b(`${props[prop]}`))\n else if (size > 0) classes.push(ns.b(`${prop}-${props[prop]}`))\n }\n })\n\n const sizes = ['xs', 'sm', 'md', 'lg', 'xl'] as const\n sizes.forEach((size) => {\n if (typeof props[size] === 'number') {\n classes.push(ns.b(`${size}-${props[size]}`))\n } else if (typeof props[size] === 'object') {\n const sizeProps = props[size]\n Object.keys(sizeProps).forEach((prop) => {\n classes.push(\n prop !== 'span'\n ? ns.b(`${size}-${prop}-${sizeProps[prop]}`)\n : ns.b(`${size}-${sizeProps[prop]}`)\n )\n })\n }\n })\n // this is for the fix\n if (gutter.value) {\n classes.push(ns.is('guttered'))\n }\n\n return classes\n })\n\n return () => (\n <props.tag\n v-slots={slots}\n class={[ns.b(), classes.value]}\n style={style.value}\n />\n )\n },\n})\n"],"names":["colProps","buildProps","tag","type","String","default","span","Number","offset","pull","push","xs","definePropType","Object","mutable","sm","md","lg","xl","defineComponent","name","props","setup","slots","gutter","inject","rowContextKey","ns","useNamespace","style","paddingLeft","value","paddingRight","classes","pos","size","b","prop","sizes","forEach","sizeProps","keys","_createVNode"],"mappings":"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"}