hongluan-ui
Version:
Hongluan Component Library for Vue 3
1 lines • 5.58 kB
Source Map (JSON)
{"version":3,"file":"col.mjs","sources":["../../../../../../packages/components/col/src/col.ts"],"sourcesContent":["import { defineComponent, computed, h } from 'vue'\nimport { useNamespace } from '@hongluan-ui/hooks'\n\nimport type { PropType } from 'vue'\n\ntype SizeObject = {\n span: number\n offset: number\n}\nconst Col = defineComponent({\n name: 'Col',\n props: {\n /**\n * @description custom element tag\n */\n tag: {\n type: String,\n default: 'div',\n },\n /**\n * @description number of column the grid spans\n */\n span: {\n type: [String, Number],\n default: '',\n },\n /**\n * @description number of spacing on the left side of the grid\n */\n offset: {\n type: [String, Number],\n default: '',\n },\n sm: {\n type: [Number, Object] as PropType<number | SizeObject>,\n default: () => ({} as SizeObject),\n },\n md: {\n type: [Number, Object] as PropType<number | SizeObject>,\n default: () => ({} as SizeObject),\n },\n lg: {\n type: [Number, Object] as PropType<number | SizeObject>,\n default: () => ({} as SizeObject),\n },\n xl: {\n type: [Number, Object] as PropType<number | SizeObject>,\n default: () => ({} as SizeObject),\n },\n },\n setup(props: Record<string, any>, { slots }) {\n const { namespace } = useNamespace('col')\n\n const style = computed(() => {\n const result = {}\n return result\n })\n const classList = computed(() => {\n const ret: string[] = []\n const pos = ['span', 'offset'] as const\n pos.forEach(prop => {\n const size = props[prop]\n if (typeof size === 'number') {\n if(prop === 'span') ret.push(`col-${props[prop]}`)\n else if(size > 0) ret.push(`${prop}-${props[prop]}`)\n } else {\n ret.push(String(props[prop]))\n }\n })\n const sizes = ['sm', 'md', 'lg', 'xl', 'xxl'] as const\n sizes.forEach(size => {\n if (typeof props[size] === 'number') {\n ret.push(`${size}:col-${props[size]}`)\n } else if (typeof props[size] === 'object') {\n const sizeProps = props[size]\n Object.keys(sizeProps).forEach(prop => {\n ret.push(\n prop !== 'span' ? `${size}:${prop}-${sizeProps[prop]}` : `${size}:col-${sizeProps[prop]}`,\n )\n })\n }\n })\n return ret\n })\n\n return () => h(\n props.tag,\n {\n class: [classList.value, namespace.value],\n style: style.value,\n },\n slots.default?.(),\n )\n },\n})\n\nexport default Col\nexport type ColInstance = InstanceType<typeof Col>\n"],"names":[],"mappings":"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"}